4747import org .openimis .imisclaims .domain .entity .SubServiceItem ;
4848import org .openimis .imisclaims .network .exception .HttpException ;
4949import org .openimis .imisclaims .tools .Log ;
50+ import org .openimis .imisclaims .usecase .CheckHealthFacility ;
5051import org .openimis .imisclaims .usecase .FetchClaimAdmin ;
5152import org .openimis .imisclaims .usecase .FetchClaimAdmins ;
5253import org .openimis .imisclaims .usecase .FetchControls ;
@@ -556,7 +557,7 @@ public void validateClaimAdminCode(final String claimAdminCode) {
556557 if (c .getCount () == 0 ) {
557558 try {
558559 progressDialog .dismiss ();
559- doLoggedIn (() -> CheckFosaValidity (claimAdminCode ));
560+ doLoggedIn (() -> CheckHealthFacility (claimAdminCode , HealthFacilityName ));
560561 } catch (Exception e ) {
561562 e .printStackTrace ();
562563 }
@@ -567,19 +568,20 @@ public void validateClaimAdminCode(final String claimAdminCode) {
567568 }
568569 }
569570
570- public void CheckFosaValidity (String claimAdminCode ){
571+ public void CheckHealthFacility (String claimAdminCode , String HfCode ){
571572 String progress_message = getResources ().getString (R .string .checkHfValidity );
572573 progressDialog = ProgressDialog .show (this , getResources ().getString (R .string .application ), progress_message );
573574 Thread thread = new Thread () {
574575 public void run () {
575576 try {
576- new FetchClaimAdmin ().execute (claimAdminCode );
577- runOnUiThread (() -> {
578- progressDialog .dismiss ();
579- DownLoadDiagnosesServicesItems (claimAdminCode );
580- });
581- } catch (HttpException e ){
582- if (e .getCode () == HttpURLConnection .HTTP_NOT_FOUND ){
577+ boolean isValidHealthFacility = new CheckHealthFacility ().execute (HfCode );
578+ Log .e ("is valid" , String .valueOf (isValidHealthFacility ));
579+ if (isValidHealthFacility ){
580+ runOnUiThread (() -> {
581+ progressDialog .dismiss ();
582+ DownLoadDiagnosesServicesItems (claimAdminCode );
583+ });
584+ } else {
583585 runOnUiThread (() -> {
584586 progressDialog .dismiss ();
585587 Toast .makeText (MainActivity .this , getResources ().getString (R .string .InvalidHealthFacility ), Toast .LENGTH_LONG ).show ();
@@ -618,46 +620,50 @@ public void run() {
618620
619621 if (officerCode != null ) {
620622 PaymentList paymentList = new FetchPaymentList ().execute (officerCode );
621- String servicesPricelistUuid = paymentList .getServicesPricelistUuid ();
622623 Date date = Calendar .getInstance ().getTime ();
623- List <Service > services = new FetchServices ().execute (servicesPricelistUuid , date );
624- // insert services
625- for (Service service : services ) {
626- sqlHandler .InsertService (service .getId (),
627- service .getCode (),
628- service .getName (), "S" ,
629- String .valueOf (service .getPrice ()),
630- service .getPackageType (),
631- service .getManualPrice ()
632- );
633- sqlHandler .InsertReferences (service .getCode (), service .getName (), "S" , String .valueOf (service .getPrice ()));
634- sqlHandler .InsertMapping (service .getCode (), service .getName (), "S" );
635-
636- if (service .getSubServices () != null && !service .getSubServices ().isEmpty ()) {
637- List <SubServiceItem > subServices = service .getSubServices ();
638- for (SubServiceItem subService : subServices ) {
639- sqlHandler .InsertSubServices (subService .getId (),
640- service .getId (),String .valueOf (subService .getQty ()),subService .getPrice ());
624+ if (paymentList .getServicesPricelistUuid () != null && !paymentList .getServicesPricelistUuid ().isEmpty ()){
625+ List <Service > services = new FetchServices ().execute (paymentList .getServicesPricelistUuid (), date );
626+
627+ // insert services
628+ for (Service service : services ) {
629+ sqlHandler .InsertService (service .getId (),
630+ service .getCode (),
631+ service .getName (), "S" ,
632+ String .valueOf (service .getPrice ()),
633+ service .getPackageType (),
634+ service .getManualPrice ()
635+ );
636+ sqlHandler .InsertReferences (service .getCode (), service .getName (), "S" , String .valueOf (service .getPrice ()));
637+ sqlHandler .InsertMapping (service .getCode (), service .getName (), "S" );
638+
639+ if (service .getSubServices () != null && !service .getSubServices ().isEmpty ()) {
640+ List <SubServiceItem > subServices = service .getSubServices ();
641+ for (SubServiceItem subService : subServices ) {
642+ sqlHandler .InsertSubServices (subService .getId (),
643+ service .getId (),String .valueOf (subService .getQty ()),subService .getPrice ());
644+ }
641645 }
642- }
643- //insert subItems
644- if ( service . getSubItems () != null && ! service .getSubItems (). isEmpty ()) {
645- List < SubServiceItem > subItems = service . getSubItems ();
646- for ( SubServiceItem subItem : subItems ) {
647- sqlHandler . InsertSubItems ( subItem .getId (),
648- service . getId (), String . valueOf ( subItem . getQty ()), subItem . getPrice ());
646+ //insert subItems
647+ if ( service . getSubItems () != null && ! service . getSubItems (). isEmpty ()) {
648+ List < SubServiceItem > subItems = service .getSubItems ();
649+ for ( SubServiceItem subItem : subItems ) {
650+ sqlHandler . InsertSubItems ( subItem . getId (),
651+ service . getId (), String . valueOf ( subItem .getQty ()), subItem . getPrice ());
652+ }
649653 }
650654 }
651655 }
652656
653- String itemsPriceListUuid = paymentList .getItemsPricelistUuid ();
654- List <Medication > medications = new FetchMedications ().execute (itemsPriceListUuid , date );
655- //insert medications or items
656- for (Medication medication : medications ) {
657- sqlHandler .InsertReferences (medication .getCode (), medication .getName (), "I" , String .valueOf (medication .getPrice ()));
658- sqlHandler .InsertMapping (medication .getCode (), medication .getName (), "I" );
659- sqlHandler .InsertItem (medication .getId (),medication .getCode (),medication .getName (), "I" , String .valueOf (medication .getPrice ()));
657+ if (paymentList .getItemsPricelistUuid () != null && !paymentList .getItemsPricelistUuid ().isEmpty ()){
658+ List <Medication > medications = new FetchMedications ().execute (paymentList .getItemsPricelistUuid (), date );
659+ //insert medications or items
660+ for (Medication medication : medications ) {
661+ sqlHandler .InsertReferences (medication .getCode (), medication .getName (), "I" , String .valueOf (medication .getPrice ()));
662+ sqlHandler .InsertMapping (medication .getCode (), medication .getName (), "I" );
663+ sqlHandler .InsertItem (medication .getId (),medication .getCode (),medication .getName (), "I" , String .valueOf (medication .getPrice ()));
664+ }
660665 }
666+
661667 }
662668
663669 List <HealthFacility > healthFacilities = new FetchHealthFacilities ().execute ();
0 commit comments