Exemplo n.º 1
0
        public ActionResult EditPickup(SalesOrderPickup model, string btnsave)
        {
            //validasi manual
            bool palid = true;

            if (btnsave != "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;
                }
                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);
                if (driver.StatusSo != "Available")
                {
                    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;
                string act = "";
                if (btnsave != null && btnsave != "")
                {
                    act           = "Draft";
                    dbitem.Status = btnsave;
                }
                else
                {
                    if (model.Status.ToLower() == "save")
                    {
                        act             = "Return";
                        dbitem.isReturn = true;
                    }
                    else
                    {
                        dbitem.isReturn = false;
                        act             = "Submit";
                    }

                    dbitem.Status = model.Status;
                }

                model.setDbOperasional(dbitem.SalesOrderPickup, act, "Operational");
                RepoSalesOrder.save(dbitem);
                var query = "UPDATE dbo.\"SalesOrderPickup\" SET \"SONumber\" = " + dbitem.SalesOrderPickup.SONumber + ", \"Urutan\" = " + dbitem.SalesOrderPickup.Urutan + ", TanggalOrder\" = " +
                            dbitem.SalesOrderPickup.TanggalOrder + ", \"CustomerId\" = " + dbitem.SalesOrderPickup.CustomerId + ", \"JenisTruckId\" = " + dbitem.SalesOrderPickup.JenisTruckId + ", \"ProductId\" = " +
                            dbitem.SalesOrderPickup.ProductId + ", \"TanggalPickup\" = " + dbitem.SalesOrderPickup.TanggalPickup + ", \"JamPickup\" = " + dbitem.SalesOrderPickup.JamPickup + ", \"IsSelect\" = " +
                            dbitem.SalesOrderPickup.IsSelect + ", \"Keterangan\" = " + dbitem.SalesOrderPickup.Keterangan + ", \"KeteranganLoading\" = " + dbitem.SalesOrderPickup.KeteranganLoading + ", \"KeteranganUnloading\" = " +
                            dbitem.SalesOrderPickup.KeteranganUnloading + ", \"JamOrder\" = " + dbitem.SalesOrderPickup.JamOrder + ", \"StrMultidrop\" = " + dbitem.SalesOrderPickup.StrMultidrop + ", \"RuteId\" = " +
                            dbitem.SalesOrderPickup.RuteId + ", \"IdDataTruck\" = " + dbitem.SalesOrderPickup.IdDataTruck + ", \"KeteranganDataTruck\" = " + dbitem.SalesOrderPickup.KeteranganDataTruck + ", \"Driver1Id\" = " +
                            dbitem.SalesOrderPickup.Driver1Id + ", \"KeteranganDriver1\" = " + dbitem.SalesOrderPickup.KeteranganDriver1 + ", \"Driver2Id\" = " + dbitem.SalesOrderPickup.Driver2Id + ", \"KeteranganDriver2\" = " +
                            dbitem.SalesOrderPickup.KeteranganDriver2 + ", \"IsCash\" = " + dbitem.SalesOrderPickup.IsCash + ", \"IdDriverTitip\" = " + dbitem.SalesOrderPickup.IdDriverTitip + ", \"KeteranganRek\" = " +
                            dbitem.SalesOrderPickup.KeteranganRek + ", \"AtmId\" = " + dbitem.SalesOrderPickup.AtmId + " WHERE \"SalesOrderPickupId\" = " + dbitem.SalesOrderPickupId +
                            ";INSERT INTO dbo.\"SalesOrderPickupComment\" (\"SalesOrderPickupId\", \"Tanggal\", \"CommentUser\", \"Action\", \"Username\") VALUES (" + dbitem.SalesOrderPickupId + ", " + DateTime.Now + ", " +
                            model.CommentUser + ", " + act + ", " + UserPrincipal.username + ");";
                RepoAuditrail.SetAuditTrail(query, "Planning Pickup", "Edit", UserPrincipal.id);
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.kondisi  = "planning";
                ViewBag.name     = model.SONumber;
                ViewBag.Title    = "Planning Sales Order Pickup " + model.SONumber;
                ViewBag.PostData = "EditPickup";
                return(View("SalesOrderPickup/FormReadOnly", model));
            }
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
        public ActionResult EditProsesKonsolidasi(SalesOrderProsesKonsolidasi model, string btnsave)
        {
            //validasi manual
            bool palid = true;

            if (btnsave != "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;
                }
                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);
                if (driver.StatusSo != "Available")
                {
                    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;
                }
            }
            Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.SalesOrderId.Value);
            if (palid)
            {
                dbitem.isReturn = false;
                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.SalesOrderProsesKonsolidasi, act, "Operational");
                RepoSalesOrder.save(dbitem);
                RepoAuditrail.saveUpdSalesOrderProsesKonsolidasiQuery(dbitem.SalesOrderProsesKonsolidasi, UserPrincipal.id);
                RepoAuditrail.saveSalesOrderProsesKonsolidasiCommentQuery(dbitem.SalesOrderProsesKonsolidasi, UserPrincipal.id);
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.kondisi  = "planning";
                ViewBag.name     = model.SONumber;
                ViewBag.Title    = "Planning Sales Order Proses Konsolidasi " + model.SONumber;
                ViewBag.PostData = "EditProsesKonsolidasi";
                SalesOrderProsesKonsolidasi modelsopk = new SalesOrderProsesKonsolidasi(dbitem);
                ViewBag.StrListSo = modelsopk.StrListSo;
                return(View("SalesOrderProsesKonsolidasi/FormReadOnly", model));
            }
        }
