Пример #1
0
        public int Save(List <TestAllocation> lst, tblTestInvoice obj, bool IsCash)
        {
            int?Id = 0;

            objData.STP_Insert_tblTestInvoice(Convert.ToDateTime(DateTime.Now.Date), ref Id, Convert.ToInt32(obj.PatientId), Convert.ToDecimal(obj.Amount), Convert.ToDecimal(obj.Discount));
            foreach (TestAllocation item in lst)
            {
                tblTestInvoiceDetail objtestDetails = new tblTestInvoiceDetail()
                {
                    TestInvoiceId = Convert.ToInt32(Id),
                    TestId        = item.TestId,
                    IsDelete      = false,
                    Charges       = Convert.ToDecimal(item.Charges)
                };
                objData.tblTestInvoiceDetails.InsertOnSubmit(objtestDetails);
            }
            int TransactionId = new PatientInvoiceBLL().GetTransactionId();

            if (IsCash)
            {
                tblCustomerTransaction objDebit = new tblCustomerTransaction()
                {
                    TransactionId    = TransactionId,
                    IsCash           = true,
                    TransactionDocNo = Id,
                    TransactionType  = "TestInvoice",
                    BillAmount       = obj.Amount,
                    PayAmount        = 0,
                    PatientId        = obj.PatientId,
                    IsDelete         = false,
                    ReceiptDate      = obj.TestInvoiceDate,
                };
                objData.tblCustomerTransactions.InsertOnSubmit(objDebit);
                //objData.SubmitChanges();
                tblCustomerTransaction objCrReceipt = new tblCustomerTransaction()
                {
                    TransactionId    = TransactionId,
                    IsCash           = true,
                    TransactionDocNo = Id,
                    TransactionType  = "TestInvoice",
                    PayAmount        = obj.Amount,
                    BillAmount       = 0,
                    PatientId        = obj.PatientId,
                    IsDelete         = false,
                    ReceiptDate      = obj.TestInvoiceDate,
                };
                objData.tblCustomerTransactions.InsertOnSubmit(objCrReceipt);
                //objData.SubmitChanges();
            }
            else
            {
                tblCustomerTransaction objDebit = new tblCustomerTransaction()
                {
                    TransactionId    = TransactionId,
                    IsCash           = false,
                    TransactionDocNo = Id,
                    TransactionType  = "TestInvoice",
                    BillAmount       = obj.Amount,
                    PatientId        = obj.PatientId,
                    IsDelete         = false,
                    ReceiptDate      = obj.TestInvoiceDate,
                };
                objData.tblCustomerTransactions.InsertOnSubmit(objDebit);
                //objData.SubmitChanges();
            }
            objData.SubmitChanges();
            return(1);
        }
