public ActionResult EditBatalTruk(SalesOrderKontrak model, int DataTruckId, int IdDriver1, int IdDriver2, string btnsave)
        {
            Context.SalesOrderKontrakListSo dblist = RepoSalesOrderKontrakListSo.FindByNoSo(model.SONumber);
            dblist.IdDataTruck = DataTruckId;
            dblist.Driver1Id   = IdDriver1;
            if (IdDriver2 > 0)
            {
                dblist.Driver2Id = IdDriver2;
            }
            if (IdDriver2 > 0)
            {
                dblist.Driver2Id = IdDriver2;
            }
            if (btnsave != null && btnsave != "")
            {
                dblist.Status = "draft konfirmasi";
            }
            else
            {
                dblist.Status = "save planning";
            }
            dblist.Status = btnsave;
            model.Status  = "draft konfirmasi";
            //RepoSalesOrder.save(model);
            RepoSalesOrderKontrakListSo.OnlyUpdate(dblist);

            return(RedirectToAction("Index"));
        }
Example #2
0
        public PartialViewResult GetPartialSo(int idSo, int IdSoKontrak = 0)
        {
            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(idSo);

            if (dbitem.SalesOrderOncallId.HasValue)
            {
                AdminUangJalan model = new AdminUangJalan(dbitem.AdminUangJalan, RepoAtm.FindAll(), RepoBor.FindAll());
                model.ModelOncall = new SalesOrderOncall(dbitem);
                return(PartialView("SalesOrderOncall/_PartialFormReadOnly", model.ModelOncall));
            }
            else if (dbitem.SalesOrderPickupId.HasValue)
            {
                AdminUangJalan model = new AdminUangJalan(dbitem.AdminUangJalan, RepoAtm.FindAll(), RepoBor.FindAll());
                model.ModelPickup = new SalesOrderPickup(dbitem);
                return(PartialView("SalesOrderPickup/_PartialFormReadOnly", model.ModelPickup));
            }
            else if (dbitem.SalesOrderProsesKonsolidasiId.HasValue)
            {
                AdminUangJalan model = new AdminUangJalan(dbitem.AdminUangJalan, RepoAtm.FindAll(), RepoBor.FindAll());
                model.ModelKonsolidasi = new SalesOrderProsesKonsolidasi(dbitem);
                return(PartialView("SalesOrderProsesKonsolidasi/_PartialFormReadOnly", model.ModelKonsolidasi));
            }
            else if (IdSoKontrak != 0)
            {
                //List<int> ListIdDumy = ListIdSo.Split(new string[] { "." }, StringSplitOptions.None).ToList().Select(int.Parse).ToList();
                Context.SalesOrderKontrakListSo dbsoDummy = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Id == IdSoKontrak).FirstOrDefault();
                dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Clear();
                dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Add(dbsoDummy);
                AdminUangJalan model = new AdminUangJalan(dbsoDummy.AdminUangJalan, RepoAtm.FindAll(), RepoBor.FindAll());
                model.ModelKontrak = new SalesOrderKontrak(dbitem);
                return(PartialView("SalesOrderKontrak/_PartialFormReadOnly", model));
            }
            return(PartialView(""));
        }
        public ActionResult EditKontrak(int id, int idsokontrak)
        {
            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(id);
            Context.SalesOrderKontrakListSo soKontrak = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Id == idsokontrak).FirstOrDefault();
            //ambil jumlah so yang sama admin uang jalan nya
            int jumSo = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.IdAdminUangJalan == soKontrak.IdAdminUangJalan).Count();

            ViewBag.dbsoPerDriverCount = jumSo;
            dbitem.SalesOrderKontrak.SalesOrderKontrakListSo = new List <Context.SalesOrderKontrakListSo>();
            dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Add(soKontrak);
            AdminUangJalan model = new AdminUangJalan();

            if (soKontrak.IdAdminUangJalan.HasValue)
            {
                model = new AdminUangJalan(soKontrak.AdminUangJalan, Repoatm.FindAll(), RepoBor.FindAll());
            }

            model.IdSalesOrder = dbitem.Id;
            model.ListIdSo     = idsokontrak.ToString();
            ViewBag.Status     = soKontrak.Status;
            model.ModelKontrak = new SalesOrderKontrak(dbitem);
            if (soKontrak.Status.ToLower().Contains("konfirmasi"))
            {
                model.StatusSo = "Konfirmasi";
            }
            if (model.IdDriver1.HasValue)
            {
                model.IdDriver1        = model.IdDriver1;
                model.NamaDriver1      = model.NamaDriver1;
                model.KeteranganGanti1 = model.KeteranganGanti1;
            }
            else
            {
                model.IdDriver1   = soKontrak.Driver1Id;
                model.NamaDriver1 = soKontrak.Driver1.KodeDriver + " - " + soKontrak.Driver1.NamaDriver;
            }
            if (model.IdDriver2.HasValue)
            {
                model.IdDriver2        = model.IdDriver2;
                model.NamaDriver2      = model.NamaDriver2;
                model.KeteranganGanti2 = model.KeteranganGanti2;
            }
            else
            {
                if (soKontrak.Driver2Id.HasValue)
                {
                    model.IdDriver2   = soKontrak.Driver2Id;
                    model.NamaDriver2 = soKontrak.Driver2.KodeDriver + " - " + soKontrak.Driver2.NamaDriver;
                }
            }
            ViewBag.Title = "Batal Truk " + dbitem.SalesOrderKontrak.SONumber;
            return(View("Form", model));
        }
