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 });
     }
 }
示例#2
0
        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);
        }