public TRN_Receipt_H Update(SchoolQPaper_entities entities, int RECEIPT_id, string RECEIPT_code, DateTime RECEIPT_date,
                                    DateTime RECEIPT_tran_date, decimal RECEIPT_amount, string RECEIPT_remarks, string RECEIPT_font, int?SCHL_id,
                                    int?AGENT_id)
        {
            bool dispose = entities == null;

            entities = entities ?? new SchoolQPaper_entities();

            TRN_Receipt_H receipth_rec = entities.TRN_Receipt_H.Find(RECEIPT_id);

            receipth_rec.RECEIPT_code      = RECEIPT_code;
            receipth_rec.RECEIPT_date      = RECEIPT_date;
            receipth_rec.RECEIPT_tran_date = RECEIPT_tran_date;
            receipth_rec.RECEIPT_amount    = RECEIPT_amount;
            receipth_rec.RECEIPT_remarks   = RECEIPT_remarks;
            receipth_rec.RECEIPT_font      = RECEIPT_font;
            receipth_rec.SCHL_id           = SCHL_id;
            receipth_rec.AGENT_id          = AGENT_id;
            entities.SaveChanges();

            if (dispose)
            {
                entities.Dispose();
            }
            return(receipth_rec);
        }
Example #2
0
        public TRN_Receipt_H Save(SchoolQPaper_entities entities, string RECEIPT_code, DateTime RECEIPT_date,
                                  DateTime RECEIPT_tran_date, decimal RECEIPT_amount, string RECEIPT_remarks, string RECEIPT_font, int?SCHL_id,
                                  int?AGENT_id,
                                  Data.Grid_DS.DS_Receipt DS_Receipt_Obj)
        {
            bool dispose = entities == null;

            entities = entities ?? new SchoolQPaper_entities();

            TRN_Receipt_H receipth_rec = null;

            System.Data.Entity.DbContextTransaction trans = null;
            if (dispose)
            {
                trans = entities.Database.BeginTransaction();
            }

            try
            {
                RECEIPT_code = new Document.Document_Class().GetDocumentCode(entities, Misc.Properties.DBs.SchoolQPaper.dbo.MST_Document.Records.Receipt);

                receipth_rec = new TRN_Receipt_H_Class().Insert(entities,
                                                                RECEIPT_code,
                                                                RECEIPT_date,
                                                                RECEIPT_tran_date,
                                                                RECEIPT_amount,
                                                                RECEIPT_remarks,
                                                                RECEIPT_font,
                                                                SCHL_id,
                                                                AGENT_id);

                DS_Receipt_Obj.OutstandingInvoices.ToList().ForEach(r =>
                {
                    if (r.RECEIPTD_amount != 0)
                    {
                        new TRN_Receipt_D_Class().Insert(entities,
                                                         r.RECEIPTD_amount,
                                                         r.RECEIPTD_doc_id,
                                                         receipth_rec.RECEIPT_id,
                                                         r.DOCU_id);

                        var outstanding_receivable_rec = entities.TRN_Receivable.Where(x => x.RECEIVABLES_doc_id == r.RECEIPTD_doc_id && x.DOCU_id == r.DOCU_id).FirstOrDefault();

                        if (outstanding_receivable_rec.RECEIVABLES_balance - r.RECEIPTD_amount < 0)
                        {
                            throw new AppErrorException("Invalid Receipt Amount", "The receipt amount exceeds the outstanding balance on " + r.RECEIPTD_doc_text + ".");
                        }

                        new TRN_Receivable_Class().Update(entities,
                                                          outstanding_receivable_rec.RECEIVABLES_id,
                                                          outstanding_receivable_rec.RECEIVABLES_doc_id,
                                                          outstanding_receivable_rec.RECEIVABLES_value,
                                                          outstanding_receivable_rec.RECEIVABLES_balance - r.RECEIPTD_amount,
                                                          outstanding_receivable_rec.RECEIVABLES_ref_id,
                                                          outstanding_receivable_rec.DOCU_id);

                        new TRN_Receivable_Class().Insert(entities,
                                                          receipth_rec.RECEIPT_id,
                                                          r.RECEIPTD_amount,
                                                          0,
                                                          outstanding_receivable_rec.RECEIVABLES_id,
                                                          Misc.Properties.DBs.SchoolQPaper.dbo.MST_Document.Records.Receipt);
                    }
                });

                DS_Receipt_Obj.PayTypes.ToList().ForEach(r =>
                {
                    var receiptpaytype_rec = new TRN_Receipt_PayType_Class().Insert(entities,
                                                                                    r.RECEIPTPAYTYP_amount,
                                                                                    r.PAYTYP_id,
                                                                                    receipth_rec.RECEIPT_id);

                    if (r.PAYTYP_id == Misc.Properties.DBs.SchoolQPaper.dbo.MST_PayType.Records.MO)
                    {
                        var moneyorderinfo_rec = DS_Receipt_Obj.MoneyOrderInfo.Where(x => x.PayTypes_Id == r.Id).FirstOrDefault();
                        new TRN_Receipt_MO_Info_Class().Insert(entities,
                                                               moneyorderinfo_rec.RECEIPTMO_date,
                                                               moneyorderinfo_rec.RECEIPTMO_no,
                                                               moneyorderinfo_rec.RECEIPTMO_office,
                                                               receiptpaytype_rec.RECEIPTPAYTYP_id);
                    }
                    else if (r.PAYTYP_id == Misc.Properties.DBs.SchoolQPaper.dbo.MST_PayType.Records.Cheque)
                    {
                        var chequeinfo_rec = DS_Receipt_Obj.ChequeInfo.Where(x => x.PayTypes_Id == r.Id).FirstOrDefault();
                        new TRN_Receipt_CHQ_Info_Class().Insert(entities,
                                                                chequeinfo_rec.RECEIPTCHQ_chq_no,
                                                                chequeinfo_rec.RECEIPTCHQ_date,
                                                                receiptpaytype_rec.RECEIPTPAYTYP_id);
                    }
                });

                if (dispose)
                {
                    trans.Commit();
                }
            }
            catch (Exception ex)
            {
                if (dispose)
                {
                    trans.Rollback();
                }
                throw ex;
            }

            if (dispose)
            {
                trans.Dispose();
                entities.Dispose();
            }
            return(receipth_rec);
        }