CHS - Test Points

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