public int  PostInvoice(saoitrinvhd data)
        {
            var ls_invn_online = GenericFunctionClass.gf_get_module_online("SAOI", "INVN");
            var ls_faar_online = GenericFunctionClass.gf_get_module_online("SAOI", "INVN");

            if (ls_faar_online == null && ls_invn_online == null)
            {
                return(200);
            }

            li_ret = validate_posting(data);

            if (li_ret == 500)
            {
                return(li_ret);
            }


            if (ls_invn_online.online == "Y")
            {
                li_ret = SaoiInventoryPosting.Post(data);
            }

            if (ls_faar_online.online == "Y")
            {
                //  li_ret = SaoiAccountRecevablePosting.post(data);
            }

            return(li_ret);
        }
        public int Update(string trans_no, string trans_bk, string company_id, saoitrinvhd data)
        {
            int li_ret = 0;

            switch (data.trans_bk)
            {
            case "SI01":
                li_ret = SaoiInvoiceManager.UpdateInvoice(trans_no, trans_bk, company_id, data);
                break;

            case "SC01":
                li_ret = SaoiCreditInvoiceManager.UpdateCreditInvoice(trans_no, trans_bk, company_id, data);
                break;

            case "SM01":
                //
                break;

            case "SO01":
                //
                break;

            default:
                //
                break;
            }
            return(li_ret);
        }
        public int Create(saoitrinvhd data)
        {
            int li_ret = 0;

            switch (data.trans_bk)
            {
            case "SI01":
                li_ret = SaoiInvoiceManager.CreateInvoice(data);
                break;

            case "SC01":
                li_ret = SaoiCreditInvoiceManager.CreateCreditInvoice(data);
                break;

            case "SM01":
                //
                break;

            case "SO01":
                //
                break;

            default:
                //
                break;
            }
            return(li_ret);
        }
        public int Post(saoitrinvhd saoitrinvhd)
        {
            insert_invntrtransdtl(saoitrinvhd);
            insert_invntrtranshd(saoitrinvhd);


            return(200);
        }
