Example #1
0
        public async Task <bool> EditTransH(IcTransHView trans)
        {
            var ExistingTrans = _context.IcTransHs.Where(x => x.IcTransHId == trans.IcTransHId).FirstOrDefault();

            /* transaksi lama dikurangi */

            if (ExistingTrans != null)
            {
                foreach (var item in ExistingTrans.IcTransDs)
                {
                    IcItem cekItem = _context.IcItems.Where(x => x.ItemCode == item.ItemCode).FirstOrDefault();
                    if (cekItem != null)
                    {
                        IcAltItem itemlokasi1 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi).FirstOrDefault();
                        if (itemlokasi1 != null)
                        {
                            itemlokasi1.Qty += item.QtyShp;
                            _context.IcAltItems.Update(itemlokasi1);
                        }


                        IcAltItem itemlokasi2 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi2).FirstOrDefault();
                        if (itemlokasi2 != null)
                        {
                            itemlokasi2.Qty -= item.QtyShp;
                            _context.IcAltItems.Update(itemlokasi2);
                        }
                    }
                    _context.IcTransHs.Remove(ExistingTrans);
                }
            }

            /* transaksi update */

            IcTransH transH = new IcTransH
            {
                NoFaktur   = ExistingTrans.NoFaktur,
                Tanggal    = trans.Tanggal,
                Keterangan = trans.Keterangan,
                Lokasi     = trans.Lokasi,
                Lokasi2    = trans.Lokasi2,
                Kode       = "90",
                IcTransDs  = new List <IcTransD>()
            };

            foreach (var item in trans.IcTransDs)
            {
                transH.IcTransDs.Add(new IcTransD()
                {
                    ItemCode = item.ItemCode,
                    NamaItem = item.NamaItem,
                    QtyShp   = item.QtyShp,
                    Kode     = "90",
                    Lokasi   = transH.Lokasi,
                    Lokasi2  = transH.Lokasi2,
                    NoFaktur = transH.NoFaktur,
                    Tanggal  = trans.Tanggal
                });

                IcItem cekItem = _context.IcItems.Where(x => x.ItemCode == item.ItemCode).FirstOrDefault();
                if (cekItem != null)
                {
                    IcAltItem cekLokasi1 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == transH.Lokasi).FirstOrDefault();
                    if (cekLokasi1 == null)
                    {
                        IcAltItem Produk = new IcAltItem()
                        {
                            ItemCode = cekItem.ItemCode.ToUpper(),
                            NamaItem = cekItem.NamaItem,
                            Satuan   = cekItem.Satuan,
                            Lokasi   = transH.Lokasi,
                            Qty      = -1 * item.QtyShp
                        };
                        _context.IcAltItems.Add(Produk);
                    }
                    else
                    {
                        cekLokasi1.Qty -= item.QtyShp;
                        _context.IcAltItems.Update(cekLokasi1);
                    }

                    /** lokasi 2 **/
                    IcAltItem cekLokasi2 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == transH.Lokasi2).FirstOrDefault();
                    if (cekLokasi2 == null)
                    {
                        IcAltItem Produk = new IcAltItem()
                        {
                            ItemCode = cekItem.ItemCode.ToUpper(),
                            NamaItem = cekItem.NamaItem,
                            Satuan   = cekItem.Satuan,
                            Lokasi   = transH.Lokasi2,
                            Qty      = item.QtyShp
                        };
                        _context.IcAltItems.Add(Produk);
                    }
                    else
                    {
                        cekLokasi2.Qty += item.QtyShp;
                        _context.IcAltItems.Update(cekLokasi2);
                    }
                }
            }

            _context.IcTransHs.Add(transH);

            await _context.SaveChangesAsync();

            return(true);
        }
Example #2
0
        public async Task <bool> AddTransH(IcTransHView trans)
        {
            //string test = codeview.SrcCode.ToUpper();
            //var cekFirst = _context.CbSrcCodes.Where(x => x.SrcCode == test).ToList();

            IcTransH transH = new IcTransH
            {
                NoFaktur   = GetNumber(),
                Tanggal    = trans.Tanggal,
                Keterangan = trans.Keterangan,
                Lokasi     = trans.Lokasi,
                Lokasi2    = trans.Lokasi2,
                Kode       = "90",
                IcTransDs  = new List <IcTransD>()
            };

            foreach (var item in trans.IcTransDs)
            {
                transH.IcTransDs.Add(new IcTransD()
                {
                    ItemCode = item.ItemCode,
                    NamaItem = item.NamaItem,
                    QtyShp   = item.QtyShp,
                    Kode     = "90",
                    Lokasi   = item.Lokasi,
                    Lokasi2  = item.Lokasi2,
                    NoFaktur = transH.NoFaktur,
                    Tanggal  = trans.Tanggal
                });

                IcItem cekItem = _context.IcItems.Where(x => x.ItemCode == item.ItemCode).FirstOrDefault();
                if (cekItem != null)
                {
                    IcAltItem cekLokasi1 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi).FirstOrDefault();
                    if (cekLokasi1 == null)
                    {
                        IcAltItem Produk = new IcAltItem()
                        {
                            ItemCode = cekItem.ItemCode.ToUpper(),
                            NamaItem = cekItem.NamaItem,
                            Satuan   = cekItem.Satuan,
                            Lokasi   = item.Lokasi,
                            Qty      = -1 * item.QtyShp
                        };
                        _context.IcAltItems.Add(Produk);
                    }
                    else
                    {
                        cekLokasi1.Qty -= item.QtyShp;
                        _context.IcAltItems.Update(cekLokasi1);
                    }

                    /** lokasi 2 **/
                    IcAltItem cekLokasi2 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi2).FirstOrDefault();
                    if (cekLokasi2 == null)
                    {
                        IcAltItem Produk = new IcAltItem()
                        {
                            ItemCode = cekItem.ItemCode.ToUpper(),
                            NamaItem = cekItem.NamaItem,
                            Satuan   = cekItem.Satuan,
                            Lokasi   = item.Lokasi2,
                            Qty      = item.QtyShp
                        };
                        _context.IcAltItems.Add(Produk);
                    }
                    else
                    {
                        cekLokasi2.Qty += item.QtyShp;
                        _context.IcAltItems.Update(cekLokasi2);
                    }
                }
            }

            _context.IcTransHs.Add(transH);

            await _context.SaveChangesAsync();

            return(true);
        }