some progress in show persons list

This commit is contained in:
Hesabix 2024-04-27 20:15:38 +00:00
parent efba33d10a
commit f1f18b9561
2 changed files with 417 additions and 341 deletions

View file

@ -33,7 +33,8 @@ class PersonsController extends AbstractController
* @param int $length number of characters in the generated string
* @return string a new string is created with random characters of the desired length
*/
private function RandomString($length = 32) {
private function RandomString($length = 32)
{
return substr(str_shuffle(str_repeat($x = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ', ceil($length / strlen($x)))), 1, $length);
}
@ -103,8 +104,7 @@ class PersonsController extends AbstractController
return $this->json(['result' => 2]);
$person = new Person();
$person->setCode($provider->getAccountingCode($request->headers->get('activeBid'), 'person'));
}
else{
} else {
$person = $entityManager->getRepository(Person::class)->findOneBy([
'bid' => $acc['bid'],
'code' => $code
@ -209,6 +209,45 @@ class PersonsController extends AbstractController
return $this->json(['result' => 1]);
}
#[Route('/api/person/list/search', name: 'app_persons_list_search')]
public function app_persons_list_search(Provider $provider, Request $request, Access $access, Log $log, EntityManagerInterface $entityManager): JsonResponse
{
$acc = $access->hasRole('person');
if (!$acc)
throw $this->createAccessDeniedException();
$params = [];
if ($content = $request->getContent()) {
$params = json_decode($content, true);
}
if (array_key_exists('search', $params))
$persons = $entityManager->getRepository(Person::class)->searchByNikename($acc['bid'], $params['search'], 10);
else
$persons = $entityManager->getRepository(Person::class)->getLasts($acc['bid'], 10);
$response = [];
foreach ($persons as $key => $person) {
$temp = [
'id' => $person->getId(),
'nikename' => $person->getNikename(),
'code' => $person->getCode(),
'mobile' => $person->getMobile()
];
$rows = $entityManager->getRepository(HesabdariRow::class)->findBy([
'person' => $person
]);
$bs = 0;
$bd = 0;
foreach ($rows as $row) {
$bs += $row->getBs();
$bd += $row->getBd();
}
$temp['bs'] = $bs;
$temp['bd'] = $bd;
$temp['balance'] = $bs - $bd;
$response[] = $temp;
}
return $this->json($response);
}
#[Route('/api/person/list/limit', name: 'app_persons_list_limit')]
public function app_persons_list_limit(Provider $provider, Request $request, Access $access, Log $log, EntityManagerInterface $entityManager): JsonResponse
{
@ -223,19 +262,32 @@ class PersonsController extends AbstractController
'bid' => $request->headers->get('activeBid'),
'speedAccess' => true
]);
}
else{
} else {
$persons = $entityManager->getRepository(Person::class)->findBy([
'bid' => $request->headers->get('activeBid')
]);
}
$response = [];
foreach ($persons as $key => $person) {
$response[] = [
$temp = [
'id' => $person->getId(),
'nikename' => $person->getNikename(),
'code' => $person->getCode(),
'mobile' => $person->getMobile()
];
$rows = $entityManager->getRepository(HesabdariRow::class)->findBy([
'person' => $person
]);
$bs = 0;
$bd = 0;
foreach ($rows as $row) {
$bs += $row->getBs();
$bd += $row->getBd();
}
$temp['bs'] = $bs;
$temp['bd'] = $bd;
$temp['balance'] = $bs - $bd;
$response[] = $temp;
}
return $this->json($response);
}
@ -254,8 +306,7 @@ class PersonsController extends AbstractController
'bid' => $request->headers->get('activeBid'),
'speedAccess' => true
]);
}
else{
} else {
$persons = $entityManager->getRepository(Person::class)->findBy([
'bid' => $request->headers->get('activeBid')
]);
@ -292,8 +343,7 @@ class PersonsController extends AbstractController
'bid' => $request->headers->get('activeBid'),
'speedAccess' => true
]);
}
else{
} else {
$persons = $entityManager->getRepository(Person::class)->findBy([
'bid' => $request->headers->get('activeBid')
]);
@ -360,7 +410,8 @@ class PersonsController extends AbstractController
'page_title' => 'فهرست بدهکاران',
'bid' => $acc['bid'],
'persons' => $result
]));
])
);
return $this->json(['id' => $pid]);
}
@ -378,8 +429,7 @@ class PersonsController extends AbstractController
'bid' => $request->headers->get('activeBid'),
'speedAccess' => true
]);
}
else{
} else {
$persons = $entityManager->getRepository(Person::class)->findBy([
'bid' => $request->headers->get('activeBid')
]);
@ -447,7 +497,8 @@ class PersonsController extends AbstractController
'page_title' => 'فهرست بستانکاران',
'bid' => $acc['bid'],
'persons' => $result
]));
])
);
return $this->json(['id' => $pid]);
}
@ -465,8 +516,7 @@ class PersonsController extends AbstractController
$persons = $entityManager->getRepository(Person::class)->findBy([
'bid' => $acc['bid']
]);
}
else{
} else {
$persons = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(Person::class)->findOneBy([
@ -484,7 +534,8 @@ class PersonsController extends AbstractController
'page_title' => 'فهرست اشخاص',
'bid' => $acc['bid'],
'persons' => $persons
]));
])
);
return $this->json(['id' => $pid]);
}
@ -505,8 +556,7 @@ class PersonsController extends AbstractController
$persons = $entityManager->getRepository(Person::class)->findBy([
'bid' => $acc['bid']
]);
}
else{
} else {
$persons = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(Person::class)->findOneBy([
@ -543,8 +593,7 @@ class PersonsController extends AbstractController
'bid' => $acc['bid'],
'person' => $person
]);
}
else{
} else {
$transactions = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(HesabdariRow::class)->findOneBy([
@ -608,8 +657,7 @@ class PersonsController extends AbstractController
'bid' => $acc['bid'],
'person' => $person
]);
}
else{
} else {
$transactions = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(HesabdariRow::class)->findOneBy([
@ -629,7 +677,8 @@ class PersonsController extends AbstractController
'page_title' => 'کارت حساب' . ' ' . $person->getNikename(),
'bid' => $acc['bid'],
'items' => $transactions
]));
])
);
return $this->json(['id' => $pid]);
}
@ -649,8 +698,7 @@ class PersonsController extends AbstractController
'type' => 'person_receive',
'year' => $acc['year']
]);
}
else{
} else {
$items = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(HesabdariDoc::class)->findOneBy([
@ -670,7 +718,8 @@ class PersonsController extends AbstractController
'page_title' => 'لیست دریافت‌ها',
'bid' => $acc['bid'],
'items' => $items
]));
])
);
return $this->json(['id' => $pid]);
}
@ -693,8 +742,7 @@ class PersonsController extends AbstractController
'type' => 'person_receive',
'year' => $acc['year']
]);
}
else{
} else {
$items = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(HesabdariDoc::class)->findOneBy([
@ -726,8 +774,7 @@ class PersonsController extends AbstractController
'type' => 'person_send',
'year' => $acc['year']
]);
}
else{
} else {
$items = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(HesabdariDoc::class)->findOneBy([
@ -747,7 +794,8 @@ class PersonsController extends AbstractController
'page_title' => 'لیست پرداخت‌ها',
'bid' => $acc['bid'],
'items' => $items
]));
])
);
return $this->json(['id' => $pid]);
}
@ -770,8 +818,7 @@ class PersonsController extends AbstractController
'type' => 'person_send',
'year' => $acc['year']
]);
}
else{
} else {
$items = [];
foreach ($params['items'] as $param) {
$prs = $entityManager->getRepository(HesabdariDoc::class)->findOneBy([
@ -855,5 +902,4 @@ class PersonsController extends AbstractController
$log->insert('اشخاص', 'تعداد ' . count($data) . ' شخص به صورت گروهی وارد شد.', $this->getUser(), $request->headers->get('activeBid'));
return $this->json(['result' => 1]);
}
}

View file

@ -3,8 +3,9 @@
namespace App\Repository;
use App\Entity\Person;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use App\Entity\Business;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
/**
* @extends ServiceEntityRepository<Person>
@ -39,6 +40,36 @@ class PersonRepository extends ServiceEntityRepository
}
}
/**
* @return Person[] Returns an array of Person objects
*/
public function searchByNikename(Business $bid,string $search,int $maxResults = 10): array
{
return $this->createQueryBuilder('p')
->andWhere('p.bid = :val')
->andWhere("p.nikename LIKE :search")
->setParameter('val', $bid)
->setParameter('search', '%' . $search . '%')
->setMaxResults($maxResults)
->orderBy('p.id', 'ASC')
->getQuery()
->getResult();
}
/**
* @return Person[] Returns an array of Person objects
*/
public function getLasts(Business $bid,int $maxResults = 10): array
{
return $this->createQueryBuilder('p')
->andWhere('p.bid = :val')
->setParameter('val', $bid)
->setMaxResults($maxResults)
->orderBy('p.id', 'ASC')
->getQuery()
->getResult();
}
/**
* @return Person[] Returns an array of Person objects
*/
@ -53,8 +84,7 @@ class PersonRepository extends ServiceEntityRepository
->setParameter('val', $bid)
->orderBy('p.id', 'ASC')
->getQuery()
->getResult()
;
->getResult();
}
// public function findOneBySomeField($value): ?Person