Exemplo n.º 5
0
        public bool validate_new_Invoice(saoitrinvhd data)
        {
            if (check_existing_invoice(data))
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 6
0
        public int PostInvoice(saoitrinvhd data)
        {
            var ls_invn_online = GenericFunctionClass.gf_get_module_online("SAOI", "INVN");

            if (ls_invn_online.online == "Y")
            {
                li_ret = SaoiInventoryPosting.Post(data);
            }

            return(li_ret);
        }
        public int validate_posting(saoitrinvhd data)
        {
            foreach (var ll_currentrow in data.details)
            {
                if (ll_currentrow.item_flag == "I" || ll_currentrow.item_flag == "R" ||
                    ll_currentrow.item_flag == "M" || ll_currentrow.item_flag == "C")
                {
                    if (ll_currentrow.item_category == null)
                    {
                        li_ret = 500;
                        break;
                    }

                    if (ll_currentrow.item_id == null)
                    {
                        li_ret = 500;
                        break;
                    }
                }

                if (ll_currentrow.trans_flag == null)
                {
                    ll_currentrow.item_category = "NA";
                }

                if (ll_currentrow.item_id == null)
                {
                    ll_currentrow.item_id = "NA";
                }

                if (ll_currentrow.packet_no == null)
                {
                    ll_currentrow.packet_no = "NA";
                }

                if (ll_currentrow.packet_no == null)
                {
                    ll_currentrow.packet_no = "NA";
                }


                if (ll_currentrow.location == null)
                {
                    ll_currentrow.location = "NA";
                }
            }

            if (li_ret == 500)
            {
                return(li_ret);
            }

            return(200);
        }
        public saoitrinvhd GetInvoice(string trans_no, String trans_bk, string dtl_type)
        {
            saoitrinvhd data = db.saoitrinvhds.SingleOrDefault(m => m.trans_no == trans_no && m.trans_bk == trans_bk);

            if (dtl_type == "Y")
            {
                data.details = db.saoitrinvdtls.Where(d => d.trans_no == trans_no && d.trans_bk == trans_bk).ToList();
            }

            return(data);
        }
Exemplo n.º 9
0
        public ActionResult <saoitrinvhd> GetInvoice(string trans_no, string trans_bk)
        {
            string      dtl_type = "Y";
            saoitrinvhd data     = SalesManager.GetInvoice(trans_no, trans_bk, dtl_type);

            if (data == null)
            {
                return(NotFound());
            }

            return(Ok(data));
        }
Exemplo n.º 10
0
        public bool check_existing_invoice(saoitrinvhd data)
        {
            var existing_records = db.saoitrinvhds.Where(d => d.trans_no == data.trans_no && d.trans_bk == data.trans_bk);

            //db.saoitrinvhds.Find(data.company_id, data.trans_bk, data.trans_no, data.trans_dt);

            if (existing_records.Count() > 0)
            {
                return(true);
            }
            return(false);
        }
        public int post(saoitrinvhd data)
        {
            li_ret = post_dtl(data);

            if (li_ret != 200)
            {
                return(li_ret);
            }

            li_ret = Post_hd(data);

            return(li_ret);
        }
        public int CreateInvoice(saoitrinvhd data)
        {
            if (validate_new_Invoice(data))
            {
                return(500);
            }

            db.saoitrinvhds.Add(data);
            foreach (var ll_currentrow in data.details)
            {
                db.saoitrinvdtls.Add(ll_currentrow);
            }

            if (PostInvoice(data) != 200)
            {
                return(500);
            }

            return(Saverecords());
        }
Exemplo n.º 13
0
        public IActionResult Create(saoitrinvhd data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            li_ret = SalesManager.Create(data);

            if (li_ret == 500)
            {
                return(Conflict());
                //return BadRequest();
            }

            else
            {
                return(Ok(data));
            }
        }
        public void post_undo_fa(saoitrinvhd saoitrinvhd)
        {
            var    data = db.faartrpaymentdtls.Where(d => d.trans_bk == saoitrinvhd.trans_bk && d.trans_no == saoitrinvhd.trans_no).ToList();;
            String ls_trans_no, ls_trans_bk;

            foreach (var ll_currentrow in data)
            {
                ls_trans_no = ll_currentrow.voucher_no.Substring(0, 4);
                ls_trans_bk = ll_currentrow.voucher_no.Substring(5, 11);

                faartrinvhd faartrinvhd = db.faartrinvhds.Where(d => d.trans_bk == saoitrinvhd.trans_bk && d.trans_no == saoitrinvhd.trans_no).FirstOrDefault();;

                if (faartrinvhd != null)
                {
                    faartrinvhd.action_flag     = "0";
                    faartrinvhd.paid_amt        = faartrinvhd.paid_amt - ll_currentrow.apply_amt;
                    faartrinvhd.disctaken_amt   = faartrinvhd.disctaken_amt - ll_currentrow.disctaken_amt;
                    faartrinvhd.balance_amt     = faartrinvhd.inv_amt - (faartrinvhd.paid_amt + faartrinvhd.disctaken_amt) + (ll_currentrow.apply_amt + ll_currentrow.disctaken_amt);
                    db.Entry(faartrinvhd).State = EntityState.Modified;
                }
            }
        }
Exemplo n.º 15
0
        public bool validate_Existing_Invoice(string trans_no, string trans_bk, string company_id, saoitrinvhd data)
        {
            if (check_existing_invoice(data))
            {
                return(false);
            }

            if (trans_no != data.trans_no && trans_bk != data.trans_bk && company_id != data.company_id)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 16
0
        public int UpdateCreditInvoice(string trans_no, string trans_bk, string company_id, saoitrinvhd data)
        {
            if (validate_Existing_Invoice(trans_no, trans_bk, company_id, data))
            {
                return(500);
            }


            db.Entry(data).State = EntityState.Modified;

            var old_records = db.saoitrinvdtls.Where(d => d.trans_no == trans_no && d.trans_bk == trans_bk);

            foreach (var ll_currentrow in data.details)
            {
                if (old_records.Any(d => d.serial_no == ll_currentrow.serial_no))
                {
                    db.Entry(ll_currentrow).State = EntityState.Modified;
                }
                else
                {
                    db.saoitrinvdtls.Add(ll_currentrow);
                }
            }

            foreach (var ll_currentrow in old_records)
            {
                if (!data.details.Any(d => d.serial_no == ll_currentrow.serial_no))
                {
                    db.saoitrinvdtls.Remove(ll_currentrow);
                }
            }

            //SalesPostingManager.post(saoitrinvhd);

            return(Saverecords());
        }
        public int insert_invntrtransdtl(saoitrinvhd saoitrinvhd)
        {
            Decimal  ldec_rec_pcs = 0, ldec_rec_wt = 0, ldec_iss_pcs = 0, ldec_iss_wt = 0, ldec_rec_amt = 0, ldec_price = 0;
            Decimal  ldec_rec_price = 0, ldec_iss_amt = 0, ldec_iss_price = 0;
            DateTime dt = new DateTime(1955, 01, 01);
            String   ls_rec_unit = "", ls_iss_unit = "", ls_ri_flag = "", ls_memo_flag;
            String   ls_serial_no, ls_ref_serial_no, ls_ref_type, ls_item_id;

            db.Database.ExecuteSqlCommand("delete from invntrtransdtl where trans_no = '" + saoitrinvhd.trans_no + "' And trans_bk = '" + saoitrinvhd.trans_bk + "'");
            db.Database.ExecuteSqlCommand("delete from diintrtransdtl where trans_no = '" + saoitrinvhd.trans_no + "' And trans_bk = '" + saoitrinvhd.trans_bk + "'");


            foreach (var ll_currentrow in saoitrinvhd.details)
            {
                ls_item_id = ll_currentrow.item_id;
                if (ls_item_id == null)
                {
                    ls_item_id = "NA";
                }

                ldec_price = ll_currentrow.item_price ?? 0;

                if (ll_currentrow.trans_qty != 0)
                {
                    ldec_price = ll_currentrow.net_amt ?? 0 / ll_currentrow.trans_qty ?? 0;
                }

                if (saoitrinvhd.trans_type == "C" || saoitrinvhd.trans_type == "R")                 // receipt
                {
                    ldec_rec_pcs   = ll_currentrow.trans_qty_pc ?? 0;
                    ldec_rec_wt    = ll_currentrow.trans_qty_wt ?? 0;
                    ldec_iss_pcs   = 0;
                    ldec_iss_wt    = 0;
                    ls_rec_unit    = ll_currentrow.sell_unit;
                    ls_iss_unit    = "";
                    ldec_rec_amt   = ll_currentrow.net_amt ?? 0;
                    ldec_iss_amt   = 0;
                    ldec_rec_price = ldec_price;
                    ldec_iss_price = 0;
                    ls_ri_flag     = "R";
                }

                else if (saoitrinvhd.trans_type == "I" || saoitrinvhd.trans_type == "M")                 // issue
                {
                    ldec_iss_pcs   = ll_currentrow.trans_qty_pc ?? 0;
                    ldec_iss_wt    = ll_currentrow.trans_qty_wt ?? 0;
                    ldec_rec_pcs   = 0;
                    ldec_rec_wt    = 0;
                    ls_iss_unit    = ll_currentrow.sell_unit;
                    ls_rec_unit    = "";
                    ldec_iss_amt   = ll_currentrow.net_amt ?? 0;
                    ldec_rec_amt   = 0;
                    ldec_iss_price = ldec_price;
                    ldec_rec_price = 0;
                    ls_ri_flag     = "I";
                }

                // for -ve memo return: no posting into inventory
                if ((saoitrinvhd.trans_type == "R") && (ldec_rec_wt < 0 || ldec_rec_pcs < 0) && ll_currentrow.item_flag == "D")
                {
                    continue;
                }

                if ((saoitrinvhd.trans_type == "M") || (saoitrinvhd.trans_type == "R"))
                {
                    ls_memo_flag = "Y";
                }
                else
                {
                    ls_memo_flag = "N";
                }

                ls_serial_no = ll_currentrow.serial_no + "A";

                if (ll_currentrow.item_flag == "D" || ll_currentrow.item_flag == "T")
                {
                    db.diintrtransdtls.Add(setdiintrtransdtl());
                }
                else
                {
                    db.invntrtransdtls.Add(setinvntrtransdtl());
                }

                ls_serial_no = ll_currentrow.serial_no + "B";
                // price diff
                if ((saoitrinvhd.trans_type == "C") && (saoitrinvhd.trans_for_flag == "PD"))
                {
                    ldec_iss_pcs   = ldec_rec_pcs;
                    ldec_iss_wt    = ldec_rec_wt;
                    ls_iss_unit    = ls_rec_unit;
                    ldec_iss_amt   = 0;
                    ldec_iss_price = 0;

                    ldec_rec_pcs   = 0;
                    ldec_rec_wt    = 0;
                    ls_rec_unit    = "";
                    ldec_rec_amt   = 0;
                    ldec_rec_price = 0;


                    if (ll_currentrow.item_flag == "D" || ll_currentrow.item_flag == "T")
                    {
                        db.diintrtransdtls.Add(setdiintrtransdtl());
                    }
                    else
                    {
                        db.invntrtransdtls.Add(setinvntrtransdtl());
                    }
                }

                // the invoice is against a memo so do memo receipt and invoice issue.
                else if ((saoitrinvhd.trans_type == "I") && (ll_currentrow.ref_type == "M") &&
                         (ll_currentrow.ref_no != null))                          // the invoice is against a memo so do memo receipt and invoice issue.
                {
                    ls_memo_flag = "Y";
                    ldec_rec_pcs = ldec_iss_pcs;
                    ldec_rec_wt  = ldec_iss_wt;
                    ls_rec_unit  = ls_iss_unit ?? "";
                    ls_rec_unit  = ls_iss_unit ?? "";
                    ldec_rec_amt = ldec_iss_amt;

                    //var data = db.saoitrinvdtls.SqlQuery("select * " +
                    //								   "from saoitrinvdtl " +
                    //								   "where company_id = @company_id " +
                    //								   "and trans_bk = 'SM01' "+
                    //								   "and trans_no = @ls_ref_no " +
                    //								   "and trans_dt = @ldt_ref_dt " +
                    //								   "and serial_no = @ref_serial_no ",
                    //								   new SqlParameter("@company_id", ll_currentrow.company_id),
                    //								   new SqlParameter("@ls_ref_no", ll_currentrow.ref_no??""),
                    //								   new SqlParameter("@ldt_ref_dt", ll_currentrow.ref_dt?),
                    //								   new SqlParameter("@ref_serial_no", ll_currentrow.ref_serial_no??"")
                    //								   ).FirstOrDefault();

                    var data = db.saoitrinvdtls.Where(dtl =>
                                                      dtl.company_id == ll_currentrow.company_id &&
                                                      dtl.trans_bk == "SM01" &&
                                                      dtl.trans_no == ll_currentrow.ref_no &&
                                                      dtl.trans_dt == ll_currentrow.ref_dt &&
                                                      dtl.serial_no == ll_currentrow.ref_serial_no
                                                      ).FirstOrDefault();

                    if (data == null)
                    {
                        continue;
                    }
                    //net_amt, trans_qty into :ldec_rec_price, :ldec_trans_qty1
                    if (data.trans_qty > 0)
                    {
                        ldec_rec_price = data.net_amt ?? 0 / data.trans_qty ?? 0;
                    }

                    if ((ls_rec_unit != "") && ((ls_rec_unit.ToUpper().Substring(0, 3) == "C") || (ls_rec_unit.ToUpper().Substring(0, 3) == "W")))
                    {
                        ldec_rec_amt = ldec_rec_price * ldec_rec_wt;
                    }
                    else
                    {
                        ldec_rec_amt = data.net_amt ?? 0 * ldec_rec_pcs;
                    }

                    ldec_iss_pcs   = 0;
                    ldec_iss_wt    = 0;
                    ls_iss_unit    = "";
                    ldec_iss_amt   = 0;
                    ldec_iss_price = 0;


                    if (ll_currentrow.item_flag == "D" || ll_currentrow.item_flag == "T")
                    {
                        db.diintrtransdtls.Add(setdiintrtransdtl());
                    }
                    else
                    {
                        db.invntrtransdtls.Add(setinvntrtransdtl());
                    }
                }

                invntrtransdtl setinvntrtransdtl()
                {
                    invntrtransdtl dtl = new invntrtransdtl();

                    dtl.trans_bk       = ll_currentrow.trans_bk;
                    dtl.trans_no       = ll_currentrow.trans_no;
                    dtl.trans_dt       = ll_currentrow.trans_dt;
                    dtl.serial_no      = ls_serial_no;
                    dtl.item_type      = ll_currentrow.item_flag;
                    dtl.item_id        = ls_item_id;
                    dtl.rec_pcs        = ldec_rec_pcs;
                    dtl.rec_wt         = ldec_rec_wt;
                    dtl.iss_pcs        = ldec_iss_pcs;
                    dtl.iss_wt         = ldec_iss_wt;
                    dtl.rec_unit       = ls_rec_unit;
                    dtl.iss_unit       = ls_iss_unit;
                    dtl.rec_amt        = ldec_rec_amt;
                    dtl.iss_amt        = ldec_iss_amt;
                    dtl.user_cd        = ll_currentrow.user_cd;
                    dtl.company_id     = ll_currentrow.company_id;
                    dtl.update_dt      = DateTime.Now;;
                    dtl.update_flag    = "V";
                    dtl.trans_flag     = "A";
                    dtl.action_flag    = saoitrinvhd.trans_type;
                    dtl.post_flag      = "U";
                    dtl.item_category  = ll_currentrow.item_category;
                    dtl.memo_flag      = ls_memo_flag;
                    dtl.packet_no      = ll_currentrow.packet_no;
                    dtl.rec_price      = ldec_rec_price;
                    dtl.iss_price      = ldec_iss_price;
                    dtl.location       = ll_currentrow.location;
                    dtl.item_cost      = ll_currentrow.item_cost;
                    dtl.account_period = saoitrinvhd.trans_period;
                    dtl.ri_flag        = ls_ri_flag;
                    dtl.stone_type     = "";
                    dtl.stone_shape    = "";
                    dtl.stone_qlty     = "";
                    dtl.size           = ll_currentrow.size;
                    dtl.prod_so_type   = ll_currentrow.prod_so_type;

                    return(dtl);
                }

                diintrtransdtl setdiintrtransdtl()
                {
                    ;
                    diintrtransdtl dtl = new diintrtransdtl();

                    dtl.trans_bk       = ll_currentrow.trans_bk;
                    dtl.trans_no       = ll_currentrow.trans_no;
                    dtl.trans_dt       = ll_currentrow.trans_dt;
                    dtl.serial_no      = ls_serial_no;
                    dtl.item_type      = ll_currentrow.item_flag;
                    dtl.item_id        = ls_item_id;
                    dtl.rec_pcs        = ldec_rec_pcs;
                    dtl.rec_wt         = ldec_rec_wt;
                    dtl.iss_pcs        = ldec_iss_pcs;
                    dtl.iss_wt         = ldec_iss_wt;
                    dtl.rec_unit       = ls_rec_unit;
                    dtl.iss_unit       = ls_iss_unit;
                    dtl.rec_amt        = ldec_rec_amt;
                    dtl.iss_amt        = ldec_iss_amt;
                    dtl.user_cd        = ll_currentrow.user_cd;
                    dtl.company_id     = ll_currentrow.company_id;
                    dtl.update_dt      = DateTime.Now;;
                    dtl.update_flag    = "V";
                    dtl.trans_flag     = "A";
                    dtl.action_flag    = saoitrinvhd.trans_type;
                    dtl.post_flag      = "U";
                    dtl.item_category  = ll_currentrow.item_category;
                    dtl.memo_flag      = ls_memo_flag;
                    dtl.packet_no      = ll_currentrow.packet_no;
                    dtl.rec_price      = ldec_rec_price;
                    dtl.iss_price      = ldec_iss_price;
                    dtl.location       = ll_currentrow.location;
                    dtl.item_cost      = ll_currentrow.item_cost;
                    dtl.account_period = saoitrinvhd.trans_period;
                    dtl.ri_flag        = ls_ri_flag;
                    dtl.stone_type     = "";
                    dtl.stone_shape    = "";
                    dtl.stone_qlty     = "";
                    dtl.size           = ll_currentrow.size;
                    dtl.prod_so_type   = ll_currentrow.prod_so_type;

                    return(dtl);
                }
            }


            return(0);
        }
        public int post_dtl(saoitrinvhd data)
        {
            decimal ldec_price, ldec_net_amt1, ldec_apply_amt;

            if (data.trans_type == "I")
            {
                db.Database.ExecuteSqlCommand("delete from faartrinvdtl where trans_no = '" + data.trans_no + "' && trans_bk = '" + data.trans_bk + "'");
            }

            if (data.trans_type == "C")
            {
                post_undo_fa(data);
            }

            db.Database.ExecuteSqlCommand("delete from faartrpaymentdtl where trans_no = '" + data.trans_no + "' && trans_bk = '" + data.trans_bk + "'");

            if (data.trans_type == "C")
            {
                foreach (var ll_currentrow in data.details)
                {
                    ldec_price = ll_currentrow.item_price ?? 0;

                    if (ll_currentrow.trans_qty != 0)
                    {
                        ldec_price = ll_currentrow.net_amt ?? 0 / ll_currentrow.trans_qty ?? 0;
                    }

                    ldec_net_amt1 = ll_currentrow.item_amt ?? 0;
                    if (ldec_net_amt1 <= 0 || ldec_net_amt1 == null || ll_currentrow.ref_no == null)
                    {
                        //Continue
                    }
                    else
                    {
                        var temp = db.faartrinvhds.Where(d => d.trans_bk == "1234" && d.trans_no == ll_currentrow.ref_no).FirstOrDefault();;
                        if (temp.balance_amt > 0)
                        {
                            if (ldec_net_amt1 > temp.balance_amt)
                            {
                                ldec_apply_amt = temp.balance_amt ?? 0;
                            }
                            else
                            {
                                ldec_apply_amt = ldec_net_amt1;

                                faartrinvhd faartrinvhd_1 = db.faartrinvhds.Where(d => d.trans_bk == "1234" && d.trans_no == ll_currentrow.ref_no).FirstOrDefault();;

                                if (faartrinvhd_1 != null)
                                {
                                    faartrinvhd_1.action_flag     = "0";
                                    faartrinvhd_1.paid_amt        = faartrinvhd_1.paid_amt + ldec_apply_amt;
                                    faartrinvhd_1.balance_amt     = faartrinvhd_1.balance_amt - ldec_apply_amt;
                                    db.Entry(faartrinvhd_1).State = EntityState.Modified;
                                }

                                saoitrinvhd saoitrinvhd_1 = db.saoitrinvhds.Where(d => d.trans_bk == "1234" && d.trans_no == ll_currentrow.ref_no).FirstOrDefault();;

                                if (saoitrinvhd_1 != null)
                                {
                                    saoitrinvhd_1.update_flag = "V";
                                    db.saoitrinvhds.Add(saoitrinvhd_1);
                                }


                                faartrpaymentdtl faartrpaymentdtl_1 = new faartrpaymentdtl();
                                faartrpaymentdtl_1.trans_bk      = ll_currentrow.trans_bk;
                                faartrpaymentdtl_1.trans_no      = ll_currentrow.trans_no;
                                faartrpaymentdtl_1.serial_no     = "100";
                                faartrpaymentdtl_1.trans_dt      = ll_currentrow.trans_dt;
                                faartrpaymentdtl_1.apply_flag    = "N";
                                faartrpaymentdtl_1.voucher_no    = "1234" + ll_currentrow.ref_no;
                                faartrpaymentdtl_1.inv_no        = "1234" + ll_currentrow.ref_no;;
                                faartrpaymentdtl_1.inv_dt        = ll_currentrow.ref_dt;
                                faartrpaymentdtl_1.original_amt  = temp.inv_amt;
                                faartrpaymentdtl_1.balance_amt   = temp.balance_amt;
                                faartrpaymentdtl_1.apply_amt     = ldec_apply_amt;
                                faartrpaymentdtl_1.disctaken_amt = 0;
                                faartrpaymentdtl_1.company_id    = ll_currentrow.company_id;
                                faartrpaymentdtl_1.user_cd       = ll_currentrow.user_cd;
                                faartrpaymentdtl_1.update_dt     = DateTime.Now;
                                faartrpaymentdtl_1.update_flag   = "V";
                                faartrpaymentdtl_1.voucher_dt    = ll_currentrow.ref_dt;
                                faartrpaymentdtl_1.due_dt        = temp.due_dt;

                                db.faartrpaymentdtls.Add(faartrpaymentdtl_1);
                            }
                        }
                    }
                }
            }
            return(200);
        }
        public int insert_invntrtranshd(saoitrinvhd saoitrinvhd)
        {
            String ls_memo_flag, ls_ri_flag = "";


            invntrtranshd existing_inventory = db.invntrtranshds.Find(saoitrinvhd.trans_bk, saoitrinvhd.trans_no, saoitrinvhd.trans_dt, saoitrinvhd.company_id);

            if (existing_inventory != null)
            {
                db.Entry(existing_inventory).State = EntityState.Deleted;
            }


            diintrtranshd existing_diaminventory = db.diintrtranshds.Find(saoitrinvhd.trans_bk, saoitrinvhd.trans_no, saoitrinvhd.trans_dt, saoitrinvhd.company_id);

            if (existing_diaminventory != null)
            {
                db.Entry(existing_diaminventory).State = EntityState.Deleted;
            }

            ls_memo_flag = "N";
            switch (saoitrinvhd.trans_type)
            {
            case "I":
                ls_ri_flag = "T";
                break;

            case "M":
                ls_memo_flag = "Y";
                ls_ri_flag   = "I";
                break;

            case "C":
                ls_ri_flag = "R";
                break;

            case "R":
                ls_memo_flag = "Y";
                ls_ri_flag   = "R";
                break;

            default:
                //
                break;
            }

            if ((saoitrinvhd.details.Where(p => p.item_flag != "D" && p.item_flag != "T")).Count() > 0)
            {
                invntrtranshd invntrtranshd = new invntrtranshd();

                invntrtranshd.trans_bk       = saoitrinvhd.trans_bk;
                invntrtranshd.trans_no       = saoitrinvhd.trans_no;
                invntrtranshd.trans_dt       = saoitrinvhd.trans_dt;
                invntrtranshd.ref_id         = saoitrinvhd.account_id;
                invntrtranshd.ref_no         = saoitrinvhd.po_no;
                invntrtranshd.ref_dt         = saoitrinvhd.po_dt;
                invntrtranshd.trans_type     = "CUST";
                invntrtranshd.location       = "";
                invntrtranshd.account_period = saoitrinvhd.trans_period;
                invntrtranshd.ri_flag        = ls_ri_flag;
                invntrtranshd.remarks        = "";
                invntrtranshd.user_cd        = saoitrinvhd.user_cd;
                invntrtranshd.company_id     = saoitrinvhd.company_id;
                invntrtranshd.update_dt      = saoitrinvhd.update_dt;
                invntrtranshd.update_flag    = "V";
                invntrtranshd.trans_flag     = saoitrinvhd.trans_flag;
                invntrtranshd.action_flag    = "A";
                invntrtranshd.post_flag      = "U";
                invntrtranshd.memo_flag      = ls_memo_flag;



                db.invntrtranshds.Add(invntrtranshd);
            }

            if ((saoitrinvhd.details.Where(p => p.item_flag == "D")).Count() == 0)
            {
                return(0);
            }

            diintrtranshd diintrtranshd = new diintrtranshd();


            diintrtranshd.trans_bk       = saoitrinvhd.trans_bk;
            diintrtranshd.trans_no       = saoitrinvhd.trans_no;
            diintrtranshd.trans_dt       = saoitrinvhd.trans_dt;
            diintrtranshd.ref_id         = saoitrinvhd.account_id;
            diintrtranshd.ref_no         = saoitrinvhd.po_no;
            diintrtranshd.ref_dt         = saoitrinvhd.po_dt;
            diintrtranshd.trans_type     = "CUST";
            diintrtranshd.location       = "";
            diintrtranshd.account_period = saoitrinvhd.trans_period;
            diintrtranshd.ri_flag        = ls_ri_flag;
            diintrtranshd.remarks        = "";
            diintrtranshd.user_cd        = saoitrinvhd.user_cd;
            diintrtranshd.company_id     = saoitrinvhd.company_id;
            diintrtranshd.update_dt      = saoitrinvhd.update_dt;
            diintrtranshd.update_flag    = "V";
            diintrtranshd.trans_flag     = saoitrinvhd.trans_flag;
            diintrtranshd.action_flag    = "A";
            diintrtranshd.post_flag      = "U";
            diintrtranshd.memo_flag      = ls_memo_flag;

            db.diintrtranshds.Add(diintrtranshd);
            return(0);
        }
Exemplo n.º 20
0
        public IActionResult Update(string trans_no, string trans_bk, string company_id, saoitrinvhd data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            li_ret = SalesManager.Update(trans_no, trans_bk, company_id, data);


            if (li_ret == 500)
            {
                return(BadRequest());
            }

            else
            {
                return(NoContent());
            }
        }
        public int  Post_hd(saoitrinvhd data)
        {
            string[] trans_group;
            int      li_noofentries = 0, li_pay1_days = 1;
            string   ls_trans_no1, ls_inv_type, ls_ref_no2;
            decimal  ldec_pay1_per = 100, ldec_per = 1, li_days = 1, ldec_net_amt1 = 0, ldec_net_amt2 = 0;


            if (data.trans_type == "I")
            {
                trans_group = new string[12] {
                    data.trans_no + "a", data.trans_no + "b", data.trans_no + "c",
                    data.trans_no + "d", data.trans_no + "e", data.trans_no + "f",
                    data.trans_no + "g", data.trans_no + "h", data.trans_no + "i",
                    data.trans_no + "j", data.trans_no + "k", data.trans_no + "l"
                };

                var existing_records = db.faartrinvhds.Where(c => trans_group.Contains(c.trans_no)).ToList();

                foreach (var ll_currentrow in existing_records)
                {
                    db.Entry(ll_currentrow).State = EntityState.Deleted;
                }

                //db.database.ExecuteSqlComm&&("delete from faartrinvhd where trans_no in (a,b,c)");

                saoimsterms saoimsterms = db.saoimstermses.Where(d => d.id == data.terms).FirstOrDefault();

                if (data.terms == null)
                {
                    li_noofentries = 1;
                    ldec_pay1_per  = 100;
                    //li_pay1_days = daysafter(date(ldt_trans_dt), date(ldt_due_dt))
                }
                else
                {
                    if (saoimsterms.pay1_per > 0)
                    {
                        li_noofentries = 1;
                    }

                    if (saoimsterms.pay2_per > 0)
                    {
                        li_noofentries = 2;
                    }

                    if (saoimsterms.pay3_per > 0)
                    {
                        li_noofentries = 3;
                    }

                    if (saoimsterms.pay4_per > 0)
                    {
                        li_noofentries = 4;
                    }

                    if (saoimsterms.pay5_per > 0)
                    {
                        li_noofentries = 5;
                    }

                    if (saoimsterms.pay6_per > 0)
                    {
                        li_noofentries = 6;
                    }

                    if (saoimsterms.pay7_per > 0)
                    {
                        li_noofentries = 7;
                    }

                    if (saoimsterms.pay8_per > 0)
                    {
                        li_noofentries = 8;
                    }

                    if (saoimsterms.pay9_per > 0)
                    {
                        li_noofentries = 9;
                    }

                    if (saoimsterms.pay10_per > 0)
                    {
                        li_noofentries = 10;
                    }

                    if (saoimsterms.pay11_per > 0)
                    {
                        li_noofentries = 11;
                    }

                    if (saoimsterms.pay12_per > 0)
                    {
                        li_noofentries = 12;
                    }

                    if (saoimsterms.pay1_per + saoimsterms.pay2_per + saoimsterms.pay3_per + saoimsterms.pay4_per +
                        saoimsterms.pay5_per + saoimsterms.pay6_per + saoimsterms.pay7_per + saoimsterms.pay8_per +
                        saoimsterms.pay9_per + saoimsterms.pay10_per + saoimsterms.pay11_per + saoimsterms.pay12_per
                        != 100
                        )
                    {
                        return(500);
                    }
                }


                if ((li_noofentries == 3) && (saoimsterms.pay1_per >= 33.33m) && (saoimsterms.pay1_per <= 33.34m) &&
                    (saoimsterms.pay2_per >= 33.33m) && (saoimsterms.pay2_per <= 33.34m) &&
                    (saoimsterms.pay3_per >= 33.33m) && (saoimsterms.pay3_per <= 33.34m))
                {
                    saoimsterms.pay1_per = 3;
                    saoimsterms.pay2_per = 3;
                    saoimsterms.pay3_per = 3;
                }



                if (li_noofentries == 6 && saoimsterms.pay1_per >= 16.60m && saoimsterms.pay1_per <= 16.70m &&
                    saoimsterms.pay2_per >= 16.60m && saoimsterms.pay2_per <= 16.70m && saoimsterms.pay3_per >= 16.60m &&
                    saoimsterms.pay3_per <= 16.70m && saoimsterms.pay4_per >= 16.60m && saoimsterms.pay4_per <= 16.70m &&
                    saoimsterms.pay5_per >= 16.60m && saoimsterms.pay5_per <= 16.70m && saoimsterms.pay6_per >= 16.60m &&
                    saoimsterms.pay6_per <= 16.70m
                    )
                {
                    saoimsterms.pay1_per = 6;
                    saoimsterms.pay2_per = 6;
                    saoimsterms.pay3_per = 6;
                    saoimsterms.pay4_per = 6;
                    saoimsterms.pay5_per = 6;
                    saoimsterms.pay6_per = 6;
                }

                for (int i = 0; i < li_noofentries; i++)

                {
                    switch (i)
                    {
                    case 1:
                        ldec_per = saoimsterms.pay1_per ?? 0;
                        li_days  = li_pay1_days;
                        if (li_noofentries > 1)
                        {
                            ls_trans_no1 = data.trans_no.Trim() + "a";
                        }
                        else
                        {
                            ls_trans_no1 = data.trans_no;
                        }
                        data.due_dt = saoimsterms.pay1_date;
                        break;

                    case 2:
                        ldec_per     = saoimsterms.pay2_per ?? 0;
                        li_days      = saoimsterms.pay2_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "b";
                        data.due_dt  = saoimsterms.pay2_date;
                        break;

                    case 3:
                        ldec_per     = saoimsterms.pay3_per ?? 0;
                        li_days      = saoimsterms.pay3_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "c";
                        data.due_dt  = saoimsterms.pay3_date;
                        break;

                    case 4:
                        ldec_per     = saoimsterms.pay4_per ?? 0;
                        li_days      = saoimsterms.pay4_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "d";
                        data.due_dt  = saoimsterms.pay4_date;

                        break;

                    case 5:
                        ldec_per     = saoimsterms.pay5_per ?? 0;
                        li_days      = saoimsterms.pay5_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "e";
                        data.due_dt  = saoimsterms.pay5_date;
                        break;

                    case 6:
                        ldec_per     = saoimsterms.pay6_per ?? 0;
                        li_days      = saoimsterms.pay6_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "f";
                        data.due_dt  = saoimsterms.pay6_date;

                        break;

                    case 7:
                        ldec_per     = saoimsterms.pay7_per ?? 0;
                        li_days      = saoimsterms.pay7_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "g";
                        data.due_dt  = saoimsterms.pay6_date;

                        break;

                    case 8:
                        ldec_per     = saoimsterms.pay8_per ?? 0;
                        li_days      = saoimsterms.pay8_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "h";
                        data.due_dt  = saoimsterms.pay6_date;
                        break;

                    case 9:
                        ldec_per     = saoimsterms.pay9_per ?? 0;
                        li_days      = saoimsterms.pay9_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "i";
                        data.due_dt  = saoimsterms.pay6_date;
                        break;

                    case 10:
                        ldec_per     = saoimsterms.pay10_per ?? 0;
                        li_days      = saoimsterms.pay10_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "j";
                        data.due_dt  = saoimsterms.pay6_date;


                        break;

                    case 11:
                        ldec_per     = saoimsterms.pay11_per ?? 0;
                        li_days      = saoimsterms.pay11_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "k";
                        data.due_dt  = saoimsterms.pay6_date;
                        break;

                    case 12:
                        ldec_per     = saoimsterms.pay12_per ?? 0;
                        li_days      = saoimsterms.pay12_days ?? 0;
                        ls_trans_no1 = data.trans_no.Trim() + "l";
                        data.due_dt  = saoimsterms.pay6_date;
                        break;

                    default:
                        //
                        break;
                    }

                    if (saoimsterms.disc_days == null)
                    {
                        saoimsterms.disc_days = 0;
                    }

                    if (li_days > 0)
                    {
                        //p data.due_dt =
                    }

                    if (data.due_dt < data.sale_dt)
                    {
                        li_ret = 500;
                        continue;
                    }


                    if (i == li_noofentries)
                    {
                        ldec_net_amt1 = data.net_amt ?? 0 - ldec_net_amt2;
                    }


                    else
                    {
                        if (ldec_per == 3m || ldec_per == 6m)
                        {
                            ldec_net_amt1  = data.net_amt ?? 0 / ldec_per;
                            ldec_net_amt2 += ldec_net_amt1;
                        }
                        else
                        {
                            ldec_net_amt1  = data.net_amt ?? 0 * (ldec_per / 100);
                            ldec_net_amt2 += ldec_net_amt1;
                        }
                    }

                    ls_inv_type = data.details[1].ref_type;

                    if (ls_inv_type == "O")
                    {
                        ls_ref_no2 = data.details[1].ref_no;
                    }

                    var trans_fflag = db.saoitrinvhds.Where(d => d.trans_bk == "SO01").Select(x => new
                    {
                        x.trans_for_flag
                    }
                                                                                              ).FirstOrDefault();

                    ls_inv_type = trans_fflag.trans_for_flag;

                    if (ls_inv_type == null)
                    {
                        ls_inv_type = "I";
                    }
                    //select trans_for_flag into: ls_inv_type
                    //from saoitrinvhd
                    //where trans_bk = 'SO01' and trans_no = :ls_ref_no2;
                    //end if
                }
            }

            if (li_ret == 500)
            {
                return(500);
            }

            return(200);
        }