/// <summary> /// De /// </summary> /// <param name="idWorkOrder"></param> /// <returns></returns> internal WorkOrders GetWorkOrder(String jsonKeys, out List <Tuple <Type, String> > paramsAditional) { paramsAditional = null; WorkOrderDmsV1Keys WorkOrderKeys = JsonConvert.DeserializeObject <WorkOrderDmsV1Keys>(jsonKeys); if (int.TryParse(WorkOrderKeys?.WorkOrderNumber, out int number) && short.TryParse(WorkOrderKeys?.IdErpShop, out short shop)) { DataBase.Database.CommandTimeout = 10000; tall_encabeza_orden worOrderErp = null; if (ParamsContract?.SupportShop?.Length > 0) { DateTime dateTime = new DateTime(2016, 1, 1); if (ParamsContract.SupportShop.Contains(shop.ToString().ToUpper())) { worOrderErp = DataBase.tall_encabeza_orden.Where(w => w.numero == number && w.bodega == shop && w.fecha >= dateTime).OrderByDescending(w => w.fecha).FirstOrDefault(); } } if (worOrderErp != null) { return(ParsheWorkOrder(worOrderErp, out paramsAditional)); } } return(null); }
internal bool UpdateAuutizatheAtAndObservations(string idShpo, string workOrderNumber, string observations, DateTime?autorizatheAt) { if (short.TryParse(idShpo, out short shop) && int.TryParse(workOrderNumber, out int number) && (autorizatheAt.HasValue || !String.IsNullOrEmpty(observations))) { using (DataBase) { tall_encabeza_orden currentEntity = DataBase.tall_encabeza_orden.FirstOrDefault(w => w.bodega == shop && w.numero == number); if (currentEntity != null) { if (autorizatheAt.HasValue && currentEntity.fecha_hora_autoriza != autorizatheAt) { currentEntity.fecha_hora_autoriza = autorizatheAt; } if (!String.IsNullOrEmpty(observations) && currentEntity.notas != observations) { currentEntity.notas = observations; } if (DataBase.Entry(currentEntity).State == System.Data.Entity.EntityState.Modified && DataBase.SaveChanges() > 0) { return(true); } } } } return(false); }
/// <summary> /// Hace el parceo de la orden de trabajo /// </summary> /// <param name="worOrderErp"></param> /// <returns></returns> private WorkOrders ParsheWorkOrder(tall_encabeza_orden worOrderErp, out List <Tuple <Type, String> > paramsAditional) { paramsAditional = null; WorkOrders workOrder = null; if (worOrderErp != null) { String insuranceCompany = new ToolsDmsV1(ParamsContract).AjustInsuranceCompany(worOrderErp.aseguradora?.ToString(), out Boolean isInsured); long.TryParse(worOrderErp.nit.ToString(), out long outIdCustomer); workOrder = new WorkOrders() { WorkOrderNumber = worOrderErp.numero.ToString(), IdDealerShop = worOrderErp.bodega.ToString(), IdVinNumber = worOrderErp.serie, OpenOtAt = worOrderErp.fecha, EnteredAt = worOrderErp.entrada, IdCustomer = outIdCustomer, PromisedAt = worOrderErp.promesa_entrega, AuthorizedAt = worOrderErp.fecha_hora_autoriza, HasTotalLoss = (worOrderErp.perdida_total == "s" || worOrderErp.perdida_total == "S"), IdSalesRepresentative = worOrderErp.vendedor?.ToString(), IsInsured = isInsured, PickedUpAt = worOrderErp.fecha_hora_entrega_real, Canceled = worOrderErp.anulada, Note = worOrderErp.notas, IsInvoiced = worOrderErp.facturada }; paramsAditional = new List <Tuple <Type, string> > { new Tuple <Type, string>(typeof(Workers), JsonConvert.SerializeObject(new WorkerKeysDmsV1() { IdWorker = worOrderErp.vendedor?.ToString(), IdDealerShopWorkOrder = worOrderErp.bodega.ToString() })), new Tuple <Type, string>(typeof(Vehicles), JsonConvert.SerializeObject(new VehiclesKeysDmsV1() { VinNumber = worOrderErp.serie })), new Tuple <Type, string>(typeof(Customers), JsonConvert.SerializeObject(new CustomerKeys() { IdCustomer = worOrderErp.nit.ToString() })), new Tuple <Type, string>(typeof(CloudCatalogDealerShops), JsonConvert.SerializeObject(new DelaerShopKeysDmsV1() { IdShop = worOrderErp.bodega.ToString() })), new Tuple <Type, string>(typeof(CloudCatalogInsuranceCompanies), JsonConvert.SerializeObject(new InsuranceComnayKeysDmsV1() { Tin = insuranceCompany })), }; if (worOrderErp.kilometraje.HasValue && worOrderErp.kilometraje.Value > 0) { paramsAditional.Add(new Tuple <Type, string>(typeof(int), worOrderErp.kilometraje?.ToString())); } return(workOrder); } return(null); }