Example #4
0
        public ListOrder(Context.SalesOrder dbso, Context.SalesOrderKontrakListSo dbitem)
        {
            Id     = dbso.Id;
            Status = dbitem.Status;
            if (dbitem.Status.ToLower().Contains("konfirmasi"))
            {
                StatusFlow = "KONFIRMASI";
            }
            else
            {
                StatusFlow = dbitem.Status.ToLower().ToUpper();
            }
            FlowDate     = dbso.DateStatus;
            IsBatalTruk  = dbitem.IsBatalTruck;
            IdChild      = dbso.SalesOrderKontrakId.Value;
            IdSoKontrak  = dbitem.Id;
            JenisOrder   = "Kontrak";
            TypeSo       = "Kontrak";
            DN           = null;
            SONumber     = dbitem.NoSo;
            JamMuat      = dbso.SalesOrderKontrak.JamMuat;
            CustomerId   = dbso.SalesOrderKontrak.CustomerId;
            NamaCustomer = dbso.SalesOrderKontrak.Customer.CustomerNama;
            Driver1      = dbitem.Driver1 == null ? "" : dbitem.Driver1.KodeDriver + " - " + dbitem.Driver1.NamaDriver;
            VehicleNo    = dbitem.DataTruck == null ? "" : dbitem.DataTruck.VehicleNo;
            if (dbso.SalesOrderKontrak.ProductId.HasValue)
            {
                ProductId  = dbso.SalesOrderKontrak.ProductId;
                StrProduct = dbso.SalesOrderKontrak.MasterProduct.NamaProduk;
                Suhu       = dbso.SalesOrderKontrak.MasterProduct.TargetSuhu;
            }
            RuteId       = null;
            Rute         = "";
            StrMultidrop = null;
            if (dbso.SalesOrderKontrakId.HasValue)
            {
                JenisTruckId  = dbso.SalesOrderKontrak.JenisTrucks.Id;
                StrJenisTruck = dbso.SalesOrderKontrak.JenisTrucks.StrJenisTruck;
            }
            else
            {
                JenisTruckId  = dbitem.DataTruck.IdJenisTruck;
                StrJenisTruck = dbitem.DataTruck.JenisTrucks.StrJenisTruck;
            }
            PenanganKhusus = null;
            List <string> strDate = new List <string>();

            strDate.Add(dbitem.MuatDate.ToString());

            TanggalMuat = string.Join("|", strDate);
        }
        public ActionResult EditBatalTruk(string id)
        {
            Context.SalesOrderKontrakListSo detailsoitem = RepoSalesOrderKontrakListSo.FindByNoSo(id);
            Context.SalesOrder kontrakitem = RepoSalesOrder.FindByKontrak(detailsoitem.SalesKontrakId.Value);
            SalesOrderKontrak  model       = new SalesOrderKontrak(kontrakitem, detailsoitem);

            ViewBag.kondisi   = "planning";
            ViewBag.name      = model.SONumber;
            ViewBag.so_detail = detailsoitem;
            ViewBag.Title     = "Planning Sales Order Kontrak " + model.SONumber;
            ViewBag.PostData  = "EditBatalTruk";

            return(View("PlanningAfterBatalTruk", model));
        }
Example #6
0
        public SettlementBatalIndex(Context.SettlementBatal dbitem, Context.SalesOrderKontrakListSo dbso)
        {
            Id           = dbitem.Id;
            IdSalesOrder = dbitem.IdSalesOrder;
            IdSoKontrak  = dbitem.IdSoKontrak;

            JenisOrder = "Kontrak";
            //NoDn = dbitem.SalesOrder.SalesOrderOncall.DN;
            NoSo      = dbso.NoSo;
            Customer  = dbitem.SalesOrder.SalesOrderKontrak.Customer.CustomerNama;
            VehicleNo = dbso.DataTruck == null ? "" : dbso.DataTruck.VehicleNo;
            Driver    = dbitem.IdDriver.HasValue ? dbitem.Driver.NamaDriver : "";

            JenisBatal = dbitem.JenisBatal;
            Tanggal    = dbitem.ModifiedDate;
            IsProses   = dbitem.IsProses;
        }
