CHS - Test Points
Changes in MakeMultipleInvoiceOption
- Add one more combo for Roll Back Invoice with yes and No value, bydefault it will be N
- When Save button will be clicked and RollBackInvoice is Y, need to a show a confirmation message. All Invoice created by the system for the selected date will be deleted
- If user selects Roll back and for then need to check few validations in MakeMultipleInvoiceValidateCreate method
if(_MakeMultipleInvoice.RollBackInvoice == "Y")
{
var sysCreatedInvoiceCnt = _IMakeMultipleInvoiceRepository.GetSysCreatedInvoiceCnt(dbname);
if (sysCreatedInvoiceCnt == 0)
{
ModelState.AddModelError("FormError", "No system-created records are available for rollback.");
}
else
{
var invRecordsAfterToDateCnt = _IMakeMultipleInvoiceRepository.GetInvRecordsAfterToDateCnt(_MakeMultipleInvoice.Dated, dbname);
if (invRecordsAfterToDateCnt > 0)
{
ModelState.AddModelError("FormError", "Invoice records exist after the specified date. Rollback is not possible.");
}
connectedDocsCnt = _IMakeMultipleInvoiceRepository.GetConnectedDocsCnt(_MakeMultipleInvoice.Dated, dbname)
if(connectedDocsCnt > 0)
{
ModelState.AddModelError("FormError", "Invoice records are connected to other documents and cannot be rolled back.");
}
}
}Changes for MakeMultipleInvoiceRepository
- Invoice InvoiceChs need to introduce createtype column.
- In MakeMultipleInvoiceRepository » invoicechsinsert » CreateType need to insert as S
- Need to create method RollBackMultipleInvoice
---- rolling back member invoiceupto
WITH A (memberid, invoiceupto) AS
(
SELECT DISTINCT memberid, DATEADD(DAY, -1, fromdate) AS invoiceupto
FROM InvoiceChs1 I1
LEFT JOIN InvoiceChs I ON I1.yearinvoiceno = I.yearinvoiceno
WHERE I.createtype = 'S' AND CONVERT(DATE, dated) = CONVERT(DATE, @dated)
)
UPDATE Membermst SET invoiceupto = A.invoiceupto
FROM A
WHERE A.memberid = Membermst.memberid
----rolling back date of sysparameter
WITH A (dated) AS
(
SELECT TOP 1 DATEADD(DAY, -1, fromdate) AS dated
FROM InvoiceChs
WHERE createtype = 'S' AND CONVERT(DATE, dated) = CONVERT(DATE, @dated)
),
B(qtymonthlydate) AS
(
SELECT IIF(invoicecycle = 'Q', DATEADD(MONTH, -2, A.dated), dated ) AS qtymonthlydate
FROM A
LEFT JOIN EntityMst ON 1 = 1
)
UPDATE sysparameters SET dated = qtymonthlydate
FROM A
WHERE sysname='MultipleInvoiceInProgress'
---- Deleting Invoice CHS 1
DELETE FROM InvoiceChs1 WHERE yearinvoice IN (SELECT yearinvoice FROM InvoiceChs WHERE createtype = 'S' AND CONVERT(DATE, dated) = CONVERT(DATE, @dated))
----deleting invoicechs
DELETE FROM InvoiceChs WHERE createtype = 'S' AND CONVERT(DATE, dated) = CONVERT(DATE, @dated)- GetSysCreatedInvoiceCnt
SELECT COUNT(*) AS cnt
FROM InvoiceChs
WHERE createtype = 'S'
AND CONVERT(DATE, dated) = CONVERT(DATE, @dated)- GetInvRecordsAfterToDateCnt
SELECT COUNT(*) AS cnt
FROM InvoiceChs
WHERE CONVERT(DATE, dated) > CONVERT(DATE, @dated)- GetConnectedDocsCnt
WITH A (yeardocno) AS
{
SELECT V1.yearvoucherno
FROM voucher V1
LEFT JOIN InvoiceChs I ON V1.refno = I.invoiceno AND CONVERT(DATE,V1.refdate) = CONVERT(DATE,I.dated)
WHERE V1.refdoc = 'SI'
AND I.createtype = 'S' AND CONVERT(DATE, I.dated) = CONVERT(DATE, @dated)
UNION ALL
SELECT JV1.yearjvno
FROM journalvoucher1 JV1
LEFT JOIN InvoiceChs I ON JV1.refno = I.invoiceno AND CONVERT(DATE,JV1.refdate) = CONVERT(DATE,I.dated)
WHERE JV1.refdoc = 'SI'
AND I.createtype = 'S' AND CONVERT(DATE, I.dated) = CONVERT(DATE, @dated)
UNION ALL
SELECT S.yearscnno
FROM SalesCreditNote S
LEFT JOIN InvoiceChs I ON S.yearinvoiceno = I.yearinvoiceno
WHERE I.createtype = 'S' AND CONVERT(DATE, I.dated) = CONVERT(DATE, @dated)
},
SELECT COUNT(*) AS cnt
FROM A Other Changes
- In MemberMstDetails in UpdateTariffAmount tariff amount range needs to updated from 1000 to 500