public async Task <IActionResult> SaveEmiReceipt([FromBody] SaveEmireceiptsDTO SaveEmireceiptslist)
        {
            try
            {
                string OUTReceiptid = string.Empty;
                if (ObjReceipts.SaveEmiReceipt(SaveEmireceiptslist, Con, out OUTReceiptid))
                {
                    if (!string.IsNullOrEmpty(OUTReceiptid))
                    {
                        _GeneralReceiptReportDTO = new GeneralReceiptReportDTO();
                        _GeneralReceiptReportDTO = await _AccountingTransactionsDAL.GetgeneralreceiptReportData1(OUTReceiptid, Con);

                        _GeneralReceiptReportDTO.pCompanyInfoforReports = obj.GetcompanyNameandaddressDetails(Con);
                        return(Ok(_GeneralReceiptReportDTO));
                    }
                    else
                    {
                        return(Ok(false));
                    }
                }
                else
                {
                    return(Ok(false));
                }
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
        public bool Savegenaralreceipt(SaveEmireceiptsDTO SaveEmireceiptslist, NpgsqlTransaction trans, out string Receiptid)
        {
            bool                      IsSaved      = false;
            StringBuilder             sbQuery      = new StringBuilder();
            AccountingTransactionsDAL Accontstrans = new AccountingTransactionsDAL();

            try
            {
                GeneralreceiptDTO Objgeneralreceipt = new GeneralreceiptDTO();
                Objgeneralreceipt.preceiptid           = "";
                Objgeneralreceipt.ppartyid             = SaveEmireceiptslist.pConid;
                Objgeneralreceipt.ppartyreftype        = "APPLICANT";
                Objgeneralreceipt.ppartyreferenceid    = SaveEmireceiptslist.pContactid;
                Objgeneralreceipt.ppartyname           = SaveEmireceiptslist.pApplicantname;
                Objgeneralreceipt.preceiptdate         = SaveEmireceiptslist.pReceiptdate.ToString();
                Objgeneralreceipt.pmodofreceipt        = SaveEmireceiptslist.pModeofreceipt;
                Objgeneralreceipt.ptotalreceivedamount = Convert.ToDecimal(SaveEmireceiptslist.pTotalreceived);
                Objgeneralreceipt.pnarration           = SaveEmireceiptslist.pNarration;
                Objgeneralreceipt.pbankname            = SaveEmireceiptslist.pBank;
                Objgeneralreceipt.pBankId        = SaveEmireceiptslist.pBankid;
                Objgeneralreceipt.pdepositbankid = SaveEmireceiptslist.pDeposibankid;
                Objgeneralreceipt.pbranchname    = SaveEmireceiptslist.pBranch;
                Objgeneralreceipt.ptranstype     = SaveEmireceiptslist.pTranstype;
                Objgeneralreceipt.ptypeofpayment = SaveEmireceiptslist.pTypeofpaymentonline;
                Objgeneralreceipt.pChequenumber  = SaveEmireceiptslist.pChequeno;
                Objgeneralreceipt.pchequedate    = SaveEmireceiptslist.pTransdate;
                Objgeneralreceipt.pCardNumber    = SaveEmireceiptslist.pVchcardnumber;
                Objgeneralreceipt.pUpiid         = SaveEmireceiptslist.pUpiid;
                Objgeneralreceipt.pCreatedby     = SaveEmireceiptslist.pCreatedby;

                List <ReceiptsDTO> preceiptslist = new List <ReceiptsDTO>();
                ReceiptsDTO        objpreceipts  = new ReceiptsDTO();
                objpreceipts.psubledgerid         = SaveEmireceiptslist.pSubledgerid;
                objpreceipts.pledgername          = "SUNDRY DEBITORS" + "_" + SaveEmireceiptslist.pLoanname;
                objpreceipts.ptdsamountindividual = Convert.ToDecimal(SaveEmireceiptslist.pTotalreceived);
                objpreceipts.pamount = Convert.ToDecimal(SaveEmireceiptslist.pTotalreceived);
                preceiptslist.Add(objpreceipts);
                Objgeneralreceipt.preceiptslist = preceiptslist;
                if (Accontstrans.CallsaveGeneralReceipt(Objgeneralreceipt, trans, out Receiptid))
                {
                    IsSaved = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(IsSaved);
        }
        public bool SaveEmiReceipt(SaveEmireceiptsDTO SaveEmireceiptslist, string ConnectionString, out string OUTReceiptid)
        {
            StringBuilder sbinsert       = new StringBuilder();
            string        Query          = string.Empty;
            bool          IsSaved        = false;
            bool          IsAccountSaved = false;
            string        Receiptid      = string.Empty;

            try
            {
                con = new NpgsqlConnection(ConnectionString);
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                trans = con.BeginTransaction();
                if (Savegenaralreceipt(SaveEmireceiptslist, trans, out OUTReceiptid))
                {
                    IsAccountSaved = true;
                }
                else
                {
                    trans.Rollback();
                    return(IsAccountSaved);
                }

                Query = "insert into tbltransemireceipt(loanno, loanname, applicationid, vchapplicationid, receiptdate, receiptno, principlereceivable, intrestreceivable, installmentreceivable, penaltyreceivable, chargesreceivable, installmentreceived, penaltyreceived, chargesreceived, penaltywaiveoffamount, chargeswaiveoffamount, loanadvanceamount, totalreceived, modeofpayment, referencenumber,bank, branch, dattransdate, narration, typeofpaymentonline, upiid, chrclearstatus, vchcardissuebank, vchcardnumber, vchcardtype, vchcardholdername, statusid, createdby,createddate,formname)values(" + SaveEmireceiptslist.pLoanno + ",'" + ManageQuote(SaveEmireceiptslist.pLoanname) + "'," + SaveEmireceiptslist.pApplicationid + ",'" + ManageQuote(SaveEmireceiptslist.pVchapplicationid) + "','" + FormatDate(SaveEmireceiptslist.pReceiptdate.ToString()) + "','" + ManageQuote(OUTReceiptid) + "'," + SaveEmireceiptslist.pPrincipalreceivable + "," + SaveEmireceiptslist.pInterestreceivable + "," + SaveEmireceiptslist.pInstalmentreceivable + "," + SaveEmireceiptslist.pPenaltyreceivable + "," + SaveEmireceiptslist.pChargesreceivable + "," + SaveEmireceiptslist.pInstallmentreceived + "," + SaveEmireceiptslist.pPenaltyreceived + "," + SaveEmireceiptslist.pChargesreceived + "," + SaveEmireceiptslist.pPenaltywaiveoffamount + "," + SaveEmireceiptslist.pChargeswaiveoffamount + "," + SaveEmireceiptslist.pLoanadvanceamount + "," + SaveEmireceiptslist.pTotalreceived + ",'" + ManageQuote(SaveEmireceiptslist.pModeofreceipt) + "','" + ManageQuote(SaveEmireceiptslist.pChequeno) + "','" + ManageQuote(SaveEmireceiptslist.pBank) + "','" + ManageQuote(SaveEmireceiptslist.pBranch) + "','" + FormatDate(SaveEmireceiptslist.pTransdate.ToString()) + "','" + ManageQuote(SaveEmireceiptslist.pNarration) + "','" + ManageQuote(SaveEmireceiptslist.pTypeofpaymentonline) + "','" + ManageQuote(SaveEmireceiptslist.pUpiid) + "','" + ManageQuote(SaveEmireceiptslist.pChrclearstatus) + "','" + ManageQuote(SaveEmireceiptslist.pVchcardissuebank) + "','" + ManageQuote(SaveEmireceiptslist.pVchcardnumber) + "','" + ManageQuote(SaveEmireceiptslist.pVchcardtype) + "','" + ManageQuote(SaveEmireceiptslist.pVchcardholdername) + "',1," + SaveEmireceiptslist.pCreatedby + ",current_timestamp,'" + SaveEmireceiptslist.pFormname + "') returning emiid";

                if (!string.IsNullOrEmpty(Query))
                {
                    SaveEmireceiptslist.pEmiid = Convert.ToInt64(NPGSqlHelper.ExecuteScalar(trans, CommandType.Text, Query));
                }
                if (SaveEmireceiptslist.lstSaveEmireceiptdetails != null)
                {
                    if (SaveEmireceiptslist.pFormname == "RECEIPT")
                    {
                        for (int i = 0; i < SaveEmireceiptslist.lstSaveEmireceiptdetails.Count; i++)
                        {
                            if (SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pParticularstype == "CHARGES")
                            {
                                if (SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivedamount > 0 || SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pWaiveoffamount > 0)
                                {
                                    sbinsert.Append(" insert into tbltransemireceiptdetails(emiid,receiptno,applicationid,vchapplicationid,particularstype,particularname,detailsreceivabledate,detailsreceivableamount,waiveoffamount,detailsreceivedamount,statusid,createdby,createddate,gsttype,gstcalculationtype,gstpercentage,formname)values(" + SaveEmireceiptslist.pEmiid + ",'" + ManageQuote(OUTReceiptid) + "'," + SaveEmireceiptslist.pApplicationid + ",'" + ManageQuote(SaveEmireceiptslist.pVchapplicationid) + "','" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pParticularstype) + "','" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pParticularname) + "','" + FormatDate(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivabledate.ToString()) + "'," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivableamount + "," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pWaiveoffamount + "," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivedamount + ",1," + SaveEmireceiptslist.pCreatedby + ",current_timestamp,'" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pGsttype) + "','" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pGstcaltype) + "'," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pGstpercentage + ",'" + SaveEmireceiptslist.pFormname + "');");
                                }
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < SaveEmireceiptslist.lstSaveEmireceiptdetails.Count; i++)
                        {
                            if (SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivedamount > 0 || SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pWaiveoffamount > 0)
                            {
                                sbinsert.Append(" insert into tbltransemireceiptdetails(emiid,receiptno,applicationid,vchapplicationid,particularstype,particularname,detailsreceivabledate,detailsreceivableamount,waiveoffamount,detailsreceivedamount,statusid,createdby,createddate,gsttype,gstcalculationtype,gstpercentage,formname)values(" + SaveEmireceiptslist.pEmiid + ",'" + ManageQuote(OUTReceiptid) + "'," + SaveEmireceiptslist.pApplicationid + ",'" + ManageQuote(SaveEmireceiptslist.pVchapplicationid) + "','" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pParticularstype) + "','" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pParticularname) + "','" + FormatDate(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivabledate.ToString()) + "'," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivableamount + "," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pWaiveoffamount + "," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pDetailsreceivedamount + ",1," + SaveEmireceiptslist.pCreatedby + ",current_timestamp,'" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pGsttype) + "','" + ManageQuote(SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pGstcaltype) + "'," + SaveEmireceiptslist.lstSaveEmireceiptdetails[i].pGstpercentage + ",'" + SaveEmireceiptslist.pFormname + "');");
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(sbinsert.ToString()))
                    {
                        NPGSqlHelper.ExecuteNonQuery(trans, CommandType.Text, sbinsert.ToString());
                    }
                }
                if (SaveEmireceiptslist.pModeofreceipt.ToUpper() == "CASH")
                {
                    NPGSqlHelper.ExecuteNonQuery(trans, CommandType.Text, "SELECT FN_EMI_CREDITJV('" + ManageQuote(SaveEmireceiptslist.pVchapplicationid) + "','" + OUTReceiptid + "','" + SaveEmireceiptslist.pFormname + "')");
                }

                trans.Commit();
                IsSaved = true;
            }
            catch (Exception ex)
            {
                trans.Rollback();
                throw ex;
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Dispose();
                    con.Close();
                    con.ClearPool();
                    trans.Dispose();
                }
            }
            return(IsSaved);
        }