Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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);
        }