Example #7
0
        public SalesOrderKontrak(Context.SalesOrder dbitem, Context.SalesOrderKontrakListSo salesOrderKontrakListSo)
        {
            IsBatalTruk         = true;
            SalesOrderId        = dbitem.Id;
            SalesOrderKontrakId = dbitem.SalesOrderKontrak.SalesOrderKontrakId;
            SONumber            = salesOrderKontrakListSo.NoSo;
            DN            = dbitem.SalesOrderKontrak.DN;
            Urutan        = dbitem.SalesOrderKontrak.Urutan;
            CustomerId    = dbitem.SalesOrderKontrak.CustomerId;
            KodeCustomer  = dbitem.SalesOrderKontrak.Customer.CustomerCode;
            NamaCustomer  = dbitem.SalesOrderKontrak.Customer.CustomerNama;
            JenisTruckId  = dbitem.SalesOrderKontrak.JenisTruckId;
            StrJenisTruck = dbitem.SalesOrderKontrak.JenisTruckId == null ? "" : dbitem.SalesOrderKontrak.JenisTrucks.StrJenisTruck;
            ProductId     = dbitem.SalesOrderKontrak.ProductId;
            StrProduct    = dbitem.SalesOrderKontrak.ProductId == null ? "" : dbitem.SalesOrderKontrak.MasterProduct.NamaProduk;
            Suhu          = dbitem.SalesOrderKontrak.ProductId == null ? 0 : int.Parse(dbitem.SalesOrderKontrak.MasterProduct.TargetSuhu.ToString());
            PeriodStr     = dbitem.SalesOrderKontrak.PeriodStr;
            PeriodEnd     = dbitem.SalesOrderKontrak.PeriodEnd;
            JamMuat       = dbitem.SalesOrderKontrak.JamMuat;
            JumlahTruck   = 1;
            Rit           = dbitem.SalesOrderKontrak.Rit;
            Keterangan    = dbitem.SalesOrderKontrak.Keterangan;
            JumHari       = dbitem.SalesOrderKontrak.JumlahHari;
            Kerja         = dbitem.SalesOrderKontrak.JumlahHariKerja;
            libur         = dbitem.SalesOrderKontrak.JumlahHariLibur;
            Status        = dbitem.Status;
            DateStatus    = dbitem.DateStatus;
            JsonDateMuat  = salesOrderKontrakListSo.MuatDate.ToString();

            List <string> strDate = new List <string>();

            foreach (Context.SalesOrderKontrakDetail item in dbitem.SalesOrderKontrak.SalesOrderKontrakDetail)
            {
                strDate.Add(item.MuatDate.ToString());
            }
            TanggalMuat = string.Join("|", strDate);

            ListModelSOKontrak      = new List <SalesOrderKontrakListSo>();
            ListValueModelSOKontrak = new List <SalesOrderKontrakListSo>();
            foreach (Context.SalesOrderKontrakListSo item in dbitem.SalesOrderKontrak.SalesOrderKontrakListSo)
            {
                ListModelSOKontrak.Add(new SalesOrderKontrakListSo(item));
            }
            IsReturn = dbitem.isReturn;
        }
        public JsonResult Submit(int id)
        {
            ResponeModel response = new ResponeModel(true);

            Context.SalesOrder dbItem = RepoSalesOrder.FindByPK(id);
            if (dbItem.SalesOrderKontrak.SalesOrderKontrakTruck.Count > 0)
            {
                dbItem.Status   = "save planning";
                dbItem.isReturn = false;

                #region list kontrak SO
                dbItem.SalesOrderKontrak.SalesOrderKontrakListSo.Clear();

                int idx = 1;
                for (int j = 1; j <= (dbItem.SalesOrderKontrak.Rit); j++)
                {
                    foreach (var dateItem in dbItem.SalesOrderKontrak.SalesOrderKontrakDetail)
                    {
                        foreach (var trukItem in dbItem.SalesOrderKontrak.SalesOrderKontrakTruck)
                        {
                            Context.SalesOrderKontrakListSo dblist = new Context.SalesOrderKontrakListSo();
                            dblist.SalesKontrakId = dbItem.SalesOrderKontrakId;
                            dblist.NoSo           = RepoSalesOrderKontrakListSo.generateCodeListSo(dbItem.SalesOrderKontrak.SONumber, dateItem.MuatDate, j, idx, dbItem.SalesOrderKontrak.Urutan);
                            dblist.MuatDate       = dateItem.MuatDate;
                            dblist.IdDataTruck    = trukItem.DataTruckId;
                            dblist.Driver1Id      = trukItem.IdDriver1;
                            dblist.Driver2Id      = trukItem.IdDriver2;
                            RepoSalesOrderKontrakListSo.OnlyAdd(dblist);
                            idx++;
                        }
                    }
                }
                #endregion list kontrak SO

                RepoSalesOrder.save(dbItem);
            }
            else
            {
                response.SetFail("Truck belum dipilih.");
            }


            return(Json(response));
        }
        public ActionResult Edit(SalesOrderKontrak model, string btnsave)
        {
            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.SalesOrderId.Value);
            if (btnsave != null && btnsave != "")
            {
                dbitem.Status = btnsave;
            }
            else
            {
                dbitem.Status = model.Status;
            }

            model.setDbOpertional(dbitem.SalesOrderKontrak);

            #region list kontrak SO
            dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Clear();

            int idx = 1;
            for (int j = 1; j <= (dbitem.SalesOrderKontrak.Rit); j++)
            {
                foreach (var dateItem in dbitem.SalesOrderKontrak.SalesOrderKontrakDetail)
                {
                    int trukIdx = 1;
                    foreach (var trukItem in dbitem.SalesOrderKontrak.SalesOrderKontrakTruck)
                    {
                        Context.SalesOrderKontrakListSo dblist = new Context.SalesOrderKontrakListSo();
                        dblist.SalesKontrakId = dbitem.SalesOrderKontrakId;
                        dblist.NoSo           = RepoSalesOrderKontrakListSo.generateCodeListSo(dbitem.SalesOrderKontrak.SONumber, dateItem.MuatDate, j, trukIdx, dbitem.SalesOrderKontrak.Urutan);
                        dblist.MuatDate       = dateItem.MuatDate;
                        dblist.IdDataTruck    = trukItem.DataTruckId;
                        dblist.Driver1Id      = trukItem.IdDriver1;
                        dblist.Driver2Id      = trukItem.IdDriver2;
                        RepoSalesOrderKontrakListSo.OnlyAdd(dblist);
                        idx++;
                        trukIdx++;
                    }
                }
            }
            #endregion list kontrak SO

            RepoSalesOrder.save(dbitem);
            return(RedirectToAction("Index"));
        }
