Commit e91a08f0 authored by prane's avatar prane

To match and select partial amount when collections are treated as advance in...

To match and select partial amount when collections are treated as advance in system and entries are integrated after invoice entries.

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@186899 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 2fa7872e
...@@ -502,76 +502,122 @@ Put a validation chq amount in filter and total of details matches in case heade ...@@ -502,76 +502,122 @@ Put a validation chq amount in filter and total of details matches in case heade
{ {
selectedList = new ArrayList<ReceiptBean>(); selectedList = new ArrayList<ReceiptBean>();
Collections.sort(templist, ReceiptBean.receiptComparator); Collections.sort(templist, ReceiptBean.receiptComparator);
double totAmount = 0.0; //Changes done on 26JUN2018 [To match and select partial amount when collections are treated as advance in system and entries are integrated after invoice entries.]
System.out.println("^^^^^^^templist Size["+templist.size()+"]^^^^^^^^^^"); ArrayList<ReceiptBean> posList = new ArrayList<ReceiptBean>();
for (int i = 0; i < templist.size(); i++) ArrayList<ReceiptBean> negList = new ArrayList<ReceiptBean>();
System.out.println("^^^^^^^templist Size["+ templist.size() + "]^^^^^^^^^^");
double totNegAmt = 0.0, totPosAmt = 0.0;
// Storing Positive amounts List as posList
for (int i = 0; i < templist.size(); i++) {
ReceiptBean rcpBean = templist.get(i);
totAmt = rcpBean.getTotAmt();
balAmt = rcpBean.getBalAmt();
adjAmt = rcpBean.getAdjAmt();
adjustedAmt = rcpBean.getAdjustedAmt();
invAmt = rcpBean.getInvAmt();
if (balAmt > 0)
{ {
totPosAmt = totPosAmt + balAmt;
posList.add(rcpBean);
}
}
// Storing Negative amounts List as negList
for (int i = 0; i < templist.size(); i++) {
ReceiptBean rcpBean = templist.get(i); ReceiptBean rcpBean = templist.get(i);
//System.out.println("--Balance Amount---["+rcpBean.getBalAmt()+"]Cnt["+i+"]"); totAmt = rcpBean.getTotAmt();
invoiceId = rcpBean.getInvoiceId();
tranSer = rcpBean.getTranSer();
custRefNo= rcpBean.getCustRefNo();
tranDate = rcpBean.getTranDate();
totAmt= rcpBean.getTotAmt();
balAmt = rcpBean.getBalAmt(); balAmt = rcpBean.getBalAmt();
adjAmt = rcpBean.getAdjAmt(); adjAmt = rcpBean.getAdjAmt();
adjustedAmt = rcpBean.getAdjustedAmt(); adjustedAmt = rcpBean.getAdjustedAmt();
invAmt = rcpBean.getInvAmt(); invAmt = rcpBean.getInvAmt();
reasCode = rcpBean.getReasCode(); if (balAmt < 0)
custName = rcpBean.getCustName(); {
custCode = rcpBean.getCustCode(); totNegAmt = getRequiredDecimal(totNegAmt, 3) + balAmt;
bankCode = rcpBean.getBankCode(); negList.add(rcpBean);
chequeDate = rcpBean.getChequeDate();
chequeNo = rcpBean.getChequeNo();
chqAmount = rcpBean.getChqAmount();
custRefDate = rcpBean.getCustRefDate();
dueDate = rcpBean.getDueDate();
reasDetail = rcpBean.getReasDetail();
custRefAmt = rcpBean.getCustRefAmt();
totAmount = totAmount+balAmt;
System.out.println("@@@totAmount["+totAmount+"]BalAmount["+balAmt+"]cnt["+i+"]");
rcpBean.setRunningTotal(getRequiredDecimal(totAmount,3));
templist.set(i, rcpBean);
} }
//reverse loop to find 0 amount(match of +ve and -ve) }
for (int index = templist.size() - 1; index >= 0; index--) System.out.println("***Total Amount Positive[" + totPosAmt + "]Negative[" + totNegAmt + "]");
System.out.println("****POSListSize[" + posList.size()+ "]****NEGListSize[" + negList.size() + "]");
// If positive Amt is greater than negative
if (totPosAmt > totNegAmt*(-1))
{ {
ReceiptBean rcpBean = templist.get(index); System.out.println("544::totNegAmt["+totNegAmt+"]");
System.out.println("Balance Amount["+rcpBean.getBalAmt()+"]getRunningTotal():["+rcpBean.getRunningTotal()+"]Cnt["+index+"]"); // If positive Amt is greater then select all negative and match and select value with positive
//If runningTot is 0 then select remianing records else mark unselected for (int i = 0; i < negList.size(); i++)
if(rcpBean.getRunningTotal() == 0)
{ {
int count = 0; ReceiptBean rcpBean = negList.get(i);
for (int selInx = index; selInx >= 0; selInx--)
{ count = selInx;
rcpBean = templist.get(selInx);
//added for asc ordr viewdata
rcpBean.setIsSelected("Y"); rcpBean.setIsSelected("Y");
rcpBean.setDomId(selInx); negList.set(i, rcpBean);
selectedList.add(rcpBean); }
for (int i = 0; i < posList.size(); i++)
{
ReceiptBean posBean = posList.get(i);
double balsAmt = posBean.getBalAmt();
double temp = totNegAmt;
totNegAmt = getRequiredDecimal(totNegAmt,3) + balsAmt;
System.out.println("555::tatNegAmt["+totNegAmt+"]balsAmt["+balsAmt+"]cnt["+i+"]");
posBean.setIsSelected("Y");
posList.set(i, posBean);
if (totNegAmt > 0) //to updated the to be adjusted amt
{
System.out.println("before break...tatPosAmt::"+totNegAmt);
ReceiptBean posBean2 = posList.get(i);
posBean2.setAdjAmt(temp*(-1));
posList.set(i, posBean2);
break;
}else if (totNegAmt == 0){
System.out.println("only break....!!!");
break;
} }
index = count;
} }
else } // If negative Amt is greater than positive
{ //unselected list else if (totNegAmt*(-1) >= totPosAmt)
rcpBean.setIsSelected("N"); {
rcpBean.setDomId(index); // If negative Amt is greater then select all positive and match and select value with negative
selectedList.add(rcpBean); for (int i = 0; i < posList.size(); i++)
{
ReceiptBean rcpBean = posList.get(i);
rcpBean.setIsSelected("Y");
posList.set(i, rcpBean);
}
for (int i = 0; i < negList.size(); i++)
{
ReceiptBean negBean = negList.get(i);
double balsAmt = negBean.getBalAmt();
double temp = totPosAmt;
totPosAmt = getRequiredDecimal(totPosAmt, 3) + balsAmt;
System.out.println("589::tatNegAmt["+totPosAmt+"]Negative amt["+balsAmt+"]cnt["+i+"]");
negBean.setIsSelected("Y");
negList.set(i, negBean);
if (totPosAmt < 0) //to updated the to be adjusted amt
{
System.out.println("before break...tatPosAmt::"+totPosAmt);
ReceiptBean negBean2 = negList.get(i);
negBean2.setAdjAmt(temp*(-1));
negList.set(i, negBean2);
break;
}else if(totPosAmt == 0)
{
System.out.println("only break...");
break;
}
} }
} }
for(int index = selectedList.size() - 1; index >= 0; index--) System.out.println("@@@@@ POSListSize[" + posList.size()+ "]****NEGListSize[" + negList.size() + "]");
int cnt = 1;
for (int i = 0; i < negList.size(); i++)
{ {
ReceiptBean receiptBean = selectedList.get(index); ReceiptBean rcpBean = negList.get(i);
if ("Y".equals(receiptBean.getIsSelected())) { xmlBuff.append(generateXmls(detailDom, cnt, rcpBean.getIsSelected(), rcpBean));
cnt++;
xmlBuff.append(generateXmls(headerDom, receiptBean.getDomId(),"Y",receiptBean));
}else if ("N".equals(receiptBean.getIsSelected())) {
xmlBuff.append(generateXmls(headerDom, receiptBean.getDomId(),"N",receiptBean));
} }
for (int i = 0; i < posList.size(); i++)
{
ReceiptBean rcpBean = posList.get(i);
xmlBuff.append(generateXmls(detailDom, cnt, rcpBean.getIsSelected(), rcpBean));
cnt++;
} }
System.out.println("Total Amount - ["+totAmount+"]"); //Changes done on 26JUN2018 End
}//end of for (ArrayList templist : custGrpMap.values()) }//end of for (ArrayList templist : custGrpMap.values())
xmlBuff.append("</Header0>"); xmlBuff.append("</Header0>");
xmlBuff.append("</group0>"); xmlBuff.append("</group0>");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment