public int UpdateInvoice(EntityPatientInvoice entInvoice, List <EntityInvoiceDetails> lst) { int i = 0; try { tblPatientInvoice objTest = (from tbl in objData.tblPatientInvoices where tbl.IsDelete == false && tbl.BillNo == entInvoice.BillNo select tbl).FirstOrDefault(); if (objTest != null) { objTest.Amount = entInvoice.Amount; objTest.BillType = entInvoice.BillType; objTest.NetAmount = entInvoice.NetAmount; objTest.TotalAdvance = entInvoice.TotalAdvance; objTest.BalanceAmount = entInvoice.BalanceAmount; objTest.ReceivedAmount = entInvoice.ReceivedAmount; objTest.RefundAmount = entInvoice.RefundAmount; objTest.FixedDiscount = entInvoice.FixedDiscount; objTest.PreparedByName = entInvoice.PreparedByName; //objTest.Service = entInvoice.Service; //objTest.Vat = entInvoice.Vat; if (entInvoice.BillType != "Estimated") { int TransactionId = GetTransactionId(); if (entInvoice.IsCash) { tblCustomerTransaction objDebit = new tblCustomerTransaction() { TransactionId = TransactionId, IsCash = true, TransactionDocNo = entInvoice.BillNo, TransactionType = "Invoice", BillAmount = entInvoice.NetAmount, PayAmount = entInvoice.NetAmount, Discount = entInvoice.FixedDiscount, PatientId = entInvoice.PatientId, PreparedByName = entInvoice.PreparedByName, IsDelete = false, ReceiptDate = entInvoice.BillDate, }; objData.tblCustomerTransactions.InsertOnSubmit(objDebit); } else { tblCustomerTransaction objDebit = new tblCustomerTransaction() { TransactionId = TransactionId, IsCash = false, TransactionDocNo = entInvoice.BillNo, TransactionType = "Invoice", BillAmount = entInvoice.NetAmount, Discount = entInvoice.FixedDiscount, PatientId = entInvoice.PatientId, PreparedByName = entInvoice.PreparedByName, IsDelete = false, ReceiptDate = entInvoice.BillDate, }; objData.tblCustomerTransactions.InsertOnSubmit(objDebit); //objData.SubmitChanges(); } } else { List <tblCustomerTransaction> objCust = (from tbl in objData.tblCustomerTransactions where tbl.IsDelete == false && tbl.TransactionDocNo == entInvoice.BillNo && tbl.TransactionType == "Invoice" select tbl).ToList(); if (objCust != null) { if (objCust.Count == 1) { if (entInvoice.IsCash) { tblCustomerTransaction objC = new tblCustomerTransaction() { PayAmount = entInvoice.NetAmount, BillAmount = entInvoice.NetAmount, Discount = entInvoice.FixedDiscount, ReceiptDate = entInvoice.BillDate, IsCash = entInvoice.IsCash, IsDelete = false, TransactionDocNo = entInvoice.BillNo, TransactionId = objCust[0].TransactionId, TransactionType = "Invoice", PatientId = entInvoice.PatientId, PreparedByName = entInvoice.PreparedByName, }; objData.tblCustomerTransactions.InsertOnSubmit(objC); foreach (tblCustomerTransaction item in objCust) { item.BillAmount = entInvoice.NetAmount; item.ReceiptDate = entInvoice.BillDate; item.IsCash = entInvoice.IsCash; if (item.IsCash == false) { if (item.PayAmount > 0) { item.IsDelete = true; } } else { item.PayAmount = 0; } } } else { foreach (tblCustomerTransaction item in objCust) { item.BillAmount = entInvoice.NetAmount; item.ReceiptDate = entInvoice.BillDate; item.IsCash = entInvoice.IsCash; if (item.IsCash == false) { if (item.PayAmount > 0) { item.IsDelete = true; } } else { if (item.PayAmount > 0) { item.PayAmount = entInvoice.NetAmount; } else { item.PayAmount = 0; } } } } } else { foreach (tblCustomerTransaction item in objCust) { item.BillAmount = entInvoice.NetAmount; item.ReceiptDate = entInvoice.BillDate; item.IsCash = entInvoice.IsCash; if (item.IsCash == false) { if (item.PayAmount > 0) { item.IsDelete = true; } } else { if (item.PayAmount > 0) { item.PayAmount = entInvoice.NetAmount; } else { item.PayAmount = 0; } } } } } } foreach (EntityInvoiceDetails item in lst) { if (item.BillSRNo > 0) { tblPatientInvoiceDetail cnt = (from tbl in objData.tblPatientInvoiceDetails where tbl.BillNo == item.BillNo && tbl.BillSRNo == item.BillSRNo && tbl.IsDelete == false select tbl).FirstOrDefault(); if (cnt != null) { cnt.BillNo = entInvoice.BillNo; cnt.Quantity = item.Quantity; cnt.NoOfDays = item.NoOfDays; cnt.Remarks = item.Remarks; cnt.Amount = item.Amount; cnt.ChargePerDay = item.PerDayCharge; cnt.OtherChargesId = item.OtherChargesId; cnt.IsDelete = item.IsDelete; } } else { tblPatientInvoiceDetail objNewAdded = new tblPatientInvoiceDetail() { BillNo = entInvoice.BillNo, BedAllocId = item.BedAllocId, OTAllocId = item.OTBedAllocId, DocAllocId = item.DocAllocationId, OtherChargesId = item.OtherChargesId, Amount = item.Amount, ChargePerDay = item.PerDayCharge, NetAmount = item.NetAmount, Remarks = item.Remarks, NoOfDays = item.NoOfDays, Quantity = item.Quantity, IsDelete = false }; objData.tblPatientInvoiceDetails.InsertOnSubmit(objNewAdded); if (entInvoice.BillType == "Original") { if (objNewAdded.BedAllocId > 0) { int p = new BedStatusBLL().DischargePatient(entInvoice.PatientId, entInvoice.BillDate); } } } } tblPatientAdmitDetail admit = (from tbl in objData.tblPatientAdmitDetails where tbl.IsDelete == false && tbl.AdmitId == entInvoice.PatientId select tbl).FirstOrDefault(); if (entInvoice.BillType == "Estimated") { if (admit != null) { admit.IsDischarge = false; } } if (entInvoice.BillType == "Original") { if (admit != null) { admit.IsDischarge = true; } } objData.SubmitChanges(); } i++; } catch (Exception ex) { i = 0; throw ex; } return(i); }
public int InsertInvoice(EntityPatientInvoice entInvoice, List <EntityInvoiceDetails> lstInvoice, bool IsCash) { try { int?BillNo = 0; objData.STP_InsertInvoice(Convert.ToDateTime(entInvoice.BillDate), ref BillNo, Convert.ToString(entInvoice.BillType), Convert.ToInt32(entInvoice.PatientId), Convert.ToString(entInvoice.PreparedByName), Convert.ToDecimal(entInvoice.Amount), Convert.ToDecimal(entInvoice.Discount), //Convert.ToDecimal(entInvoice.Vat), Convert.ToDecimal(entInvoice.Service), Convert.ToDecimal(entInvoice.NetAmount), Convert.ToDecimal(entInvoice.TotalAdvance), Convert.ToDecimal(entInvoice.BalanceAmount), Convert.ToDecimal(entInvoice.ReceivedAmount), Convert.ToDecimal(entInvoice.RefundAmount), true, Convert.ToDecimal(entInvoice.FixedDiscount)); foreach (EntityInvoiceDetails entInvoiceDetails in lstInvoice) { tblPatientInvoiceDetail obj = new tblPatientInvoiceDetail() { BillNo = BillNo, BedAllocId = entInvoiceDetails.BedAllocId, OTAllocId = entInvoiceDetails.OTBedAllocId, DocAllocId = entInvoiceDetails.DocAllocationId, OtherChargesId = entInvoiceDetails.OtherChargesId, Amount = entInvoiceDetails.Amount, NetAmount = entInvoice.NetAmount, ChargePerDay = entInvoiceDetails.PerDayCharge, Remarks = entInvoiceDetails.Remarks, NoOfDays = entInvoiceDetails.NoOfDays, Quantity = entInvoiceDetails.Quantity, IsDelete = false }; objData.tblPatientInvoiceDetails.InsertOnSubmit(obj); if (entInvoice.BillType == "Original") { if (entInvoiceDetails.BedAllocId > 0) { int i = new BedStatusBLL().DischargePatient(entInvoice.PatientId, entInvoice.BillDate); } } } //int i = new BedStatusBLL().DischargePatient(entInvoiceDetails.PatientID, entInvoice.BillDate); if (entInvoice.BillType != "Estimated") { int TransactionId = GetTransactionId(); if (IsCash) { tblCustomerTransaction objDebit = new tblCustomerTransaction() { TransactionId = TransactionId, IsCash = true, TransactionDocNo = BillNo, TransactionType = "Invoice", BillAmount = entInvoice.NetAmount, PayAmount = entInvoice.NetAmount, Discount = entInvoice.FixedDiscount, PatientId = entInvoice.PatientId, PreparedByName = entInvoice.PreparedByName, IsDelete = false, ReceiptDate = entInvoice.BillDate, }; objData.tblCustomerTransactions.InsertOnSubmit(objDebit); //objData.SubmitChanges(); //tblCustomerTransaction objCrReceipt = new tblCustomerTransaction() //{ // TransactionId = TransactionId, // IsCash = true, // TransactionDocNo = BillNo, // TransactionType = "Invoice", // PayAmount = entInvoice.NetAmount, // BillAmount=0, // PatientId = entInvoice.PatientId, // IsDelete = false, // ReceiptDate = entInvoice.BillDate, //}; //objData.tblCustomerTransactions.InsertOnSubmit(objCrReceipt); //objData.SubmitChanges(); } else { tblCustomerTransaction objDebit = new tblCustomerTransaction() { TransactionId = TransactionId, IsCash = false, TransactionDocNo = BillNo, TransactionType = "Invoice", BillAmount = entInvoice.NetAmount, Discount = entInvoice.FixedDiscount, PatientId = entInvoice.PatientId, PreparedByName = entInvoice.PreparedByName, IsDelete = false, ReceiptDate = entInvoice.BillDate, }; objData.tblCustomerTransactions.InsertOnSubmit(objDebit); //objData.SubmitChanges(); } } tblPatientAdmitDetail admit = (from tbl in objData.tblPatientAdmitDetails where tbl.IsDelete == false && tbl.IsDischarge == false && tbl.AdmitId == entInvoice.PatientId select tbl).FirstOrDefault(); if (entInvoice.BillType == "Estimated") { if (admit != null) { admit.IsDischarge = false; } } if (entInvoice.BillType == "Original") { if (admit != null) { admit.IsDischarge = true; } //if (admit != null && entInvoice.PatientType == "OPD") //{ // admit.IsDischarge = false; //} } objData.SubmitChanges(); return(1); } catch (Exception ex) { throw ex; } }