Exemplo n.º 4
0
        public void setDb(Context.Driver dbitem)
        {
            dbitem.KodeDriver    = KodeDriver;
            dbitem.KodeDriverOld = KodeDriverOld;
            dbitem.IdStatus      = IdStatus;
            dbitem.TglGabung     = TglGabung;
            dbitem.NoKtp         = NoKtp;
            dbitem.NamaDriver    = NamaDriver;
            dbitem.NamaPangilan  = NamaPangilan;
            dbitem.TempatLahir   = TempatLahir;
            dbitem.TglLahir      = TglLahir;
            dbitem.IdJenisSim    = IdJenisSim;
            dbitem.NoSim         = NoSim;
            dbitem.TglBerlakuSim = TglBerlakuSim;
            dbitem.NoTlp         = KodeTlp + '-' + NoTlp;
            dbitem.NoHp1         = NoHp1;
            dbitem.NoHp2         = NoHp2;
            dbitem.Alamat        = Alamat;
            dbitem.Rt            = Rt;
            dbitem.Rw            = Rw;
            dbitem.IdProvinsi    = IdProvinsi;
            dbitem.IdKabKota     = IdKabKota;
            dbitem.IdKec         = IdKec;
            dbitem.IdKel         = IdKel;
            dbitem.IsSameKtp     = IsSameKtp;
            if (IsSameKtp)
            {
                dbitem.AlamatDomisili     = dbitem.Alamat;
                dbitem.RtDomisili         = dbitem.Rt;
                dbitem.RwDomisili         = dbitem.Rw;
                dbitem.IdProvinsiDomisili = dbitem.IdProvinsi;
                dbitem.IdKabKotaDomisili  = dbitem.IdKabKota;
                dbitem.IdKecDomisili      = dbitem.IdKec;
                dbitem.IdKelDomisili      = dbitem.IdKel;
            }
            else
            {
                dbitem.AlamatDomisili     = AlamatDomisili;
                dbitem.RtDomisili         = RtDomisili;
                dbitem.RwDomisili         = RwDomisili;
                dbitem.IdProvinsiDomisili = IdProvinsiDomisili;
                dbitem.IdKabKotaDomisili  = IdKabKotaDomisili;
                dbitem.IdKecDomisili      = IdKecDomisili;
                dbitem.IdKelDomisili      = IdKelDomisili;
            }
            dbitem.Keterangan        = Keterangan;
            dbitem.IsSms             = IsSms;
            dbitem.Pathfoto          = Pathfoto;
            dbitem.IdReferensiDriver = IdReferensiDriver;
            dbitem.IdRef             = IdRef;
            dbitem.HubunganRef       = HubunganRef;
            dbitem.KeteranganRef     = KeteranganRef;

            dbitem.IsKemitraan = IsKemitraan;
            if (IsKemitraan)
            {
                dbitem.IsKemitraanAsli = IsKemitraanAsli;
                dbitem.UrlKemitraan    = UrlKemitraan;
            }
            dbitem.IsJaminanKel = IsJaminanKel;
            if (IsJaminanKel)
            {
                dbitem.IsJaminanKelAsli = IsJaminanKelAsli;
                dbitem.UrlJaminanKel    = UrlJaminanKel;
            }
            dbitem.IsIjazah = IsIjazah;
            if (IsIjazah)
            {
                dbitem.IsIjazahAsli = IsIjazahAsli;
                dbitem.UrlIjazah    = UrlIjazah;
            }
            dbitem.IsBukuNikah = IsBukuNikah;
            if (IsBukuNikah)
            {
                dbitem.IsBukuNikahAsli = IsBukuNikahAsli;
                dbitem.UrlBukuNikah    = UrlBukuNikah;
            }
            dbitem.IsSKCK = IsSKCK;
            if (IsSKCK)
            {
                dbitem.IsSKCKAsli = IsSKCKAsli;
                dbitem.UrlSKCK    = UrlSKCK;
            }
            dbitem.IsDomisili = IsDomisili;
            if (IsDomisili)
            {
                dbitem.IsDomisiliAsli = IsDomisiliAsli;
                dbitem.UrlDomisili    = UrlDomisili;
            }
            dbitem.IsKK = IsKK;
            if (IsKK)
            {
                dbitem.IsKKAsli = IsKKAsli;
                dbitem.UrlKK    = UrlKK;
            }
            dbitem.IsKTP = IsKTP;
            if (IsKTP)
            {
                dbitem.IsKTPAsli = IsKTPAsli;
                dbitem.UrlKTP    = UrlKTP;
            }
            dbitem.IsSIM = IsSIM;
            if (IsSIM)
            {
                dbitem.IsSIMAsli = IsSIMAsli;
                dbitem.UrlSIM    = UrlSIM;
            }
        }
Exemplo n.º 5
0
        public Driver(Context.Driver dbitem, List <Context.SalesOrder> dbso, List <Context.SettlementBatal> dbsb)
        {
            if (dbitem != null)
            {
                Id            = dbitem.Id;
                IdStatus      = dbitem.IdStatus;
                Status        = dbitem.LookupCodeStatus.Nama;
                KodeDriver    = dbitem.KodeDriver;
                KodeDriverOld = dbitem.KodeDriverOld;
                TglGabung     = dbitem.TglGabung;
                NoKtp         = dbitem.NoKtp;
                NamaDriver    = dbitem.NamaDriver;
                NamaPangilan  = dbitem.NamaPangilan;
                TempatLahir   = dbitem.TempatLahir;
                TglLahir      = dbitem.TglLahir;
                IdJenisSim    = dbitem.IdJenisSim;
                StrJenisSim   = dbitem.LookupCodeJenisSim == null ? "" : dbitem.LookupCodeJenisSim.Nama;
                NoSim         = dbitem.NoSim;
                TglBerlakuSim = dbitem.TglBerlakuSim;
                KodeTlp       = !dbitem.NoTlp.Contains('-') ? "" : dbitem.NoTlp.Split('-')[0];
                NoTlp         = !dbitem.NoTlp.Contains('-') ? dbitem.NoTlp : dbitem.NoTlp.Split('-')[1];
                NoHp1         = dbitem.NoHp1;
                NoHp2         = dbitem.NoHp2;
                Alamat        = dbitem.Alamat;
                Rt            = dbitem.Rt;
                Rw            = dbitem.Rw;
                IdProvinsi    = dbitem.IdProvinsi;
                StrProvinsi   = dbitem.IdProvinsi == null ? "" : dbitem.LocProvinsi.Nama;
                IdKabKota     = dbitem.IdKabKota;
                StrKabKota    = dbitem.IdKabKota == null ? "" : dbitem.LocKabKota.Nama;
                IdKec         = dbitem.IdKec;
                StrKec        = dbitem.IdKec == null ? "" : dbitem.LocKecamatan.Nama;
                IdKel         = dbitem.IdKel;
                StrKel        = dbitem.IdKel == null ? "" : dbitem.LocKelurahan.Nama;
                IsSameKtp     = dbitem.IsSameKtp;
                if (!IsSameKtp)
                {
                    AlamatDomisili      = dbitem.AlamatDomisili;
                    RtDomisili          = dbitem.RtDomisili;
                    RwDomisili          = dbitem.RwDomisili;
                    IdProvinsiDomisili  = dbitem.IdProvinsiDomisili;
                    StrProvinsiDomisili = dbitem.IdProvinsiDomisili == null ? "" : dbitem.LocProvinsiDomisili.Nama;
                    IdKabKotaDomisili   = dbitem.IdKabKotaDomisili;
                    StrKabKotaDomisili  = dbitem.IdKabKotaDomisili == null ? "" : dbitem.LocKabKotaDomisili.Nama;
                    IdKecDomisili       = dbitem.IdKecDomisili;
                    StrKabKotaDomisili  = dbitem.IdKecDomisili == null ? "" : dbitem.LocKecamatanDomisili.Nama;
                    IdKelDomisili       = dbitem.IdKelDomisili;
                    StrKelDomisili      = dbitem.IdKelDomisili == null ? "" : dbitem.LocKelurahanDomisili.Nama;
                }
                Keterangan        = dbitem.Keterangan;
                IsSms             = dbitem.IsSms;
                Pathfoto          = dbitem.Pathfoto;
                IdReferensiDriver = dbitem.IdReferensiDriver;
                IdRef             = dbitem.IdRef;
                NamaRef           = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NamaDriver;
                CodeRef           = dbitem.DriverRef == null ? "" : dbitem.DriverRef.KodeDriver;
                KTPRef            = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NoKtp;
                tlpRef            = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NoTlp;
                hpRef             = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NoHp1;
                HubunganRef       = dbitem.HubunganRef;
                KeteranganRef     = dbitem.KeteranganRef;

                IsKemitraan      = dbitem.IsKemitraan;
                IsKemitraanAsli  = dbitem.IsKemitraanAsli;
                UrlKemitraan     = dbitem.UrlKemitraan;
                IsJaminanKel     = dbitem.IsJaminanKel;
                IsJaminanKelAsli = dbitem.IsJaminanKelAsli;
                UrlJaminanKel    = dbitem.UrlJaminanKel;
                IsIjazah         = dbitem.IsIjazah;
                IsIjazahAsli     = dbitem.IsIjazahAsli;
                UrlIjazah        = dbitem.UrlIjazah;
                IsBukuNikah      = dbitem.IsBukuNikah;
                IsBukuNikahAsli  = dbitem.IsBukuNikahAsli;
                UrlBukuNikah     = dbitem.UrlBukuNikah;
                IsSKCK           = dbitem.IsSKCK;
                IsSKCKAsli       = dbitem.IsSKCKAsli;
                UrlSKCK          = dbitem.UrlSKCK;
                IsDomisili       = dbitem.IsDomisili;
                IsDomisiliAsli   = dbitem.IsDomisiliAsli;
                UrlDomisili      = dbitem.UrlDomisili;
                IsKK             = dbitem.IsKK;
                IsKKAsli         = dbitem.IsKKAsli;
                UrlKK            = dbitem.UrlKK;
                IsKTP            = dbitem.IsKTP;
                IsKTPAsli        = dbitem.IsKTPAsli;
                UrlKTP           = dbitem.UrlKTP;
                IsSIM            = dbitem.IsSIM;
                IsSIMAsli        = dbitem.IsSIMAsli;
                UrlSIM           = dbitem.UrlSIM;

                StatusSo = "Available";
                if (dbsb.Any(d => (d.IdDriver == dbitem.Id)))
                {
                    StatusSo = "Settlement Batal";
                }
                else if (dbso != null)
                {
                    if (dbso.Any(d => (d.Status == "save" || d.Status == "draft planning") &&
                                 ((d.SalesOrderOncallId.HasValue ? (d.SalesOrderOncall.Driver1Id == dbitem.Id || d.SalesOrderOncall.Driver2Id == dbitem.Id) : false) ||
                                  (d.SalesOrderPickupId.HasValue ? (d.SalesOrderPickup.Driver1Id == dbitem.Id || d.SalesOrderPickup.Driver2Id == dbitem.Id) : false) ||
                                  (d.SalesOrderProsesKonsolidasiId.HasValue ? (d.SalesOrderProsesKonsolidasi.Driver1Id == dbitem.Id || d.SalesOrderProsesKonsolidasi.Driver2Id == dbitem.Id) : false)) ||
                                 (d.SalesOrderKontrakId.HasValue ? (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == dbitem.Id || k.IdDriver2 == dbitem.Id)) : false)))
                    {
                        StatusSo = "Planning";
                    }
                    else if (dbso.Any(d => (d.Status == "save planning" || d.Status == "draft konfirmasi") &&
                                      ((d.SalesOrderOncallId.HasValue ? (d.SalesOrderOncall.Driver1Id == dbitem.Id || d.SalesOrderOncall.Driver2Id == dbitem.Id) : false) ||
                                       (d.SalesOrderPickupId.HasValue ? (d.SalesOrderPickup.Driver1Id == dbitem.Id || d.SalesOrderPickup.Driver2Id == dbitem.Id) : false) ||
                                       (d.SalesOrderProsesKonsolidasiId.HasValue ? (d.SalesOrderProsesKonsolidasi.Driver1Id == dbitem.Id || d.SalesOrderProsesKonsolidasi.Driver2Id == dbitem.Id) : false)) ||
                                      (d.SalesOrderKontrakId.HasValue ? (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == dbitem.Id || k.IdDriver2 == dbitem.Id)) : false)))
                    {
                        StatusSo = "Konfirmasi";
                    }
                    else if (dbso.Any(d => (d.Status == "admin uang jalan") && d.AdminUangJalan.IdDriver1 == dbitem.Id))
                    {
                        StatusSo = "admin uang jalan";
                    }
                    else if (dbso.Any(d => (d.Status == "save konfirmasi" || d.Status == "dispatched") &&
                                      ((d.SalesOrderOncallId.HasValue ? (d.SalesOrderOncall.Driver1Id == dbitem.Id || d.SalesOrderOncall.Driver2Id == dbitem.Id) : false) ||
                                       (d.SalesOrderPickupId.HasValue ? (d.SalesOrderPickup.Driver1Id == dbitem.Id || d.SalesOrderPickup.Driver2Id == dbitem.Id) : false) ||
                                       (d.SalesOrderProsesKonsolidasiId.HasValue ? (d.SalesOrderProsesKonsolidasi.Driver1Id == dbitem.Id || d.SalesOrderProsesKonsolidasi.Driver2Id == dbitem.Id) : false)) ||
                                      (d.SalesOrderKontrakId.HasValue ? (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == dbitem.Id || k.IdDriver2 == dbitem.Id)) : false)))
                    {
                        StatusSo = "Dispatched";
                    }
                }
            }
        }
Exemplo n.º 6
0
        public Driver(Context.Driver dbitem)
        {
            Id            = dbitem.Id;
            IdStatus      = dbitem.IdStatus;
            Status        = dbitem.LookupCodeStatus.Nama;
            KodeDriver    = dbitem.KodeDriver;
            KodeDriverOld = dbitem.KodeDriverOld;
            TglGabung     = dbitem.TglGabung;
            NoKtp         = dbitem.NoKtp;
            NamaDriver    = dbitem.NamaDriver;
            NamaPangilan  = dbitem.NamaPangilan;
            TempatLahir   = dbitem.TempatLahir;
            TglLahir      = dbitem.TglLahir;
            IdJenisSim    = dbitem.IdJenisSim;
            StrJenisSim   = dbitem.LookupCodeJenisSim == null ? "" : dbitem.LookupCodeJenisSim.Nama;
            NoSim         = dbitem.NoSim;
            TglBerlakuSim = dbitem.TglBerlakuSim;
            KodeTlp       = !dbitem.NoTlp.Contains('-') ? "" : dbitem.NoTlp.Split('-')[0];
            NoTlp         = !dbitem.NoTlp.Contains('-') ? dbitem.NoTlp : dbitem.NoTlp.Split('-')[1];
            NoHp1         = dbitem.NoHp1;
            NoHp2         = dbitem.NoHp2;
            Alamat        = dbitem.Alamat;
            Rt            = dbitem.Rt;
            Rw            = dbitem.Rw;
            IdProvinsi    = dbitem.IdProvinsi;
            StrProvinsi   = dbitem.IdProvinsi == null ? "" : dbitem.LocProvinsi.Nama;
            IdKabKota     = dbitem.IdKabKota;
            StrKabKota    = dbitem.IdKabKota == null ? "" : dbitem.LocKabKota.Nama;
            IdKec         = dbitem.IdKec;
            StrKec        = dbitem.IdKec == null ? "" : dbitem.LocKecamatan.Nama;
            IdKel         = dbitem.IdKel;
            StrKel        = dbitem.IdKel == null ? "" : dbitem.LocKelurahan.Nama;
            IsSameKtp     = dbitem.IsSameKtp;
            if (!IsSameKtp)
            {
                AlamatDomisili      = dbitem.AlamatDomisili;
                RtDomisili          = dbitem.RtDomisili;
                RwDomisili          = dbitem.RwDomisili;
                IdProvinsiDomisili  = dbitem.IdProvinsiDomisili;
                StrProvinsiDomisili = dbitem.IdProvinsiDomisili == null ? "" : dbitem.LocProvinsiDomisili.Nama;
                IdKabKotaDomisili   = dbitem.IdKabKotaDomisili;
                StrKabKotaDomisili  = dbitem.IdKabKotaDomisili == null ? "" : dbitem.LocKabKotaDomisili.Nama;
                IdKecDomisili       = dbitem.IdKecDomisili;
                StrKabKotaDomisili  = dbitem.IdKecDomisili == null ? "" : dbitem.LocKecamatanDomisili.Nama;
                IdKelDomisili       = dbitem.IdKelDomisili;
                StrKelDomisili      = dbitem.IdKelDomisili == null ? "" : dbitem.LocKelurahanDomisili.Nama;
            }
            Keterangan        = dbitem.Keterangan;
            IsSms             = dbitem.IsSms;
            Pathfoto          = dbitem.Pathfoto;
            IdReferensiDriver = dbitem.IdReferensiDriver;
            IdRef             = dbitem.IdRef;
            NamaRef           = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NamaDriver;
            CodeRef           = dbitem.DriverRef == null ? "" : dbitem.DriverRef.KodeDriver;
            KTPRef            = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NoKtp;
            tlpRef            = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NoTlp;
            hpRef             = dbitem.DriverRef == null ? "" : dbitem.DriverRef.NoHp1;
            HubunganRef       = dbitem.HubunganRef;
            KeteranganRef     = dbitem.KeteranganRef;

            IsKemitraan      = dbitem.IsKemitraan;
            IsKemitraanAsli  = dbitem.IsKemitraanAsli;
            UrlKemitraan     = dbitem.UrlKemitraan;
            IsJaminanKel     = dbitem.IsJaminanKel;
            IsJaminanKelAsli = dbitem.IsJaminanKelAsli;
            UrlJaminanKel    = dbitem.UrlJaminanKel;
            IsIjazah         = dbitem.IsIjazah;
            IsIjazahAsli     = dbitem.IsIjazahAsli;
            UrlIjazah        = dbitem.UrlIjazah;
            IsBukuNikah      = dbitem.IsBukuNikah;
            IsBukuNikahAsli  = dbitem.IsBukuNikahAsli;
            UrlBukuNikah     = dbitem.UrlBukuNikah;
            IsSKCK           = dbitem.IsSKCK;
            IsSKCKAsli       = dbitem.IsSKCKAsli;
            UrlSKCK          = dbitem.UrlSKCK;
            IsDomisili       = dbitem.IsDomisili;
            IsDomisiliAsli   = dbitem.IsDomisiliAsli;
            UrlDomisili      = dbitem.UrlDomisili;
            IsKK             = dbitem.IsKK;
            IsKKAsli         = dbitem.IsKKAsli;
            UrlKK            = dbitem.UrlKK;
            IsKTP            = dbitem.IsKTP;
            IsKTPAsli        = dbitem.IsKTPAsli;
            UrlKTP           = dbitem.UrlKTP;
            IsSIM            = dbitem.IsSIM;
            IsSIMAsli        = dbitem.IsSIMAsli;
            UrlSIM           = dbitem.UrlSIM;
        }
        public ActionResult Add(PenetapanDriver model)
        {
            if (ModelState.IsValid)
            {
                bool isPalid = true;
                if (RepoPenetapanDriver.IsExist(model.IdDataTruck.Value))
                {
                    isPalid = false;
                    ModelState.AddModelError("IdDataTruck", "Data truck sudah digunakan.");
                }

                if (RepoPenetapanDriver.isExistDriver(model.IdDriver1.Value, 0))
                {
                    isPalid = false;
                    ModelState.AddModelError("idDriver1", "Driver sudah digunakan.");
                }

                if (model.IdDriver2.HasValue)
                {
                    if (RepoPenetapanDriver.isExistDriver(model.IdDriver2.Value, 0))
                    {
                        isPalid = false;
                        ModelState.AddModelError("IdDriver2", "Driver sudah digunakan.");
                    }
                    if (model.IdDriver1 == model.IdDriver2)
                    {
                        isPalid = false;
                        ModelState.AddModelError("IdDriver1", "Driver tidak boleh sama.");
                        ModelState.AddModelError("IdDriver2", "Driver tidak boleh sama.");
                    }
                    if (model.IdDitetapkanOleh2 == null)
                    {
                        isPalid = false;
                        ModelState.AddModelError("IdDitetapkanOleh2", "Penetap Driver 2 Belum Ditentukan.");
                    }
                }

                if (model.IdDitetapkanOleh1 == null)
                {
                    isPalid = false;
                    ModelState.AddModelError("IdDitetapkanOleh1", "Penetap Driver 1 Belum Ditentukan.");
                }

                if (!isPalid)
                {
                    return(View("Form", model));
                }

                Context.PenetapanDriver        dbitem        = new Context.PenetapanDriver();
                Context.PenetapanDriverHistory dbitemHistory = new Context.PenetapanDriverHistory();
                //history
                model.SetDb(dbitem, UserPrincipal.firstname + ' ' + UserPrincipal.lastname);
                model.SetDbHistory(dbitemHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                dbitemHistory.CreatedBy   = UserPrincipal.firstname + " " + UserPrincipal.lastname;
                dbitemHistory.CreatedDate = DateTime.Now;
                dbitem.PenetapanDriverHistory.Add(dbitemHistory);
                //history driver
                Context.DataTruck dbtruck = RepoTruck.FindByPK(model.IdDataTruck.Value);

                Context.Driver             dbdriver1        = RepoDriver.FindByPK(model.IdDriver1.Value);
                Context.DriverTruckHistory dbdriverHistory1 = new Context.DriverTruckHistory();
                dbdriver1.NoHp1          = model.NoHp1Driver1;
                dbdriver1.NoHp2          = model.NoHp2Driver1;
                dbdriverHistory1.Tanggal = DateTime.Now;
                dbdriverHistory1.Nopol   = dbtruck.VehicleNo;
                dbdriverHistory1.Type    = model.JenisTruck;
                dbdriver1.DriverTruckHistory.Add(dbdriverHistory1);
                RepoDriver.save(dbdriver1);
                string query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dbdriver1.NoHp1 + ", \"NoHp2\" = " + dbdriver1.NoHp2 + " WHERE \"Id\" = " + dbdriver1.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" (\"IdDriver\", " +
                               "\"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory1.IdDriver + ", " + dbdriverHistory1.Tanggal + ", " + dbdriverHistory1.Type + ", " + dbdriverHistory1.Nopol + ");";
                RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Add", UserPrincipal.id);

                if (model.IdDriver2.HasValue)
                {
                    Context.Driver             dbdriver2        = RepoDriver.FindByPK(model.IdDriver2.Value);
                    Context.DriverTruckHistory dbdriverHistory2 = new Context.DriverTruckHistory();
                    dbdriver2.NoHp1          = model.NoHp1Driver2;
                    dbdriver2.NoHp2          = model.NoHp2Driver2;
                    dbdriverHistory2.Tanggal = DateTime.Now;
                    dbdriverHistory2.Nopol   = dbtruck.VehicleNo;
                    dbdriverHistory2.Type    = model.JenisTruck;
                    dbdriver2.DriverTruckHistory.Add(dbdriverHistory2);
                    RepoDriver.save(dbdriver2);
                    query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dbdriver2.NoHp1 + ", \"NoHp2\" = " + dbdriver2.NoHp2 + " WHERE \"Id\" = " + dbdriver2.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" ( " +
                            "\"IdDriver\", \"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory2.IdDriver + ", " + dbdriverHistory2.Tanggal + ", " + dbdriverHistory2.Type + ", " + dbdriverHistory2.Nopol + ");";
                    RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Add", UserPrincipal.id);
                }


                RepoPenetapanDriver.save(dbitem);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
        public string Upload(IEnumerable <HttpPostedFileBase> filesPenetapanDriver)
        {
            ResponeModel response = new ResponeModel();


            if (filesPenetapanDriver != null)
            {
                foreach (var file in filesPenetapanDriver)
                {
                    try
                    {
                        using (var package = new ExcelPackage(file.InputStream))
                        {
                            var currentSheet = package.Workbook.Worksheets;
                            var workSheet    = currentSheet.First();
                            var noOfCol      = workSheet.Dimension.End.Column;
                            var noOfRow      = workSheet.Dimension.End.Row;



                            for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                            {
                                if (workSheet.Cells[rowIterator, 1].Value != null && workSheet.Cells[rowIterator, 2].Value != null && RepoTruck.FindByName(workSheet.Cells[rowIterator, 1].Value.ToString()) != null)
                                {
                                    int id = 0;
                                    int resId;


                                    if (workSheet.Cells[rowIterator, 10].Value != null)
                                    {
                                        if (int.TryParse(workSheet.Cells[rowIterator, 10].Value.ToString(), out resId))
                                        {
                                            id = resId;
                                        }
                                    }

                                    Context.PenetapanDriver db = new Context.PenetapanDriver();
                                    try
                                    {
                                        if (id != 0)
                                        {
                                            db = RepoPenetapanDriver.FindByPK(id);
                                        }
                                        Context.Driver dr1 = RepoDriver.FindByCode(workSheet.Cells[rowIterator, 2].Value.ToString());
                                        Context.Driver dr2 = workSheet.Cells[rowIterator, 6].Value == null ? null : RepoDriver.FindByCode(workSheet.Cells[rowIterator, 6].Value.ToString());
                                        db.IdDataTruck = RepoTruck.FindByName(workSheet.Cells[rowIterator, 1].Value.ToString()).Id;

                                        if (id == 0 && RepoPenetapanDriver.IsExist(db.IdDataTruck.Value))
                                        {
                                            continue;
                                        }

                                        if (dr1 != null)
                                        {
                                            if (RepoPenetapanDriver.isExistDriver(dr1.Id, id))
                                            {
                                                continue;
                                            }
                                        }

                                        if (dr2 != null)
                                        {
                                            if (RepoPenetapanDriver.isExistDriver(dr2.Id, id))
                                            {
                                                continue;
                                            }
                                        }

                                        if (dr1 != null && dr2 != null)
                                        {
                                            if (dr2.Id.Equals(dr1.Id))
                                            {
                                                continue;
                                            }
                                        }

                                        db.IdDriver1       = dr1.Id;
                                        db.NoHp1Driver1    = workSheet.Cells[rowIterator, 3].Value == null ? dr1.NoHp1 : workSheet.Cells[rowIterator, 3].Value.ToString();
                                        db.NoHp2Driver1    = workSheet.Cells[rowIterator, 4].Value == null ? dr1.NoHp2 : workSheet.Cells[rowIterator, 4].Value.ToString();
                                        db.DitetapkanOleh1 = workSheet.Cells[rowIterator, 5].Value == null ? null : workSheet.Cells[rowIterator, 5].Value.ToString();

                                        if (dr2 != null)
                                        {
                                            db.IdDriver2       = dr2.Id;
                                            db.NoHp1Driver2    = workSheet.Cells[rowIterator, 7].Value == null ? dr2.NoHp1 : workSheet.Cells[rowIterator, 7].Value.ToString();
                                            db.NoHp2Driver2    = workSheet.Cells[rowIterator, 8].Value == null ? dr2.NoHp2 : workSheet.Cells[rowIterator, 8].Value.ToString();
                                            db.DitetapkanOleh2 = workSheet.Cells[rowIterator, 9].Value == null ? null : workSheet.Cells[rowIterator, 9].Value.ToString();
                                            dr2.NoHp1          = db.NoHp1Driver2;
                                            dr2.NoHp2          = db.NoHp2Driver2;
                                        }

                                        db.ModifiedBy   = UserPrincipal.username;
                                        db.ModifiedDate = DateTime.Now;

                                        dr1.NoHp1 = db.NoHp1Driver1;
                                        dr1.NoHp2 = db.NoHp2Driver1;

                                        RepoPenetapanDriver.save(db);

                                        int resultId = db.Id;

                                        //save penetapan driver history
                                        Context.PenetapanDriverHistory dbItemHistory = new Context.PenetapanDriverHistory();
                                        Context.PenetapanDriver        pd            = RepoPenetapanDriver.FindByPK(resultId);

                                        dbItemHistory.IdPenetapanDriver = resultId;
                                        dbItemHistory.Driver1           = dr1.NamaDriver;
                                        if (dr2 != null)
                                        {
                                            dbItemHistory.Driver2 = dr2.NamaDriver;
                                        }
                                        dbItemHistory.CreatedBy    = UserPrincipal.firstname + " " + UserPrincipal.lastname;
                                        dbItemHistory.ModifiedBy   = UserPrincipal.firstname + " " + UserPrincipal.lastname;
                                        dbItemHistory.ModifiedDate = DateTime.Now;
                                        pd.PenetapanDriverHistory.Add(dbItemHistory);

                                        //history driver

                                        Context.DriverTruckHistory dbdriverHistory1 = new Context.DriverTruckHistory();
                                        Context.DriverTruckHistory dbdriverHistory2 = new Context.DriverTruckHistory();
                                        Context.DataTruck          dbtruck          = RepoTruck.FindByPK(db.IdDataTruck.Value);

                                        dbdriverHistory1.Tanggal = DateTime.Now;
                                        dbdriverHistory1.Nopol   = dbtruck.VehicleNo;
                                        dbdriverHistory1.Type    = dbtruck.JenisTrucks.StrJenisTruck;

                                        dbdriverHistory2.Tanggal = DateTime.Now;
                                        dbdriverHistory2.Nopol   = dbtruck.VehicleNo;
                                        dbdriverHistory2.Type    = dbtruck.JenisTrucks.StrJenisTruck;

                                        dr1.DriverTruckHistory.Add(dbdriverHistory1);

                                        RepoDriver.save(dr1);
                                        string query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dr1.NoHp1 + ", \"NoHp2\" = " + dr1.NoHp2 + " WHERE \"Id\" = " + dr1.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" ( " +
                                                       "\"IdDriver\", \"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory1.IdDriver + ", " + dbdriverHistory1.Tanggal + ", " + dbdriverHistory1.Type + ", " +
                                                       dbdriverHistory1.Nopol + ");";
                                        RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Import", UserPrincipal.id);
                                        if (dr2 != null)
                                        {
                                            dr2.NoHp1 = db.NoHp1Driver2;
                                            dr2.NoHp2 = db.NoHp2Driver2;
                                            dr2.DriverTruckHistory.Add(dbdriverHistory2);
                                            RepoDriver.save(dr2);
                                            query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dr2.NoHp1 + ", \"NoHp2\" = " + dr2.NoHp2 + " WHERE \"Id\" = " + dr2.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" ( " +
                                                    "\"IdDriver\", \"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory2.IdDriver + ", " + dbdriverHistory2.Tanggal + ", " + dbdriverHistory2.Type + ", " +
                                                    dbdriverHistory2.Nopol + ");";
                                            RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Import", UserPrincipal.id);
                                        }
                                        RepoPenetapanDriver.save(pd);
                                    }
                                    catch (Exception)
                                    {
                                    }
                                }
                            }
                        }

                        response.Success = true;
                    }
                    catch (Exception e)
                    {
                        response.Success = false;
                        response.Message = e.Message.ToString();
                    }
                }
            }
            return(new JavaScriptSerializer().Serialize(new { Response = response }));
        }