diff --git a/src/main/java/com/divudi/bean/common/BillSearch.java b/src/main/java/com/divudi/bean/common/BillSearch.java
index 0be95d9e11..01f0c2e606 100644
--- a/src/main/java/com/divudi/bean/common/BillSearch.java
+++ b/src/main/java/com/divudi/bean/common/BillSearch.java
@@ -79,6 +79,8 @@
import com.divudi.data.ServiceType;
import com.divudi.entity.Doctor;
import com.divudi.facade.FeeFacade;
+import com.divudi.facade.PatientFacade;
+import com.divudi.facade.StaffFacade;
import com.divudi.java.CommonFunctions;
import com.divudi.light.common.BillLight;
import java.io.Serializable;
@@ -157,6 +159,8 @@ public class BillSearch implements Serializable {
private EmailFacade emailFacade;
@EJB
FeeFacade feeFacade;
+ @EJB
+ private StaffFacade staffFacade;
/**
* Controllers
*/
@@ -1267,9 +1271,9 @@ public boolean calculateRefundTotalForOpdBill() {
double refundingValue = 0;
for (BillFee rbf : i.getBillFees()) {
- System.out.println("rbf.getFeeValue() name = " + rbf.getFee().getName());
- System.out.println("rbf.getFeeValue() = " + rbf.getFeeValue());
- System.out.println("rbf.getFeeValue() fee = " + rbf.getFee().getFee());
+ //System.out.println("rbf.getFeeValue() name = " + rbf.getFee().getName());
+ //System.out.println("rbf.getFeeValue() = " + rbf.getFeeValue());
+ //System.out.println("rbf.getFeeValue() fee = " + rbf.getFee().getFee());
refundingValue += rbf.getFeeValue();
}
i.setNetValue(refundingValue);
@@ -1569,6 +1573,13 @@ public String refundOpdBill() {
JsfUtil.addErrorMessage("One or more bill Item you are refunding has been already paid to Service Provider. Can not refund again.");
return "";
}
+
+ if (paymentMethod == PaymentMethod.Staff) {
+ if (getBill().getToStaff() == null) {
+ JsfUtil.addErrorMessage("Can't Select Staff Method");
+ return "";
+ }
+ }
if (refundingBill.getBillItems() != null) {
for (BillItem bi : refundingBill.getBillItems()) {
@@ -1602,23 +1613,36 @@ public String refundOpdBill() {
Payment p = getOpdPreSettleController().createPaymentForCancellationsAndRefunds(refundingBill, paymentMethod);
//TODO: Create Payments for Bill Items
- if (getBill().getPaymentMethod() == PaymentMethod.Credit) {
- if (getBill().getToStaff() != null) {
- staffBean.updateStaffCredit(getBill().getToStaff(), 0 - (getBill().getNetTotal() + getBill().getVat()));
- JsfUtil.addSuccessMessage("Staff Credit Updated");
- } else if (getBill().getCreditCompany() != null) {
- //TODO : Update Credit COmpany Bill
- }
+ if (getBill().getPaymentMethod() == PaymentMethod.Staff) {
+ //System.out.println("PaymentMethod - Staff");
+
+ //System.out.println("Before Balance = " + getBill().getToStaff().getCurrentCreditValue());
+ getBill().getToStaff().setCurrentCreditValue(getBill().getToStaff().getCurrentCreditValue() - Math.abs(getRefundingBill().getNetTotal()));
+
+ //System.out.println("After Balance = " + getBill().getToStaff().getCurrentCreditValue());
+ staffFacade.edit(getBill().getToStaff());
+ //System.out.println("Staff Credit Updated");
+
} else if (getBill().getPaymentMethod() == PaymentMethod.PatientDeposit) {
- //TODO: Update Patient Deposit
+ //System.out.println("Before Balance = " + bill.getPatient().getRunningBalance());
+ if (bill.getPatient().getRunningBalance() == null) {
+ //System.out.println("Null");
+ bill.getPatient().setRunningBalance(Math.abs(bill.getNetTotal()));
+ } else {
+ //System.out.println("Not Null - Add BillValue");
+ bill.getPatient().setRunningBalance(bill.getPatient().getRunningBalance() + Math.abs(bill.getNetTotal()));
+ }
+ patientFacade.edit(bill.getPatient());
+ //System.out.println("After Balance = " + bill.getPatient().getRunningBalance());
}
- //TODO - Update Bill Payment Values
- //TODO - Update Bill Paid Value
printPreview = true;
return "";
}
+ @EJB
+ private PatientFacade patientFacade;
+
public boolean sampleHasBeenCollected(Bill rf) {
boolean oneItemIsSampled = false;
for (BillItem bi : rf.getBillItems()) {
@@ -2162,6 +2186,13 @@ public void cancelOpdBill() {
}
}
+ if (paymentMethod == PaymentMethod.Staff) {
+ if (getBill().getToStaff() == null) {
+ JsfUtil.addErrorMessage("Can't Select Staff Method");
+ return;
+ }
+ }
+
if (!getWebUserController().hasPrivilege("OpdCancel")) {
JsfUtil.addErrorMessage("You have no privilege to cancel OPD bills. Please contact System Administrator.");
return;
@@ -2972,7 +3003,7 @@ public String navigateViewOpdBillByBillTypeAtomic() {
case PROFESSIONAL_PAYMENT_FOR_STAFF_FOR_CHANNELING_SERVICE_RETURN:
case PROFESSIONAL_PAYMENT_FOR_STAFF_FOR_CHANNELING_SERVICE_SESSION:
return navigateToViewChannelingProfessionalPaymentBill();
-
+
case OPD_BATCH_BILL_TO_COLLECT_PAYMENT_AT_CASHIER:
case OPD_BATCH_BILL_PAYMENT_COLLECTION_AT_CASHIER:
case OPD_BATCH_BILL_CANCELLATION:
@@ -2981,7 +3012,7 @@ public String navigateViewOpdBillByBillTypeAtomic() {
case PROFESSIONAL_PAYMENT_FOR_STAFF_FOR_OPD_SERVICES:
case PROFESSIONAL_PAYMENT_FOR_STAFF_FOR_OPD_SERVICES_RETURN:
return navigateToViewOpdProfessionalPaymentBill();
-
+
}
JsfUtil.addErrorMessage("Wrong Bill Type");
return "";
@@ -4090,6 +4121,22 @@ public void setReferredBy(Doctor referredBy) {
this.referredBy = referredBy;
}
+ public PatientFacade getPatientFacade() {
+ return patientFacade;
+ }
+
+ public void setPatientFacade(PatientFacade patientFacade) {
+ this.patientFacade = patientFacade;
+ }
+
+ public StaffFacade getStaffFacade() {
+ return staffFacade;
+ }
+
+ public void setStaffFacade(StaffFacade staffFacade) {
+ this.staffFacade = staffFacade;
+ }
+
public class PaymentSummary {
private long idCounter = 0;
diff --git a/src/main/java/com/divudi/bean/common/OpdPreSettleController.java b/src/main/java/com/divudi/bean/common/OpdPreSettleController.java
index cbe22fdc56..64f44820cd 100644
--- a/src/main/java/com/divudi/bean/common/OpdPreSettleController.java
+++ b/src/main/java/com/divudi/bean/common/OpdPreSettleController.java
@@ -54,6 +54,7 @@
import com.divudi.facade.PaymentFacade;
import com.divudi.facade.PersonFacade;
import com.divudi.facade.PharmaceuticalBillItemFacade;
+import com.divudi.facade.StaffFacade;
import com.divudi.facade.TokenFacade;
import java.io.Serializable;
@@ -122,6 +123,9 @@ public OpdPreSettleController() {
TokenFacade tokenFacade;
@EJB
StaffBean staffBean;
+ @EJB
+ private StaffFacade staffFacade;
+
/////////////////////////
Item selectedAlternative;
@@ -1703,26 +1707,36 @@ public Payment createPaymentForCancellationsforOPDBill(Bill bill, PaymentMethod
p.setCreater(getSessionController().getLoggedUser());
p.setPaymentMethod(pm);
- System.out.println("pm = " + pm);
+ //System.out.println("pm = " + pm);
if (pm == PaymentMethod.PatientDeposit) {
- System.out.println("Before Balance = " + bill.getPatient().getRunningBalance());
+ //System.out.println("Before Balance = " + bill.getPatient().getRunningBalance());
if (bill.getPatient().getRunningBalance() == null) {
- System.out.println("Null");
+ //System.out.println("Null");
bill.getPatient().setRunningBalance(Math.abs(bill.getNetTotal()));
} else {
- System.out.println("Not Null - Add BillValue");
+ //System.out.println("Not Null - Add BillValue");
bill.getPatient().setRunningBalance(bill.getPatient().getRunningBalance() + Math.abs(bill.getNetTotal()));
}
patientFacade.edit(bill.getPatient());
- System.out.println("After Balance = " + bill.getPatient().getRunningBalance());
+ //System.out.println("After Balance = " + bill.getPatient().getRunningBalance());
+ }
+
+ if (pm == PaymentMethod.Staff) {
+ //System.out.println("PaymentMethod - Staff");
+ //System.out.println("Before Balance = " + bill.getToStaff().getCurrentCreditValue());
+ bill.getToStaff().setCurrentCreditValue( bill.getToStaff().getCurrentCreditValue() - Math.abs(bill.getNetTotal()));
+ //System.out.println("After Balance = " + bill.getToStaff().getCurrentCreditValue());
+ staffFacade.edit(bill.getToStaff());
+ //System.out.println("Staff Credit Updated");
}
- System.out.println("001");
+
+ //System.out.println("001");
if (p.getId() == null) {
getPaymentFacade().create(p);
}
getPaymentFacade().edit(p);
- System.out.println("End Payment");
+ //System.out.println("End Payment");
return p;
}
@@ -2017,4 +2031,12 @@ public void setForeigner(boolean foreigner) {
this.foreigner = foreigner;
}
+ public StaffFacade getStaffFacade() {
+ return staffFacade;
+ }
+
+ public void setStaffFacade(StaffFacade staffFacade) {
+ this.staffFacade = staffFacade;
+ }
+
}
diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml
index 010d01ff02..19c35b09ad 100644
--- a/src/main/resources/META-INF/persistence.xml
+++ b/src/main/resources/META-INF/persistence.xml
@@ -1,24 +1,22 @@
-
- org.eclipse.persistence.jpa.PersistenceProvider
- jdbc/arogya
- false
-
-
-
-
-
-
-
- jdbc/arogyaAudit
- com.divudi.entity.AuditEvent
- true
-
-
-
-
-
-
+
+ jdbc/arogya
+ false
+
+
+
+
+
+
+
+ jdbc/arogyaAudit
+ false
+
+
+
+
+
+
diff --git a/src/main/webapp/opd/bill_refund.xhtml b/src/main/webapp/opd/bill_refund.xhtml
index ffa0d94897..8887f89996 100644
--- a/src/main/webapp/opd/bill_refund.xhtml
+++ b/src/main/webapp/opd/bill_refund.xhtml
@@ -64,7 +64,7 @@
-
+
-
+