public TRN_PaperOrder01_H Save(SchoolQPaper_entities entities, string PPRODR01_code, DateTime PPRODR01_datetime, string PPRODR01_remarks, decimal PPRODR01_advanced_pay, string PPRODR01_cheque_no, string PPRODR01_mo_office, int PPRODR01_additional_papers, string PPRODR01_font, decimal PPRODR01_gross_tot, decimal PPRODR01_discount_amnt, decimal PPRODR01_net_tot, decimal PPRODR01_discount_percnt, string PPRODR01_telephone, string PPRODR01_train_received_by, string PPRODR01_train_received_by_nic, Tuple <int?, string> MST_TrainStation_rec, int SCHL_id, int DELIMETH_id, int PAYTYP_id, List <PaperOrderD_Rec> PaperOrderD_Recs) { bool dispose = entities == null; entities = entities ?? new SchoolQPaper_entities(); TRN_PaperOrder01_H paperorder01_rec = null; System.Data.Entity.DbContextTransaction trans = null; if (dispose) { trans = entities.Database.BeginTransaction(); } try { if (MST_TrainStation_rec.Item1 != null && MST_TrainStation_rec.Item1 == 0) { var trainstation_rec = new MST_TrainStation_Class().Insert(entities, MST_TrainStation_rec.Item2, PPRODR01_font); MST_TrainStation_rec = new Tuple <int?, string>(trainstation_rec.TRAINST_id, trainstation_rec.TRAINST_name); } PPRODR01_code = new Document.Document_Class().GetDocumentCode(entities, Misc.Properties.DBs.SchoolQPaper.dbo.MST_Document.Records.Up_to_O_L_Invoice); paperorder01_rec = new TRN_PaperOrder01_H_Class().Insert(entities, PPRODR01_code, PPRODR01_datetime, PPRODR01_remarks, PPRODR01_advanced_pay, PPRODR01_cheque_no, PPRODR01_mo_office, PPRODR01_additional_papers, PPRODR01_font, PPRODR01_gross_tot, PPRODR01_discount_amnt, PPRODR01_net_tot, PPRODR01_discount_percnt, PPRODR01_telephone, PPRODR01_train_received_by, PPRODR01_train_received_by_nic, MST_TrainStation_rec.Item1, SCHL_id, DELIMETH_id, PAYTYP_id); PaperOrderD_Recs.ForEach(r => { new TRN_PaperOrder01_D_Class().Insert(entities, r.PPRODR01D_paper_qty, r.PPRODR01D_ignore_qty, r.GRADE_id, r.SUBJ_id, paperorder01_rec.PPRODR01_id); }); new TRN_Receivable_Class().Insert(entities, paperorder01_rec.PPRODR01_id, PPRODR01_net_tot, PPRODR01_net_tot, null, Misc.Properties.DBs.SchoolQPaper.dbo.MST_Document.Records.Up_to_O_L_Invoice); if (PPRODR01_advanced_pay != 0) { DS_Receipt DS_Receipt_Obj = new DS_Receipt(); DS_Receipt_Obj.OutstandingInvoices.AddOutstandingInvoicesRow(paperorder01_rec.PPRODR01_id, Misc.Properties.DBs.SchoolQPaper.dbo.MST_Document.Records.Up_to_O_L_Invoice, PPRODR01_code, PPRODR01_advanced_pay, PPRODR01_net_tot, SCHL_id, "", "", Settings.Default.CurrentFont); int PayTypes_Id = DS_Receipt_Obj.PayTypes.AddPayTypesRow(PAYTYP_id, "", PPRODR01_advanced_pay, "", "").Id; if (PAYTYP_id == Misc.Properties.DBs.SchoolQPaper.dbo.MST_PayType.Records.Cheque) { DS_Receipt_Obj.ChequeInfo.AddChequeInfoRow(PayTypes_Id, PPRODR01_cheque_no, DateTime.Now); } else if (PAYTYP_id == Misc.Properties.DBs.SchoolQPaper.dbo.MST_PayType.Records.MO) { DS_Receipt_Obj.MoneyOrderInfo.AddMoneyOrderInfoRow(PayTypes_Id, DateTime.Now, PPRODR01_cheque_no, PPRODR01_mo_office); } new Receipt.Receipt_Class().Save(entities, "", PPRODR01_datetime, PPRODR01_datetime, PPRODR01_advanced_pay, "", Settings.Default.CurrentFont, SCHL_id, null, DS_Receipt_Obj); } if (dispose) { trans.Commit(); } } catch (Exception ex) { if (dispose) { trans.Rollback(); } throw ex; } if (dispose) { trans.Dispose(); entities.Dispose(); } return(paperorder01_rec); }
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); }