Example #10
0
 public SalesOrderKontrakListSo(Context.SalesOrderKontrakListSo dbitem)
 {
     Id             = dbitem.Id;
     SalesKontrakId = dbitem.SalesKontrakId;
     NoSo           = dbitem.NoSo;
     MuatDate       = dbitem.MuatDate;
     IsProses       = dbitem.IsProses;
     IdDataTruck    = dbitem.IdDataTruck;
     if (dbitem.IdDataTruck.HasValue)
     {
         Nopol          = dbitem.DataTruck.VehicleNo;
         IdJenisTruck   = dbitem.DataTruck.IdJenisTruck;
         NamaJenisTruck = dbitem.DataTruck.JenisTrucks.StrJenisTruck;
     }
     Driver1Id        = dbitem.Driver1Id;
     Driver2Id        = dbitem.Driver2Id;
     Urutan           = dbitem.Urutan;
     Status           = dbitem.Status;
     IdAdminUangJalan = dbitem.IdAdminUangJalan;
 }
        public ActionResult Edit(SettlementBatal model)
        {
            if (ModelState.IsValid)
            {
                Context.SettlementBatal dbitem = RepoSettlementBatal.FindByPK(model.Id);
                if (dbitem.IdSoKontrak == "" || dbitem.IdSoKontrak == null)
                {
                    Context.SalesOrder     dbso      = RepoSalesOrder.FindByPK(model.IdSalesOrder.Value);
                    Context.AdminUangJalan db        = RepoAdminUangJalan.FindByPK(dbso.AdminUangJalanId.Value);
                    Context.ERPConfig      erpConfig = RepoERPConfig.FindByFrist();
                    dbitem.Code = "SB-" + (dbso.SalesOrderOncallId.HasValue ? dbso.SalesOrderOncall.SONumber : dbso.SalesOrderProsesKonsolidasiId.HasValue ?
                                           dbso.SalesOrderProsesKonsolidasi.SONumber : dbso.SalesOrderPickupId.HasValue ? dbso.SalesOrderPickup.SONumber : dbso.SalesOrderKontrak.SONumber);
                    model.SetDb(dbitem);

                    //Jurnal Pengembalian Uang Jalan //(uang, dll dikembalikan utuh), mau utuh mau ngga, nominal cash yg dikembalikan mah ambil dari form :p
                    decimal nominalHutangUangJalanDriver = (model.KasAktual == null ? 0 : model.KasAktual.Value) + (model.TransferAktual == null ? 0 : model.TransferAktual.Value);
                    decimal nomDiakui  = (model.KasDiakui == null ? 0 : model.KasDiakui.Value) + (model.TransferDiakui == null ? 0 : model.TransferDiakui.Value) + (model.SolarDiakui == null ? 0 : model.SolarDiakui.Value) + (model.KapalDiakui == null ? 0 : model.KapalDiakui.Value);
                    decimal nomSelisih = (dbitem.KasSelisih == null ? 0 : dbitem.KasSelisih.Value) + (dbitem.TransferSelisih == null ? 0 : dbitem.TransferSelisih.Value) + (dbitem.KapalSelisih == null ? 0 : dbitem.KapalSelisih.Value);

                    nominalHutangUangJalanDriver += decimal.Parse(db.AdminUangJalanVoucherSpbu.Select(d => d.Value).Sum().ToString());
                    nominalHutangUangJalanDriver += decimal.Parse(db.AdminUangJalanVoucherKapal.Select(d => d.Value).Sum().ToString());
                    nominalHutangUangJalanDriver += db.KasbonDriver1 == null ? 0 : db.KasbonDriver1.Value;
                    nominalHutangUangJalanDriver += db.KlaimDriver1 == null ? 0 : db.KlaimDriver1.Value;
                    nominalHutangUangJalanDriver += decimal.Parse(db.AdminUangJalanPotonganDriver.Select(d => d.Value).Sum().ToString());
                    decimal?TotalBiaya = nomDiakui;
                    int     idx        = 2;
                    if (nomDiakui > 0)
                    {
                        Repoglt_det.saveFromAc(2, "SB-" + dbso.SalesOrderOncall.SONumber, nomDiakui, 0, Repoac_mstr.FindByPk(erpConfig.IdBiayaBatalJalan));//BIAYA BATAL JALAN
                    }
                    foreach (Context.AdminUangJalanVoucherSpbu aujvs in db.AdminUangJalanVoucherSpbu)
                    {
                        idx++;
                        if (model.SPBUKembali != null && model.SPBUKembali.Contains(aujvs.Keterangan))                                                                                //jurnal balik, ga jadi hutangnya
                        {
                            Repoglt_det.saveFromAc(idx, "SB-" + dbso.SalesOrderOncall.SONumber, aujvs.Value, 0, Repoac_mstr.FindByPk(RepoLookup.FindByName(aujvs.Keterangan).ac_id)); //HUTANG SPBU 34.171.04 Pangkalan 2 dan atau
                            TotalBiaya += aujvs.Value;
                        }
                        else //jadi hutang SPBU, masuk ke AP Inv
                        {
                            string           a        = aujvs.Keterangan;
                            string           username = UserPrincipal.username;
                            int?             vend     = RepoLookup.FindByName(aujvs.Keterangan).VendorId;
                            int              vendorId = RepoLookup.FindByName(aujvs.Keterangan).VendorId.Value;
                            Context.Customer cust     = RepoCustomer.FindByPK(RepoLookup.FindByName(aujvs.Keterangan).VendorId.Value);
                            Repogr_mstr.save(aujvs.Value, cust, username, dbitem.Code);
                        }
                    }
                    Repoglt_det.saveFromAc(idx, "SB-" + dbso.SalesOrderOncall.SONumber, dbitem.SolarSelisih, 0, Repoac_mstr.FindByPk(erpConfig.IdPiutangDriverBatalJalanSementaraSolar));
                    TotalBiaya += dbitem.SolarSelisih;
                    if (dbitem.KapalAktual > 0)
                    {
                        foreach (Context.AdminUangJalanVoucherKapal aujvs in db.AdminUangJalanVoucherKapal)
                        {
                            idx++;
                            Repoglt_det.saveFromAc(idx, "SB-" + dbso.SalesOrderOncall.SONumber, aujvs.Value, 0, Repoac_mstr.FindByPk(RepoLookup.FindByName(aujvs.Keterangan).ac_id));//HUTANG SPBU 34.171.04 Pangkalan 2 dan atau
                            TotalBiaya += aujvs.Value;
                        }
                    }
//                if (nomSelisih > 0){
                    idx++;
                    Repoglt_det.saveFromAc(idx, "SB-" + dbso.SalesOrderOncall.SONumber, nomSelisih, 0, Repoac_mstr.FindByPk(erpConfig.IdPiutangDriverBatalJalan), "Selisih Kas/Transfer/Kapal");//PIUTANG DRIVER BATAL JALAN
                    TotalBiaya += nomSelisih;
                    //              }
                    //mau utuh mau ngga, nominal cash yg dikembalikan mah ambil dari form :p
                    Repoglt_det.saveFromAc(2, "SB-" + dbso.SalesOrderOncall.SONumber, model.KasAktual, 0, Repoac_mstr.FindByPk(RepoMasterPool.FindByIPAddress().IdCreditCash)); //BCA Audy 386-7957777 atau
                    Repoglt_det.saveFromAc(2, "SB-" + dbso.SalesOrderOncall.SONumber, model.TransferAktual, 0, Repoac_mstr.FindByPk(dbitem.IdCreditTf));                        //BCA Audy 386-7957777 atau
                    TotalBiaya += (model.KasAktual + model.TransferAktual);
                    Repoglt_det.saveFromAc(1, "SB-" + dbso.SalesOrderOncall.SONumber, 0, TotalBiaya, Repoac_mstr.FindByPk(erpConfig.IdAUJCredit));                              //Hutang Uang Jalan Driver

                    RepoSettlementBatal.save(dbitem, UserPrincipal.id, "Settlement Batal");
                    try {//masuklah ke saldo piutang driver, save to pby_mstr&det
                        var glt_oid = Guid.NewGuid().ToString();
                        Repopbyd_det.saveMstr(glt_oid, dbitem.Code, erpConfig.IdAUJCredit.Value, "Settlement Batal " + dbitem.Code, db.IdDriver1.Value + 7000000);
                        Repopbyd_det.save(
                            glt_oid, dbitem.Code, erpConfig.IdAUJCredit.Value, "Settlement Batal " + dbitem.Code, db.IdDriver1.Value + 7000000,
                            erpConfig.IdAUJCredit.Value, Repoac_mstr.FindByPk(erpConfig.IdAUJCredit).ac_name, 0
                            );
                    }
                    catch (Exception e) {}
                }
                else
                {
                    Context.SalesOrder dbso = RepoSalesOrder.FindByPK(model.IdSalesOrder.Value);
                    Context.SalesOrderKontrakListSo dbKontrak = dbso.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Id == int.Parse(dbitem.IdSoKontrak)).FirstOrDefault();
                    Context.AdminUangJalan          db        = RepoAdminUangJalan.FindByPK(dbKontrak.IdAdminUangJalan.Value);
                    Context.ERPConfig erpConfig = RepoERPConfig.FindByFrist();
                    dbitem.Code = "SB-" + (dbso.SalesOrderOncallId.HasValue ? dbso.SalesOrderOncall.SONumber : dbso.SalesOrderProsesKonsolidasiId.HasValue ?
                                           dbso.SalesOrderProsesKonsolidasi.SONumber : dbso.SalesOrderPickupId.HasValue ? dbso.SalesOrderPickup.SONumber : dbso.SalesOrderKontrak.SONumber);
                    model.SetDb(dbitem);

                    //Jurnal Pengembalian Uang Jalan //(uang, dll dikembalikan utuh), mau utuh mau ngga, nominal cash yg dikembalikan mah ambil dari form :p
                    decimal nominalHutangUangJalanDriver = model.KasAktual ?? model.KasAktual.Value + model.TransferAktual ?? model.TransferAktual.Value;
                    decimal nomDiakui  = model.KasDiakui ?? model.KasDiakui.Value + model.TransferDiakui ?? model.TransferDiakui.Value + model.SolarDiakui ?? model.SolarDiakui.Value + model.KapalDiakui ?? model.KapalDiakui.Value;
                    decimal nomSelisih = dbitem.KasSelisih.Value + dbitem.TransferSelisih.Value + dbitem.KapalSelisih.Value;

                    nominalHutangUangJalanDriver += decimal.Parse(db.AdminUangJalanVoucherSpbu.Select(d => d.Value).Sum().ToString());
                    nominalHutangUangJalanDriver += decimal.Parse(db.AdminUangJalanVoucherKapal.Select(d => d.Value).Sum().ToString());
                    nominalHutangUangJalanDriver += db.KasbonDriver1 == null ? 0 : db.KasbonDriver1.Value;
                    nominalHutangUangJalanDriver += db.KlaimDriver1 == null ? 0 : db.KlaimDriver1.Value;
                    nominalHutangUangJalanDriver += decimal.Parse(db.AdminUangJalanPotonganDriver.Select(d => d.Value).Sum().ToString());
                    int idx = 2;
                    Repoglt_det.saveFromAc(1, "SB-" + dbKontrak.NoSo, 0, nominalHutangUangJalanDriver, Repoac_mstr.FindByPk(erpConfig.IdAUJCredit));//Hutang Uang Jalan Driver
                    if (nomDiakui > 0)
                    {
                        Repoglt_det.saveFromAc(2, "SB-" + dbKontrak.NoSo, nomDiakui, 0, Repoac_mstr.FindByPk(erpConfig.IdBiayaBatalJalan));//BIAYA BATAL JALAN
                    }
                    foreach (Context.AdminUangJalanVoucherSpbu aujvs in db.AdminUangJalanVoucherSpbu)
                    {
                        idx++;
                        if (model.SPBUKembali.Contains(aujvs.Keterangan))
                        {
                            Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, aujvs.Value, 0, Repoac_mstr.FindByPk(RepoLookup.FindByName(aujvs.Keterangan).ac_id));//HUTANG SPBU 34.171.04 Pangkalan 2 dan atau
                        }
                        else
                        {
                            Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, aujvs.Value, 0, Repoac_mstr.FindByPk(erpConfig.IdPiutangDriverBatalJalanSementaraSolar), "Voucher SPBU " + aujvs.Keterangan);
                        }
                    }
                    foreach (Context.AdminUangJalanVoucherKapal aujvs in db.AdminUangJalanVoucherKapal)
                    {
                        idx++;
                        Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, aujvs.Value, 0, Repoac_mstr.FindByPk(RepoLookup.FindByName(aujvs.Keterangan).ac_id));//HUTANG SPBU 34.171.04 Pangkalan 2 dan atau
                    }
//                if (nomSelisih > 0){
                    idx++;
                    Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, nomSelisih, 0, Repoac_mstr.FindByPk(erpConfig.IdPiutangDriverBatalJalan), "Selisih Kas/Transfer/Kapal");//PIUTANG DRIVER BATAL JALAN
                    //              }
                    if (db.PotonganB > 0)
                    {
                        idx++;
                        Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, db.PotonganB, 0, Repoac_mstr.FindByPk(erpConfig.IdPiutangDriverBatalJalan));//PIUTANG DRIVER BATAL JALAN
                    }
                    if (db.PotonganP > 0)
                    {
                        idx++;
                        Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, db.PotonganP, 0, Repoac_mstr.FindByPk(erpConfig.IdPiutangDriverPribadi));//PIUTANG DRIVER BATAL JALAN / SEMENTARA TUNAI
                    }
                    if (db.PotonganK > 0)
                    {
                        idx++;
                        Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, db.PotonganK, 0, Repoac_mstr.FindByPk(erpConfig.IdPendapatanPengembalianPiutangDriver));
                    }
                    if (db.PotonganT > 0)
                    {
                        idx++;
                        Repoglt_det.saveFromAc(idx, "SB-" + dbKontrak.NoSo, db.PotonganT, 0, Repoac_mstr.FindByPk(erpConfig.IdTabunganDriver));
                    }

                    //mau utuh mau ngga, nominal cash yg dikembalikan mah ambil dari form :p
                    Repoglt_det.saveFromAc(2, "SB-" + dbKontrak.NoSo, model.KasAktual, 0, Repoac_mstr.FindByPk(RepoMasterPool.FindByIPAddress().IdCreditCash));            //BCA Audy 386-7957777 atau
                    Repoglt_det.saveFromAc(2, "SB-" + dbKontrak.NoSo, model.TransferAktual, 0, Repoac_mstr.FindByPk(db.AdminUangJalanUangTf.FirstOrDefault().IdCreditTf)); //BCA Audy 386-7957777 atau

                    RepoSettlementBatal.save(dbitem, UserPrincipal.id, "Settlement Batal");
                    try {//masuklah ke saldo piutang driver, save to pby_mstr&det
                        var glt_oid = Guid.NewGuid().ToString();
                        Repopbyd_det.saveMstr(glt_oid, dbitem.Code, erpConfig.IdAUJCredit.Value, "Settlement Batal " + dbitem.Code, db.IdDriver1.Value + 7000000);
                        Repopbyd_det.save(
                            glt_oid, dbitem.Code, erpConfig.IdAUJCredit.Value, "Settlement Batal " + dbitem.Code, db.IdDriver1.Value + 7000000,
                            erpConfig.IdAUJCredit.Value, Repoac_mstr.FindByPk(erpConfig.IdAUJCredit).ac_name, 0
                            );
                    }
                    catch (Exception e) {}
                }
                return(RedirectToAction("Index"));
            }

            return(View("Form", model));
        }
Example #12
0
        public string GetDetailSo(int idSo, int IdSoKontrak = 0)
        {
            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(idSo);

            if (dbitem.SalesOrderOncallId.HasValue)
            {
                return(new JavaScriptSerializer().Serialize(
                           new
                {
                    driverId1 = dbitem.SalesOrderOncall.Driver1Id,
                    kodeDriver1 = dbitem.SalesOrderOncall.Driver1.KodeDriver,
                    namaDriver1 = dbitem.SalesOrderOncall.Driver1.NamaDriver,
                    driverId2 = dbitem.SalesOrderOncall.Driver2Id,
                    kodeDriver2 = dbitem.SalesOrderOncall.Driver2Id.HasValue ? dbitem.SalesOrderOncall.Driver1.KodeDriver : "",
                    namaDriver2 = dbitem.SalesOrderOncall.Driver2Id.HasValue ? dbitem.SalesOrderOncall.Driver1.NamaDriver : "",
                    dataTruckId = dbitem.SalesOrderOncall.IdDataTruck,
                    vehicleNo = dbitem.SalesOrderOncall.DataTruck.VehicleNo,
                    jenisTruck = dbitem.SalesOrderOncall.DataTruck.JenisTrucks.StrJenisTruck,
                    jenisPendingin = dbitem.SalesOrderOncall.DataTruck.DataPendingin.Count > 0 ? dbitem.SalesOrderOncall.DataTruck.DataPendingin.OrderBy(p => p.Id).Last().Model : "",
                }));
            }
            else if (dbitem.SalesOrderPickupId.HasValue)
            {
                return(new JavaScriptSerializer().Serialize(
                           new
                {
                    driverId1 = dbitem.SalesOrderPickup.Driver1Id,
                    kodeDriver1 = dbitem.SalesOrderPickup.Driver1.KodeDriver,
                    namaDriver1 = dbitem.SalesOrderPickup.Driver1.NamaDriver,
                    driverId2 = dbitem.SalesOrderPickup.Driver2Id,
                    kodeDriver2 = dbitem.SalesOrderPickup.Driver2Id.HasValue ? dbitem.SalesOrderPickup.Driver1.KodeDriver : "",
                    namaDriver2 = dbitem.SalesOrderPickup.Driver2Id.HasValue ? dbitem.SalesOrderPickup.Driver1.NamaDriver : "",
                    dataTruckId = dbitem.SalesOrderPickup.IdDataTruck,
                    vehicleNo = dbitem.SalesOrderPickup.DataTruck.VehicleNo,
                    jenisTruck = dbitem.SalesOrderPickup.DataTruck.JenisTrucks.StrJenisTruck,
                    jenisPendingin = dbitem.SalesOrderPickup.DataTruck.DataPendingin.Count > 0 ? dbitem.SalesOrderPickup.DataTruck.DataPendingin.OrderBy(p => p.Id).Last().Model : "",
                }));
            }
            else if (dbitem.SalesOrderProsesKonsolidasiId.HasValue)
            {
                return(new JavaScriptSerializer().Serialize(
                           new
                {
                    driverId1 = dbitem.SalesOrderProsesKonsolidasi.Driver1Id,
                    kodeDriver1 = dbitem.SalesOrderProsesKonsolidasi.Driver1.KodeDriver,
                    namaDriver1 = dbitem.SalesOrderProsesKonsolidasi.Driver1.NamaDriver,
                    driverId2 = dbitem.SalesOrderProsesKonsolidasi.Driver2Id,
                    kodeDriver2 = dbitem.SalesOrderProsesKonsolidasi.Driver2Id.HasValue ? dbitem.SalesOrderProsesKonsolidasi.Driver1.KodeDriver : "",
                    namaDriver2 = dbitem.SalesOrderProsesKonsolidasi.Driver2Id.HasValue ? dbitem.SalesOrderProsesKonsolidasi.Driver1.NamaDriver : "",
                    dataTruckId = dbitem.SalesOrderProsesKonsolidasi.IdDataTruck,
                    vehicleNo = dbitem.SalesOrderProsesKonsolidasi.DataTruck.VehicleNo,
                    jenisTruck = dbitem.SalesOrderProsesKonsolidasi.DataTruck.JenisTrucks.StrJenisTruck,
                    jenisPendingin = dbitem.SalesOrderProsesKonsolidasi.DataTruck.DataPendingin.Count > 0 ? dbitem.SalesOrderProsesKonsolidasi.DataTruck.DataPendingin.OrderBy(p => p.Id).Last().Model : "",
                }));
            }
            else if (IdSoKontrak != 0)
            {
                Context.SalesOrderKontrakListSo dbsoDummy = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Id == IdSoKontrak).FirstOrDefault();
                return(new JavaScriptSerializer().Serialize(
                           new
                {
                    driverId1 = dbsoDummy.Driver1Id,
                    kodeDriver1 = dbsoDummy.Driver1.KodeDriver,
                    namaDriver1 = dbsoDummy.Driver1.NamaDriver,
                    driverId2 = dbsoDummy.Driver2Id,
                    kodeDriver2 = dbsoDummy.Driver2Id.HasValue ? dbsoDummy.Driver1.KodeDriver : "",
                    namaDriver2 = dbsoDummy.Driver2Id.HasValue ? dbsoDummy.Driver1.NamaDriver : "",
                    dataTruckId = dbsoDummy.IdDataTruck,
                    vehicleNo = dbsoDummy.DataTruck.VehicleNo,
                    jenisTruck = dbsoDummy.DataTruck.JenisTrucks.StrJenisTruck,
                    jenisPendingin = dbsoDummy.DataTruck.DataPendingin.Count > 0 ? dbsoDummy.DataTruck.DataPendingin.OrderBy(p => p.Id).Last().Model : "",
                }));
            }
            return("");
        }
