public object Save([FromBody] MS_ACT_PAYMENTS_HEAD receipt) { try { var newReceipt = AccountPaymentMdl.Save(receipt); return(new { state = true, message = "Account Payment(s) successfully Saved", data = new { newReceipt.APH_SYS_ID, newReceipt.APH_STATUS } }); } catch (Exception e) { return(new { state = false, message = "Server Error", exception = e }); } }
public static MS_ACT_PAYMENTS_HEAD Save(MS_ACT_PAYMENTS_HEAD payment) { var db = new SibaModel(); var dbReceipt = db.MS_ACT_PAYMENTS_HEAD.Find(payment.APH_SYS_ID); switch (payment.APH_STATUS) { case "A": if (dbReceipt != null) { db.MS_ACT_PAYMENTS_HEAD.Attach(dbReceipt); dbReceipt.Map(payment); dbReceipt.APH_MOD_DATE = DateTime.Now; //receipts details processing foreach (var pDetails in payment.MS_ACCT_PAYMNT_DTLS) { var dbDetails = db.MS_ACCT_PAYMNT_DTLS.Find(pDetails.APD_SYS_ID); switch (pDetails.APD_STATUS) { case "A": //we have a record in the database which we have to update if (dbDetails != null) { db.MS_ACCT_PAYMNT_DTLS.Attach(dbDetails); dbDetails.Map(pDetails); dbDetails.APD_MOD_DATE = DateTime.Now; } break; case "U": //add new record to save pDetails.APD_APH_SYS_ID = payment.APH_SYS_ID; pDetails.APD_STATUS = "A"; pDetails.APD_CRTE_DATE = DateTime.Now; db.MS_ACCT_PAYMNT_DTLS.Add(pDetails); break; case "D": if (dbDetails != null) { db.MS_ACCT_PAYMNT_DTLS.Attach(dbDetails); dbDetails.APD_STATUS = "D"; dbDetails.APD_MOD_DATE = DateTime.Now; } break; } } //receipts account details processing foreach (var aDetails in payment.MS_ACCT_PAYMNT_ACNT_DTLS) { var dbDetails = db.MS_ACCT_PAYMNT_ACNT_DTLS.Find(aDetails.PAD_SYS_ID); switch (aDetails.PAD_STATUS) { case "A": //we have a record in the database which we have to update if (dbDetails != null) { db.MS_ACCT_PAYMNT_ACNT_DTLS.Attach(dbDetails); dbDetails.Map(aDetails); dbDetails.PAD_MOD_DATE = DateTime.Now; } break; case "U": //add new record to save aDetails.PAD_APH_SYS_ID = payment.APH_SYS_ID; aDetails.PAD_STATUS = "A"; aDetails.PAD_CRTE_DATE = DateTime.Now; db.MS_ACCT_PAYMNT_ACNT_DTLS.Add(aDetails); break; case "D": if (dbDetails != null) { db.MS_ACCT_PAYMNT_ACNT_DTLS.Attach(dbDetails); dbDetails.PAD_STATUS = "D"; dbDetails.PAD_MOD_DATE = DateTime.Now; } break; } } } break; case "U": payment.APH_STATUS = "A"; payment.APH_CRTE_DATE = DateTime.Now; payment.MS_ACCT_PAYMNT_DTLS.ForEach(x => { x.APD_STATUS = "A"; x.APD_CRTE_DATE = DateTime.Now; }); payment.MS_ACCT_PAYMNT_ACNT_DTLS.ForEach(x => { x.PAD_STATUS = "A"; x.PAD_CRTE_DATE = DateTime.Now; }); db.MS_ACT_PAYMENTS_HEAD.Add(payment); break; case "D": if (dbReceipt != null) { db.MS_ACT_PAYMENTS_HEAD.Attach(payment); dbReceipt.APH_STATUS = "D"; dbReceipt.APH_MOD_DATE = DateTime.Now; } break; } db.SaveChanges(); return(payment); }