Esempio n. 1
0
        private void IsValidSo(int idSo, int idTruck, List <string> MsgError)
        {
            //cokot satuan anu tina so  berdasarkan id kon truk,
            Context.SalesOrder dbso = RepoSalesOrder.FindByKonsolidasi(idSo);
            List <Context.DaftarHargaKonsolidasiItem> dbItems = RepoDaftarHarga.FindByItemId(dbso.SalesOrderKonsolidasi.IdDaftarHargaItem.Value).DaftarHargaKonsolidasiItem.ToList();

            if (dbItems != null)
            {
                //cokot item daftar harga sesuai anu dipilih tina so
                Context.DaftarHargaKonsolidasiItem dbItemHarga = dbItems.Where(d => d.Id == dbso.SalesOrderKonsolidasi.IdDaftarHargaItem.Value).FirstOrDefault();
                if (dbso.SalesOrderKonsolidasi.PerhitunganDasar != "Manual")
                {
                    //cek aya teu data na berdasar kan truk jeung satuana na

                    //khusus tonase
                    if (dbso.SalesOrderKonsolidasi.PerhitunganDasar == "Tonase")
                    {
                        if (dbItemHarga.IdJenisKendaraan != idTruck || (dbItemHarga.LookupCodeSatuan.Nama.ToLower() != "kg" && dbItemHarga.LookupCodeSatuan.Nama.ToLower() != "ton"))
                        {
                            MsgError.Add("Tidak terdapat Daftar harga pada " + dbso.SalesOrderKonsolidasi.SONumber + " untuk satuan " + dbso.SalesOrderKonsolidasi.PerhitunganDasar);
                        }
                    }
                    else
                    {
                        if (dbItemHarga.IdJenisKendaraan != idTruck || dbItemHarga.LookupCodeSatuan.Nama.ToLower() != dbso.SalesOrderKonsolidasi.PerhitunganDasar.ToLower())
                        {
                            MsgError.Add("Tidak terdapat Daftar harga pada " + dbso.SalesOrderKonsolidasi.SONumber + " untuk satuan " + dbso.SalesOrderKonsolidasi.PerhitunganDasar);
                        }
                    }
                }
            }
        }
 public bool isValidMinMax(int id, int val, string satuan)
 {
     Context.DaftarHargaKonsolidasi     dbDh   = RepoDHKonsolidasi.FindByItemId(id);
     Context.DaftarHargaKonsolidasiItem dbItem = dbDh.DaftarHargaKonsolidasiItem.Where(d => d.Id == id).FirstOrDefault();
     if (dbItem.LookupCodeSatuan.Nama == satuan)
     {
         return((val >= dbItem.MinKg) && (val <= dbItem.MaxKg));
     }
     else
     {
         return(true);
     }
 }
        public ActionResult Edit(int id)
        {
            Context.SalesOrder    dbitem = RepoSalesOrder.FindByPK(id);
            SalesOrderKonsolidasi model  = new SalesOrderKonsolidasi(dbitem);

            model.NamaCustomer = RepoLookupCode.FindByPK(model.CustomerId).Nama;
            model.KodeNama     = RepoCustomer.FindByPK(model.SupplierId.Value).CustomerCodeOld;
            model.SupplierName = RepoCustomer.FindByPK(model.SupplierId.Value).CustomerNama;
            Context.DaftarHargaKonsolidasiItem dhoitem = RepoDHKonsolidasi.FindItemByPK(model.RuteId.Value);
            ViewBag.ListNamaRute = dhoitem.ListNamaRute;

            ViewBag.name = model.SONumber;
            return(View("Form", model));
        }
        public ActionResult Add(SalesOrderKonsolidasi model, string btnsave)
        {
            if (ModelState.IsValid)
            {
                //cek min max
                bool isPalid = true;
                Context.DaftarHargaKonsolidasi     dbDh     = RepoDHKonsolidasi.FindByItemId(model.RuteId.Value);
                Context.DaftarHargaKonsolidasiItem dbDhItem = dbDh.DaftarHargaKonsolidasiItem.Where(d => d.Id == model.RuteId.Value).FirstOrDefault();
                if (!isPalid)
                {
                    return(View("Form", model));
                }

                Context.SalesOrder            dbso   = new Context.SalesOrder();
                Context.SalesOrderKonsolidasi dbitem = new Context.SalesOrderKonsolidasi();
                model.setDb(dbitem);
                dbitem.Urutan              = RepoSalesOrder.getUrutanKonsolidasi(model.TanggalMasuk.Value) + 1;
                dbitem.SONumber            = RepoSalesOrder.generateKonsolidasi(model.TanggalMasuk.Value, dbitem.Urutan);
                dbitem.DN                  = "DN" + dbitem.SONumber;
                dbso.SalesOrderKonsolidasi = dbitem;

                if (btnsave == "save")
                {
                    dbso.Status = "save";
                }
                else if (btnsave == "draft")
                {
                    dbso.Status = "draft";
                }
                else
                {
                    dbso.Status = model.Status;
                }

                RepoSalesOrder.save(dbso);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
        public void setDb(Context.DaftarHargaKonsolidasi dbitem)
        {
            //dbitem.Id = Id;
            dbitem.IdCust      = IdCust;
            dbitem.PeriodStart = PeriodStart.Value;
            dbitem.PeriodEnd   = PeriodEnd.Value;

            // items
            //dbitem.DaftarHargaKonsolidasiItem.Clear();
            DaftarHargaKonsolidasiItem[] result = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiItem[]>(StrItem);
            List <Context.DaftarHargaKonsolidasiItem> DummyItems = dbitem.DaftarHargaKonsolidasiItem.ToList();
            List <int> ListAnuTeuDiHapus = new List <int>();

            foreach (DaftarHargaKonsolidasiItem item in result)
            {
                // edit row
                if (item.Id != 0)
                {
                    Context.DaftarHargaKonsolidasiItem dhkItem = dbitem.DaftarHargaKonsolidasiItem.Where(i => i.IdDaftarHargaKonsolidasi == dbitem.Id && i.Id == item.Id).FirstOrDefault();

                    dhkItem.Id = item.Id;
                    dhkItem.NamaDaftarHargaRute = item.NamaRuteDaftarHarga;
                    dhkItem.ListIdRute          = item.ListIdRute;
                    dhkItem.ListNamaRute        = item.ListNamaRute;
                    dhkItem.IdJenisKendaraan    = item.IdJenisKendaraan;
                    dhkItem.MinKg               = item.MinKg;
                    dhkItem.MaxKg               = item.MaxKg;
                    dhkItem.Harga               = item.Harga;
                    dhkItem.IdSatuanHarga       = item.IdSatuanHarga;
                    dhkItem.IsAsuransi          = item.IsAsuransi;
                    dhkItem.Premi               = item.Premi;
                    dhkItem.PihakPenanggung     = item.PihakPenanggung;
                    dhkItem.TipeNilaiTanggungan = item.TipeNilaiTanggungan;
                    dhkItem.NilaiTanggungan     = item.NilaiTanggungan;
                    dhkItem.Keterangan          = item.Keterangan;
                    ListAnuTeuDiHapus.Add(item.Id);
                }
                else //add row
                {
                    dbitem.DaftarHargaKonsolidasiItem.Add(new Context.DaftarHargaKonsolidasiItem()
                    {
                        NamaDaftarHargaRute = item.NamaRuteDaftarHarga,
                        ListIdRute          = item.ListIdRute,
                        ListNamaRute        = item.ListNamaRute,
                        IdJenisKendaraan    = item.IdJenisKendaraan,
                        MinKg               = item.MinKg,
                        MaxKg               = item.MaxKg,
                        Harga               = item.Harga,
                        IdSatuanHarga       = item.IdSatuanHarga,
                        IsAsuransi          = item.IsAsuransi,
                        Premi               = item.Premi,
                        PihakPenanggung     = item.PihakPenanggung,
                        TipeNilaiTanggungan = item.TipeNilaiTanggungan,
                        NilaiTanggungan     = item.NilaiTanggungan,
                        Keterangan          = item.Keterangan
                    });
                }
            }
            foreach (Context.DaftarHargaKonsolidasiItem dbhapus in DummyItems)
            {
                if (!ListAnuTeuDiHapus.Any(d => d == dbhapus.Id))
                {
                    dbitem.DaftarHargaKonsolidasiItem.Remove(dbhapus);
                }
            }
            //kondisi
            dbitem.DaftarHargaKonsolidasiKondisi.Clear();
            foreach (DaftarHargaKondisi item in listKondisi.Where(d => d.IsDelete == false))
            {
                dbitem.DaftarHargaKonsolidasiKondisi.Add(new Context.DaftarHargaKonsolidasiKondisi()
                {
                    kondisi   = item.kondisi,
                    IsInclude = item.IsInclude,
                    IsBill    = item.IsBill,
                    value     = item.value,
                    IsDefault = item.IsDefault,
                    IsKota    = item.IsKota,
                    IsTitik   = item.IsTitik,
                    ValKota   = item.ValKota,
                    ValTitik  = item.ValTitik,
                    IsDelete  = item.IsDelete,
                });
            }
            //Attachment
            dbitem.DaftarHargaKonsolidasiAttachment.Clear();
            DaftarHargaKonsolidasiAttachment[] resultAtt = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiAttachment[]>(StrAttachment);
            foreach (DaftarHargaKonsolidasiAttachment item in resultAtt)
            {
                dbitem.DaftarHargaKonsolidasiAttachment.Add(new Context.DaftarHargaKonsolidasiAttachment()
                {
                    FileName  = item.FileName,
                    RFileName = item.RFileName,
                });
            }
        }
        public ActionResult Edit(SalesOrderKonsolidasi model, string btnsave)
        {
            if (ModelState.IsValid)
            {
                //cek min max
                bool isPalid = true;
                Context.DaftarHargaKonsolidasi     dbDh     = RepoDHKonsolidasi.FindByItemId(model.RuteId.Value);
                Context.DaftarHargaKonsolidasiItem dbDhItem = dbDh.DaftarHargaKonsolidasiItem.Where(d => d.Id == model.RuteId.Value).FirstOrDefault();
                if (
                    (dbDhItem.LookupCodeSatuan.Nama == model.PerhitunganDasar) || (model.PerhitunganDasar == "Tonase" && (dbDhItem.LookupCodeSatuan.Nama == "Ton" || dbDhItem.LookupCodeSatuan.Nama == "Kg"))
                    )
                {
                    if (model.PerhitunganDasar == "Tonase")
                    {
                        if (!((model.Tonase >= dbDhItem.MinKg) && (model.Tonase <= dbDhItem.MaxKg)))
                        {
                            isPalid = false;
                            ModelState.AddModelError("Tonase", "Nilai harus lebih besar dari " + dbDhItem.MinKg.ToString() + " dan lebih kecil dari " + dbDhItem.MaxKg.ToString());
                        }
                    }
                    else if (model.PerhitunganDasar == "Karton")
                    {
                        if (!((model.karton >= dbDhItem.MinKg) && (model.karton <= dbDhItem.MaxKg)))
                        {
                            isPalid = false;
                            ModelState.AddModelError("karton", "Nilai harus lebih besar dari " + dbDhItem.MinKg.ToString() + " dan lebih kecil dari " + dbDhItem.MaxKg.ToString());
                        }
                    }
                    else if (model.PerhitunganDasar == "Pallet")
                    {
                        if (!((model.Pallet >= dbDhItem.MinKg) && (model.Pallet <= dbDhItem.MaxKg)))
                        {
                            isPalid = false;
                            ModelState.AddModelError("Pallet", "Nilai harus lebih besar dari " + dbDhItem.MinKg.ToString() + " dan lebih kecil dari " + dbDhItem.MaxKg.ToString());
                        }
                    }
                    else if (model.PerhitunganDasar == "Container")
                    {
                        if (!((model.Container >= dbDhItem.MinKg) && (model.Container <= dbDhItem.MaxKg)))
                        {
                            isPalid = false;
                            ModelState.AddModelError("Container", "Nilai harus lebih besar dari " + dbDhItem.MinKg.ToString() + " dan lebih kecil dari " + dbDhItem.MaxKg.ToString());
                        }
                    }
                    else if (model.PerhitunganDasar == "m3")
                    {
                        if (!((model.m3 >= dbDhItem.MinKg) && (model.m3 <= dbDhItem.MaxKg)))
                        {
                            isPalid = false;
                            ModelState.AddModelError("m3", "Nilai harus lebih besar dari " + dbDhItem.MinKg.ToString() + " dan lebih kecil dari " + dbDhItem.MaxKg.ToString());
                        }
                    }
                }
                if (!isPalid)
                {
                    return(View("Form", model));
                }

                Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.SalesOrderId.Value);

                model.setDb(dbitem.SalesOrderKonsolidasi);

                if (btnsave == "save")
                {
                    dbitem.Status = "save";
                }
                else if (btnsave == "draft")
                {
                    dbitem.Status = "draft";
                }
                else
                {
                    dbitem.Status = model.Status;
                }

                RepoSalesOrder.save(dbitem);


                return(RedirectToAction("Index"));
            }

            return(View("Form", model));
        }