Пример #2
0
        public int Update(List <TestAllocation> lst, tblTestInvoice obj, bool IsCash)
        {
            try
            {
                tblTestInvoice objTest = (from tbl in objData.tblTestInvoices
                                          where tbl.IsDelete == false &&
                                          tbl.TestInvoiceNo == obj.TestInvoiceNo
                                          select tbl).FirstOrDefault();

                List <TestAllocation> lstTemp = new List <TestAllocation>();

                List <tblTestInvoiceDetail> lstCurrent = (from tbl in objData.tblTestInvoiceDetails
                                                          where tbl.TestInvoiceId == obj.TestInvoiceNo &&
                                                          tbl.IsDelete == false
                                                          select tbl).ToList();

                List <tblCustomerTransaction> objCust = (from tbl in objData.tblCustomerTransactions
                                                         where tbl.IsDelete == false &&
                                                         tbl.TransactionDocNo.Equals(Convert.ToString(obj.TestInvoiceNo)) &&
                                                         tbl.TransactionType.Equals("TestInvoice")
                                                         select tbl).ToList();
                if (objTest != null)
                {
                    objTest.TestInvoiceDate = obj.TestInvoiceDate;
                    objTest.Amount          = obj.Amount;
                    objTest.Discount        = obj.Discount;
                    objTest.PatientId       = obj.PatientId;
                }
                if (objCust.Count == 1)
                {
                    if (IsCash)
                    {
                        tblCustomerTransaction objC = new tblCustomerTransaction()
                        {
                            PayAmount        = obj.Amount,
                            ReceiptDate      = obj.TestInvoiceDate,
                            IsCash           = IsCash,
                            IsDelete         = false,
                            TransactionDocNo = obj.TestInvoiceNo,
                            TransactionId    = objCust[0].TransactionId,
                            TransactionType  = "TestInvoice",
                            PatientId        = obj.PatientId,
                            BillAmount       = 0
                        };
                        objData.tblCustomerTransactions.InsertOnSubmit(objC);
                        foreach (tblCustomerTransaction item in objCust)
                        {
                            item.BillAmount  = obj.Amount;
                            item.ReceiptDate = obj.TestInvoiceDate;
                            item.IsCash      = IsCash;
                            if (item.IsCash == false)
                            {
                                if (item.PayAmount > 0)
                                {
                                    item.IsDelete = true;
                                }
                            }
                            else
                            {
                                if (item.PayAmount > 0)
                                {
                                    item.PayAmount = obj.Amount;
                                }
                                else
                                {
                                    item.PayAmount = 0;
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (tblCustomerTransaction item in objCust)
                        {
                            item.BillAmount  = obj.Amount;
                            item.ReceiptDate = obj.TestInvoiceDate;
                            item.IsCash      = IsCash;
                            if (item.IsCash == false)
                            {
                                if (item.PayAmount > 0)
                                {
                                    item.IsDelete = true;
                                }
                            }
                            else
                            {
                                if (item.PayAmount > 0)
                                {
                                    item.PayAmount = obj.Amount;
                                }
                                else
                                {
                                    item.PayAmount = 0;
                                }
                            }
                        }
                    }
                }
                else
                {
                    foreach (tblCustomerTransaction item in objCust)
                    {
                        item.BillAmount  = obj.Amount;
                        item.ReceiptDate = obj.TestInvoiceDate;
                        item.IsCash      = IsCash;
                        if (item.IsCash == false)
                        {
                            if (item.PayAmount > 0)
                            {
                                item.IsDelete = true;
                            }
                        }
                        else
                        {
                            if (item.PayAmount > 0)
                            {
                                item.PayAmount = obj.Amount;
                            }
                            else
                            {
                                item.PayAmount = 0;
                            }
                        }
                    }
                }

                foreach (TestAllocation item in lst)
                {
                    int cnt = (from tbl in objData.tblTestInvoiceDetails
                               where tbl.TestInvoiceId == obj.TestInvoiceNo &&
                               tbl.TestId == item.TestId &&
                               tbl.IsDelete == false
                               select tbl).ToList().Count;
                    if (cnt == 0)
                    {
                        tblTestInvoiceDetail objNewAdded = new tblTestInvoiceDetail()
                        {
                            TestInvoiceId = obj.TestInvoiceNo,
                            TestId        = item.TestId,
                            Charges       = item.Charges,
                            IsDelete      = false,
                        };
                        objData.tblTestInvoiceDetails.InsertOnSubmit(objNewAdded);
                        objData.SubmitChanges();
                    }
                    else
                    {
                        lstTemp.Add(item);
                    }
                }


                foreach (tblTestInvoiceDetail item in lstCurrent)
                {
                    int cnt = (from tbl in lst
                               where tbl.TestInvoiceNo == item.TestInvoiceId &&
                               tbl.TestId == item.TestId
                               select tbl).ToList().Count;

                    if (cnt == 0)
                    {
                        int checkExist = (from tbl in lstTemp
                                          where tbl.TestId == item.TestId
                                          select tbl).ToList().Count;
                        if (checkExist == 0)
                        {
                            item.IsDelete = true;
                        }
                    }
                }
                objData.SubmitChanges();
                return(1);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }