public void saveSoMstr(SalesOrder soitem, string username, string guid, int customerId, decimal harga) { Context.so_mstr model = new Context.so_mstr(); Context.Customer dbCustomer = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.Customer : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.Customer : soitem.SalesOrderPickup.Customer; model.so_oid = guid; model.so_dom_id = 1; model.so_en_id = 1; model.so_add_by = username; model.so_add_date = DateTime.Now; model.so_upd_by = username; model.so_upd_date = DateTime.Now; model.so_code = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.SONumber : soitem.SalesOrderProsesKonsolidasiId.HasValue ? soitem.SalesOrderProsesKonsolidasi.SONumber : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.SONumber : soitem.SalesOrderPickup.SONumber; model.so_ptnr_id_sold = customerId; model.so_ptnr_id_bill = customerId; model.so_date = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.TanggalMuat.Value : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.TanggalPickup : soitem.SalesOrderPickup.TanggalPickup; model.so_credit_term = 991025; //dbCustomer == null ? 0 : dbCustomer.CustomerCreditStatus.FirstOrDefault().ValueOverdue2.Value;//, Customer Term of Payment model.so_taxable = dbCustomer != null && dbCustomer.CustomerPPN != null && dbCustomer.CustomerPPN.FirstOrDefault().PPN == true ? "Y" : "N"; // Checkbox model.so_tax_class = 0; //, from code_mstr where code_field ~~* 'taxclass_mstr' model.so_si_id = 1; model.so_type = "R"; // model.so_sales_person = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.Driver1Id.Value : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.Driver1Id.Value : soitem.SalesOrderPickup.Driver1Id.Value;//0;//, from ptnr_mstr where ptnr_is_member ~~* 'Y' model.so_pi_id = 101; //, from pi_mstr model.so_pay_type = "9942"; //, from code_mstr where code_field ~~* 'payment_type' model.so_pay_method = 99290; //"0";// , from code_mstr where code_field ~~* 'payment_methode' model.so_ar_ac_id = 0; //, From pla_mstr.pla_ac_id partnumber --> pt_mstr.pt_pl_id =pla_mstr.pl_id) /*model.so_ar_sb_id = 0;//, From pla_mstr.pla_sb_id partnumber --> pt_mstr.pt_pl_id =pla_mstr.pl_id) * model.so_ar_cc_id = 0;// From pla_mstr.pla_cc_id partnumber --> pt_mstr.pt_pl_id =pla_mstr.pl_id) */model.so_dp = 0;//, nominal yg didapat dr form InputDP model.so_disc_header = 0; model.so_total = harga; //, Total SO model.so_tran_id = 0; model.so_trans_id = "D"; model.so_dt = DateTime.Now; model.so_cu_id = 1; //, from cu_mstr.cu_id currency) model.so_total_ppn = 0; //, Total PPN From Detail SO model.so_total_pph = 0; //, Total PPH From Detail SO model.so_payment = 0; model.so_exc_rate = 1; //, kurs mata uang From exr_rate current Date and Current Currency model.so_tax_inc = "N"; //, Y or N termasuk pajak atau belum, checkbox) model.so_cons = "N"; //, Y or N konsinyasi atau bukan, checkbox) model.so_terbilang = "N"; //, Terbilang dalam bahasa indonesia model.so_bk_id = 0; //, from bk_mstr.bk_id Nama Bank) model.so_interval = 1; //, from code_mstr where code_field ~~* 'payment_type' kolom code_user_1 model.so_ppn_type = "A"; //, E=PPN BEBAS, A = PPN BAYAR, N = NON model.so_branch_id = 10001; //, SO Branch from branch_mstr.branch_id) model.so_group_id = 991414; //, from code_mstr where code_field ~~* 'so_group' model.so_exc_rate_pi = 0; model.so_prct_limit_return = 0; model.so_disc_type = 0; model.so_departure_date = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.TanggalMuat : soitem.SalesOrderProsesKonsolidasiId.HasValue ? soitem.SalesOrderProsesKonsolidasi.TanggalMuat : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.TanggalPickup : soitem.SalesOrderPickup.TanggalPickup; model.so_start_route = "0"; //, Kota Awal Berangkat from code_mstr where code_field ~~* 'route_mstr' model.so_destination_route = "0"; // kota Tujuan from code_mstr where code_field ~~* 'route_mstr'*/ context.so_mstr.Add(model); context.SaveChanges(); }
public void saveSoMstr(SalesOrder soitem, string username) { Context.so_mstr model = new Context.so_mstr(); Context.Customer dbCustomer = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.Customer : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.Customer : soitem.SalesOrderPickup.Customer; model.so_oid = Guid.NewGuid().ToString(); model.so_dom_id = 1; model.so_en_id = 1; model.so_add_by = username; model.so_add_date = DateTime.Now; model.so_upd_by = username; model.so_upd_date = DateTime.Now; model.so_code = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.SONumber : soitem.SalesOrderProsesKonsolidasiId.HasValue ? soitem.SalesOrderProsesKonsolidasi.SONumber : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.SONumber : soitem.SalesOrderPickup.SONumber; model.so_ptnr_id_sold = dbCustomer == null ? 0 : dbCustomer.Id; model.so_ptnr_id_bill = dbCustomer == null ? 0 : dbCustomer.Id; model.so_date = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.TanggalOrder : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.TanggalOrder : soitem.SalesOrderPickup.TanggalOrder; //public string so_credit_term { get; set; }//, Customer Term of Payment model.so_taxable = dbCustomer != null && dbCustomer.CustomerPPN != null && dbCustomer.CustomerPPN.FirstOrDefault().PPN == true ? "Y" : "N"; // Checkbox model.so_tax_class = 0; //, from code_mstr where code_field ~~* 'taxclass_mstr' model.so_si_id = 1; model.so_type = "R"; model.so_sales_person = 0; //, from ptnr_mstr where ptnr_is_member ~~* 'Y' model.so_pi_id = 0; //, from pi_mstr /*model.so_pay_type = 0;//, from code_mstr where code_field ~~* 'payment_type' * model.so_pay_method = 0;// , from code_mstr where code_field ~~* 'payment_methode' * model.so_ar_ac_id = 0; //, From pla_mstr.pla_ac_id partnumber --> pt_mstr.pt_pl_id =pla_mstr.pl_id) * model.so_ar_sb_id = 0;//, From pla_mstr.pla_sb_id partnumber --> pt_mstr.pt_pl_id =pla_mstr.pl_id) * model.so_ar_cc_id = 0;// From pla_mstr.pla_cc_id partnumber --> pt_mstr.pt_pl_id =pla_mstr.pl_id) * model.so_dp = 0;*/ //, nominal yg didapat dr form InputDP model.so_disc_header = 0; model.so_total = 0; //, Total SO model.so_tran_id = 0; model.so_trans_id = "D"; model.so_trans_rmks = "0";//, SO Approval Remarks Null) /* model.so_current_route = 0;//, Current City Route * model.so_next_route = 0;//, Next City Route * model.so_dt = DateTime.now; * model.so_cu_id = 0;//, from cu_mstr.cu_id currency) * model.so_total_ppn = 0;//, Total PPN From Detail SO * model.so_total_pph = 0;//, Total PPH From Detail SO * model.so_payment = 0; * model.so_exc_rate = 0;//, kurs mata uang From exr_rate current Date and Current Currency * model.so_tax_inc = 0;//, Y or N termasuk pajak atau belum, checkbox) * model.so_cons = 0;//, Y or N konsinyasi atau bukan, checkbox) * model.so_terbilang = 0;//, Terbilang dalam bahasa indonesia * model.so_bk_id = 0;//, from bk_mstr.bk_id Nama Bank) * model.so_interval = 0;//, from code_mstr where code_field ~~* 'payment_type' kolom code_user_1 * model.so_ppn_type = 0;//, E=PPN BEBAS, A = PPN BAYAR, N = NON * model.so_branch_id = 0;//, SO Branch from branch_mstr.branch_id) * model.so_group_id = 0;//, from code_mstr where code_field ~~* 'so_group' * model.so_exc_rate_pi = 0; * model.so_prct_limit_return = 0; * model.so_disc_type = 0; * model.so_vehicle = model.DataTruck.VehicleNo; * model.so_departure_date = soitem.SalesOrderOncallId.HasValue ? soitem.SalesOrderOncall.TanggalMuat : soitem.SalesOrderProsesKonsolidasiId.HasValue ? soitem.SalesOrderProsesKonsolidasi.TanggalMuat : soitem.SalesOrderPickupId.HasValue ? soitem.SalesOrderPickup.TanggalMuat : soitem.SalesOrderPickup.TanggalMuat; * model.so_start_route = 0;//, Kota Awal Berangkat from code_mstr where code_field ~~* 'route_mstr' * model.so_destination_route = 0;// kota Tujuan from code_mstr where code_field ~~* 'route_mstr'*/ context.so_mstr.Add(model); context.SaveChanges(); }
public ActionResult EditOncall(SalesOrderOncall model, string btnsave) { //validasi manual bool palid = true; int urutan = 1; if (btnsave != "draft" && model.Status != "draft") { if (!model.IdDataTruck.HasValue) { ModelState.AddModelError("IdDataTruck", "Truk harus diisi."); palid = false; } if (!model.Driver1Id.HasValue || model.Driver1Id.Value == 0) { ModelState.AddModelError("Driver1Id", "Driver harus diisi."); palid = false; } if (model.Driver1Id != null) { Context.Driver item = RepoDriver.FindAll().Where(d => d.Id == model.Driver1Id.Value).FirstOrDefault(); List <Context.SalesOrder> dbso = RepoSalesOrder.FindAll().ToList(); List <Context.SettlementBatal> dbsb = RepoSettlementBatal.FindAll().Where(s => s.IsProses == false).ToList(); Driver driver = new Driver(item, dbso, dbsb); Context.SalesOrder dbsoDriver = RepoSalesOrder.FindAll().Where(d => (d.Status == "save" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == model.Driver1Id || d.SalesOrderOncall.Driver2Id == model.Driver1Id)) || (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == model.Driver1Id || d.SalesOrderPickup.Driver2Id == model.Driver1Id)) || (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == model.Driver1Id || d.SalesOrderProsesKonsolidasi.Driver2Id == model.Driver1Id)) ) ).FirstOrDefault(); if (driver.StatusSo != "Available" && dbsoDriver != null && RepoSalesOrder.FindArea(dbsoDriver.SalesOrderOncall.IdDaftarHargaItem.Value) != "YES") { List <Context.SalesOrder> dbsoDriverList = RepoSalesOrder.FindAll().Where(d => (d.Status == "save" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == model.Driver1Id || d.SalesOrderOncall.Driver2Id == model.Driver1Id)) || (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == model.Driver1Id || d.SalesOrderPickup.Driver2Id == model.Driver1Id)) || (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == model.Driver1Id || d.SalesOrderProsesKonsolidasi.Driver2Id == model.Driver1Id)) ) ).ToList(); urutan = dbsoDriver.urutan + 1; //SO yg sdh jalan Context.Rute rute = RepoSalesOrder.FindRute(dbsoDriver.SalesOrderOncall.IdDaftarHargaItem.Value); int waktuKerja = int.Parse(rute.WaktuKerja.ToString()); //SO yg sedang diplanning Context.SalesOrder so = RepoSalesOrder.FindByOnCall(model.SalesOrderId.Value); Context.Rute rutePlanning = null; if (so != null && so.SalesOrderOncall != null && so.SalesOrderOncall.IdDaftarHargaItem != null) { rutePlanning = RepoSalesOrder.FindRute(so.SalesOrderOncall.IdDaftarHargaItem.Value); int waktuKerjaPlanning = int.Parse(rutePlanning.WaktuKerja.ToString()); bool used_at_that_date = dbsoDriverList.Any(d => DateTime.Parse(d.SalesOrderOncall.TanggalMuat.ToString()).AddDays(waktuKerja) >= model.TanggalMuat || DateTime.Parse(d.SalesOrderOncall.TanggalMuat.ToString()) <= DateTime.Parse(model.TanggalMuat.ToString()).AddDays(waktuKerja) ); if (used_at_that_date) { ModelState.AddModelError("Driver1Id", "Driver tidak tersedia, harap pilih driver lain."); palid = false; } else if (urutan > 2 && rutePlanning.IsAreaPulang != true) { ModelState.AddModelError("Driver1Id", "Driver tidak tersedia, harap pilih driver lain."); palid = false; } } } } } if (model.Status == "draft") { if (model.CommentUser == "" || model.CommentUser == null) { ModelState.AddModelError("CommentUser", "Comment harus diisi."); palid = false; } } if (palid) { Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.SalesOrderId.Value); dbitem.isReturn = false; dbitem.UpdatedBy = UserPrincipal.id; dbitem.urutan = urutan; string act = ""; if (btnsave != null && btnsave != "") { act = "Draft"; dbitem.Status = btnsave; } else { if (model.Status.ToLower() == "save") { act = "Return"; dbitem.isReturn = true; } else { act = "Submit"; dbitem.isReturn = false; } dbitem.Status = model.Status; } model.setDbOperasional(dbitem.SalesOrderOncall, act, "Operational"); RepoSalesOrder.save(dbitem); RepoAuditrail.savePlanningHistory(dbitem); Context.so_mstr dbptnr = Reposo_mstr.FindByPK(dbitem.SalesOrderOncall.SONumber); Context.DataTruck truck = RepoDataTruck.FindByPK(model.IdDataTruck); try { dbptnr.so_vehicle = Repocode_mstr.FindByCodeName(truck.VehicleNo).id; Reposo_mstr.UpdateSoMstrVehicle(dbptnr); } catch (Exception) { } return(RedirectToAction("Index")); } else { ViewBag.kondisi = "planning"; ViewBag.name = model.SONumber; ViewBag.Title = "Planning Sales Order Oncall " + model.SONumber; ViewBag.PostData = "EditOncall"; return(View("SalesOrderOncall/FormReadOnly", model)); } }