Example #13
0
 public SolarInap(Context.SolarInap dbitem, Context.SalesOrderKontrakListSo sokontrak = null)
 {
     Id   = dbitem.Id;
     IdSO = dbitem.IdSO;
     KasirDiberikanUntuk = dbitem.SO.SalesOrderOncallId.HasValue ? dbitem.SO.SalesOrderOncall.Driver1.NamaDriver : dbitem.SO.SalesOrderProsesKonsolidasiId.HasValue ? dbitem.SO.SalesOrderProsesKonsolidasi.Driver1.NamaDriver : dbitem.SO.SalesOrderPickupId.HasValue ? dbitem.SO.SalesOrderPickup.Driver1.NamaDriver : "";
     Status              = dbitem.StepKe == 1 ? "Marketing" : dbitem.StepKe == 2 ? "Finance" : dbitem.StepKe == 3 ? (dbitem.AktualCash > 0 && dbitem.AktualTransfer > 0 ? "Sudah" : dbitem.AktualCash > 0 ? (dbitem.Transfer > 0 ? "Kasir Transfer" : "Sudah") : dbitem.AktualTransfer > 0 ? (dbitem.Cash > 0 ? "Kasir Kas" : "Sudah") : "Kasir") : dbitem.StepKe == 4 ? "Batal Inap" : "Sudah";
     TanggalMuat         = dbitem.SO.SalesOrderOncallId.HasValue ? dbitem.SO.SalesOrderOncall.TanggalMuat : dbitem.SO.SalesOrderProsesKonsolidasiId.HasValue ? dbitem.SO.SalesOrderProsesKonsolidasi.TanggalMuat : dbitem.SO.SalesOrderPickup.TanggalPickup;
     TanggalDari         = (dbitem.TanggalDari.Date.ToString().Split())[0];
     TanggalHingga       = (dbitem.TanggalHingga.Date.ToString().Split())[0];
     NilaiYgDiajukan     = dbitem.NilaiYgDiajukan;
     CashBack            = dbitem.CashBack;
     KeteranganAdmin     = dbitem.KeteranganAdmin;
     KeteranganMarketing = dbitem.KeteranganMarketing;
     KeteranganOperation = dbitem.KeteranganOperation;
     KeteranganKasirCash = dbitem.KeteranganKasirCash;
     Nominal             = dbitem.Nominal;
     StatusTagihan       = dbitem.StatusTagihan == null ? "Negosiasi" : dbitem.StatusTagihan;
     IdDriver            = dbitem.IdDriver;
     Cash        = dbitem.Cash;
     Transfer    = dbitem.Transfer;
     TglCash     = (dbitem.TglCash.Date.ToString().Split())[0];
     TglTransfer = (dbitem.TglTransfer.Date.ToString().Split())[0];
     DititipKe   = dbitem.DititipKe;
     IdAtm       = dbitem.IdAtm;
     StepKe      = dbitem.StepKe;
     TanggalTiba = dbitem.TanggalTiba;
     JamTiba     = dbitem.JamTiba;
     if (dbitem.IdAtm.HasValue)
     {
         AtasNama = dbitem.Atm.AtasNama;
         BankNama = dbitem.Atm.LookupCodeBank.Nama;
         NoRek    = dbitem.Atm.NoRekening;
     }
     if (dbitem.SO.SalesOrderOncallId.HasValue)
     {
         NoSO             = dbitem.SO.SalesOrderOncall.SONumber;
         VehicleNo        = dbitem.SO.SalesOrderOncall.DataTruck.VehicleNo;
         NamaDriver       = dbitem.SO.SalesOrderOncall.Driver1.NamaDriver;
         KodeDriver       = dbitem.SO.SalesOrderOncall.Driver1.KodeDriver;
         JenisTruk        = dbitem.SO.SalesOrderOncall.JenisTrucks.StrJenisTruck;
         Customer         = dbitem.SO.SalesOrderOncall.Customer.CustomerNama;
         TanggalBerangkat = dbitem.SO.SalesOrderOncall.TanggalMuat;
     }
     else if (dbitem.SO.SalesOrderPickupId.HasValue)
     {
         NoSO       = dbitem.SO.SalesOrderPickup.SONumber;
         VehicleNo  = dbitem.SO.SalesOrderPickup.DataTruck.VehicleNo;
         NamaDriver = dbitem.SO.SalesOrderPickup.Driver1.NamaDriver;
         KodeDriver = dbitem.SO.SalesOrderPickup.Driver1.KodeDriver;
         JenisTruk  = dbitem.SO.SalesOrderPickup.JenisTrucks.StrJenisTruck;
         Customer   = dbitem.SO.SalesOrderPickup.Customer.CustomerNama;
     }
     else if (dbitem.SO.SalesOrderProsesKonsolidasiId.HasValue)
     {
         NoSO             = dbitem.SO.SalesOrderProsesKonsolidasi.SONumber;
         VehicleNo        = dbitem.SO.SalesOrderProsesKonsolidasi.DataTruck.VehicleNo;
         NamaDriver       = dbitem.SO.SalesOrderProsesKonsolidasi.Driver1.NamaDriver;
         KodeDriver       = dbitem.SO.SalesOrderProsesKonsolidasi.Driver1.KodeDriver;
         JenisTruk        = dbitem.SO.SalesOrderProsesKonsolidasi.JenisTrucks.StrJenisTruck;
         TanggalBerangkat = dbitem.SO.SalesOrderProsesKonsolidasi.TanggalMuat;
     }
     else if (sokontrak != null)
     {
         NoSO             = sokontrak.NoSo;
         VehicleNo        = sokontrak.DataTruck.VehicleNo;
         NamaDriver       = sokontrak.Driver1.NamaDriver;
         KodeDriver       = sokontrak.Driver1.KodeDriver;
         JenisTruk        = sokontrak.DataTruck.JenisTrucks.StrJenisTruck;
         TanggalBerangkat = sokontrak.MuatDate;
     }
 }
        public JsonResult Proses(string listSo, int idSo)
        {
            ResponeModel response = new ResponeModel(true);

            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(idSo);
            List <ListTruckSo> res    = JsonConvert.DeserializeObject <ListTruckSo[]>(listSo).ToList();

            //int urutListSo = (RepoSalesOrderKontrakListSo.getUrutanProses(dbitem.SalesOrderKontrakId)) + 1;
            foreach (ListTruckSo item in res)
            {
                Context.SalesOrderKontrakListSo dblist = RepoSalesOrderKontrakListSo.FindByPK(item.Id);
                dblist.IdDataTruck = item.IdTruk == null ? null : item.IdTruk;
                dblist.Driver1Id   = item.IdDriver1 == null ? null : item.IdDriver1;
                dblist.Driver2Id   = item.IdDriver2 == null ? null : item.IdDriver2;
                dblist.IsProses    = true;
                dblist.Status      = "save konfirmasi";
                try
                {
                    RepoSalesOrderKontrakListSo.save(dblist);
                    if (dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Any(s => s.IsProses == false))
                    {
                        dbitem.Status = "draft konfirmasi";
                    }
                    else
                    {
                        dbitem.Status = "save konfirmasi";
                    }
                    RepoSalesOrder.save(dbitem);
                }
                catch (Exception e)
                {
                    response.Success = false;
                    response.Message = e.Message;
                }
            }

            var data = res.GroupBy(d => d.IdTruk).Select(grp => grp.ToList());

            foreach (var item in data)
            {
                foreach (var item2 in item)
                {
                    Context.SalesOrderKontrakListSo dblist = RepoSalesOrderKontrakListSo.FindByPK(item2.Id);
                    dblist.IdDataTruck = item2.IdTruk == null ? null : item2.IdTruk;
                    dblist.Driver1Id   = item2.IdDriver1 == null ? null : item2.IdDriver1;
                    dblist.Driver2Id   = item2.IdDriver2 == null ? null : item2.IdDriver2;
                    dblist.IsProses    = true;
                    //dblist.Urutan = urutListSo;
                    dblist.Status = "save konfirmasi";

                    try
                    {
                        RepoSalesOrderKontrakListSo.save(dblist);
                        if (dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Any(s => s.IsProses == false))
                        {
                            dbitem.Status = "draft konfirmasi";
                        }
                        else
                        {
                            dbitem.Status = "save konfirmasi";
                        }
                        RepoSalesOrder.save(dbitem);
                    }
                    catch (Exception e)
                    {
                        response.Success = false;
                        response.Message = e.Message;
                    }
                }
                //urutListSo++;
            }

            return(Json(response));
        }
        public ActionResult EditKontrak(AdminUangJalan model, string Keterangan)
        {
            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.IdSalesOrder.Value);
            Context.SalesOrderKontrakListSo sokontrak = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Id == int.Parse(model.ListIdSo)).FirstOrDefault();
            int jumSo = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.IdAdminUangJalan == sokontrak.IdAdminUangJalan && d.IsBatalTruck != true).Count();

            Context.BatalOrder     batalOrder = new Context.BatalOrder();
            Context.AdminUangJalan dbauj      = sokontrak.AdminUangJalan;

            //cek status na
            if (sokontrak.Status == "dispatched")
            {
                Context.SettlementBatal dbsettlement = new Context.SettlementBatal();
                //ambil data
                dbsettlement.IdSalesOrder = model.IdSalesOrder;
                dbsettlement.IdSoKontrak  = model.ListIdSo;
                if (dbauj.AdminUangJalanUangTf.Any(d => d.Keterangan == "Tunai"))
                {
                    dbsettlement.KasDiterima = dbauj.AdminUangJalanUangTf.Where(d => d.Keterangan == "Tunai").FirstOrDefault().JumlahTransfer / jumSo;
                }
                if (dbauj.AdminUangJalanUangTf.Any(d => d.Keterangan.Contains("Transfer")))
                {
                    dbsettlement.TransferDiterima = dbauj.AdminUangJalanUangTf.Where(d => d.Keterangan.Contains("Transfer")).Sum(t => t.JumlahTransfer) / jumSo;
                }
                dbsettlement.SolarDiterima = dbauj.AdminUangJalanVoucherSpbu.Sum(s => s.Value) / jumSo;
                dbsettlement.KapalDiterima = dbauj.AdminUangJalanVoucherKapal.Sum(s => s.Value) / jumSo;
                dbsettlement.JenisBatal    = "Batal Truk";
                dbsettlement.IdDriver      = sokontrak.Driver1Id;
                RepoSettBatal.save(dbsettlement, UserPrincipal.id, "Batal Truk");
            }
            else if (sokontrak.Status == "admin uang jalan")
            {
                foreach (Context.AdminUangJalanUangTf dbUang in dbauj.AdminUangJalanUangTf)
                {
                    dbUang.Value = dbUang.Value / jumSo * (jumSo - 1);
                    RepoSalesOrder.saveUangTf(dbUang);
                }
            }

            foreach (var trukItem in dbitem.SalesOrderKontrak.SalesOrderKontrakTruck.Where(d => d.DataTruckId == sokontrak.IdDataTruck).ToList())
            {
                trukItem.DataTruckId = null;
                trukItem.IdDriver1   = null;
                trukItem.IdDriver2   = null;
            }
            sokontrak.IsProses     = false;
            sokontrak.Urutan       = 0;
            sokontrak.IsBatalTruck = true;
            sokontrak.IdDataTruck  = null;
            sokontrak.Driver1Id    = null;
            sokontrak.Driver2Id    = null;
            sokontrak.Status       = "draft planning";

            batalOrder.IdSalesOrder = dbitem.Id;
            batalOrder.IdSoKontrak  = model.ListIdSo;
            batalOrder.Keterangan   = Keterangan;
            batalOrder.ModifiedDate = DateTime.Now;
            batalOrder.IsBatalTruk  = true;

            RepoSalesOrder.save(dbitem);
            RepoBatalOrder.save(batalOrder, UserPrincipal.id);

            ViewBag.status = "batal order";
            return(RedirectToAction("index", "ListOrder"));
        }