示例#1
0
        public void Create(ShipmentTracking shipmentTracking)
        {
            Stopwatch timespan = Stopwatch.StartNew();

            try
            {
                db.ShipmentTrackings.Add(shipmentTracking);
                db.SaveChangesAsync();

                timespan.Stop();
                log.TraceApi("SQL Database", "ShipmentTrackingRepository.Create", timespan.Elapsed, "shipmentTracking={0}", shipmentTracking);
            }
            catch (Exception e)
            {
                log.Error(e, "Error in ShipmentTrackingRepository.Create(shipmentTracking={0})", shipmentTracking);
                throw;
            }
        }
示例#2
0
        public async Task UpdateAsync(ShipmentTracking shipmentTracking)
        {
            Stopwatch timespan = Stopwatch.StartNew();

            try
            {
                db.Entry(shipmentTracking).State = EntityState.Modified;
                await db.SaveChangesAsync();

                timespan.Stop();
                log.TraceApi("SQL Database", "ShipmentTrackingRepository.UpdateAsync", timespan.Elapsed, "shipmentTracking={0}", shipmentTracking);
            }
            catch (Exception e)
            {
                log.Error(e, "Error in ShipmentTrackingRepository.UpdateAsync(shipmentTracking={0})", shipmentTracking);
                throw;
            }
        }
示例#3
0
        public ShipmentTracking FindShipmentTrackingByProductQuoteID(int productQuoteID)
        {
            Stopwatch timespan = Stopwatch.StartNew();

            try
            {
                ShipmentTracking shipmentTracking = db.ShipmentTrackings
                                                    //.Include(p => p.ProductQuote)
                                                    .Where(p => p.ProductQuoteID == productQuoteID).SingleOrDefault();

                timespan.Stop();
                log.TraceApi("SQL Database", "ShipmentTrackingRepository.FindShipmentTrackingByProductQuoteID", timespan.Elapsed, "productQuoteID={0}", productQuoteID);

                return(shipmentTracking);
            }
            catch (Exception e)
            {
                log.Error(e, "Error in ShipmentTrackingRepository.FindShipmentTrackingByProductQuoteID(productQuoteID={0})", productQuoteID);
                throw;
            }
        }
示例#4
0
        public static ValidationResult ValidateShipmentTracking(ShipmentTracking shipmentTracking, ValidationContext validationContext)
        {
            if (shipmentTracking == null)
            {
                return(null);
            }

            //Prioridades de Completadas
            if (shipmentTracking.CustomerOrderCompleted && !shipmentTracking.QuotedCompleted)
            {
                return(new ValidationResult("La Etapa 'Orden de Compra' no puede estar completada si aun no está completada la Etapa anterior"));
            }
            if (shipmentTracking.ApprovedCompleted && !shipmentTracking.CustomerOrderCompleted)
            {
                return(new ValidationResult("La Etapa 'Aprobado' no puede estar completada si aun no está completada la Etapa anterior"));
            }
            if (shipmentTracking.InProductionEnabled && shipmentTracking.InProductionCompleted && !shipmentTracking.ApprovedCompleted)
            {
                return(new ValidationResult("La Etapa 'En Px' no puede estar completada si aun no está completada la Etapa anterior"));
            }
            if (shipmentTracking.ETDEnabled && shipmentTracking.ETDCompleted)
            {
                if (shipmentTracking.InProductionEnabled && !shipmentTracking.InProductionCompleted)
                {
                    return(new ValidationResult("La Etapa 'Embarcado ETD' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (!shipmentTracking.InProductionEnabled && !shipmentTracking.ApprovedCompleted)
                {
                    return(new ValidationResult("La Etapa 'Embarcado ETD' no puede estar completada si aun no está completada la Etapa anterior"));
                }
            }
            if (shipmentTracking.ETAEnabled && shipmentTracking.ETACompleted)
            {
                if (shipmentTracking.ETDEnabled && !shipmentTracking.ETDCompleted)
                {
                    return(new ValidationResult("La Etapa 'Puerto ETA' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (shipmentTracking.InProductionEnabled && !shipmentTracking.InProductionCompleted)
                {
                    return(new ValidationResult("La Etapa 'Puerto ETA' no puede estar completada si aun no está completada la Etapa anterior"));
                }
            }
            if (shipmentTracking.NationalizedEnabled && shipmentTracking.NationalizedCompleted)
            {
                if (shipmentTracking.ETAEnabled && !shipmentTracking.ETACompleted)
                {
                    return(new ValidationResult("La Etapa 'Nacionalizado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (shipmentTracking.ETDEnabled && !shipmentTracking.ETDCompleted)
                {
                    return(new ValidationResult("La Etapa 'Nacionalizado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (shipmentTracking.InProductionEnabled && !shipmentTracking.InProductionCompleted)
                {
                    return(new ValidationResult("La Etapa 'Nacionalizado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
            }
            if (shipmentTracking.DeliveredCompleted)
            {
                if (shipmentTracking.NationalizedEnabled && !shipmentTracking.NationalizedCompleted)
                {
                    return(new ValidationResult("La Etapa 'Entregado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (shipmentTracking.ETAEnabled && !shipmentTracking.ETACompleted)
                {
                    return(new ValidationResult("La Etapa 'Entregado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (shipmentTracking.ETDEnabled && !shipmentTracking.ETDCompleted)
                {
                    return(new ValidationResult("La Etapa 'Entregado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
                if (shipmentTracking.InProductionEnabled && !shipmentTracking.InProductionCompleted)
                {
                    return(new ValidationResult("La Etapa 'Entregado' no puede estar completada si aun no está completada la Etapa anterior"));
                }
            }



            //Fechas Estimadas
            if (shipmentTracking.ApprovedEstimatedDate < shipmentTracking.CustomerOrderRealDate)
            {
                return(new ValidationResult("La Fecha Estimada de 'Aprobado' no puede ser menor a la Fecha Real de la Etapa anterior"));
            }
            if (shipmentTracking.InProductionEnabled)
            {
                if (shipmentTracking.InProductionEstimatedDate < shipmentTracking.ApprovedRealDate)
                {
                    return(new ValidationResult("La Fecha Estimada de 'En Px' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if (shipmentTracking.InProductionEstimatedDate < shipmentTracking.ApprovedEstimatedDate)
                {
                    return(new ValidationResult("La Fecha Estimada de 'En Px' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
            }
            if (shipmentTracking.ETDEnabled)
            {
                if ((shipmentTracking.ETDEstimatedDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Embarcado ETD' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if (shipmentTracking.ETDEstimatedDate < shipmentTracking.ApprovedRealDate)
                {
                    return(new ValidationResult("La Fecha Estimada de 'Embarcado ETD' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if (shipmentTracking.ETDEstimatedDate < shipmentTracking.ApprovedEstimatedDate)
                {
                    return(new ValidationResult("La Fecha Estimada de 'Embarcado ETD' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
            }
            if (shipmentTracking.ETAEnabled)
            {
                if ((shipmentTracking.ETAEstimatedDate < shipmentTracking.ETDRealDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Puerto ETA' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.ETAEstimatedDate < shipmentTracking.ETDEstimatedDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Puerto ETA' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
                if ((shipmentTracking.ETAEstimatedDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Puerto ETA' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.ETAEstimatedDate < shipmentTracking.InProductionEstimatedDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Puerto ETA' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
                if (shipmentTracking.ETAEstimatedDate < shipmentTracking.ApprovedRealDate)
                {
                    return(new ValidationResult("La Fecha Estimada de 'Puerto ETA' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if (shipmentTracking.ETAEstimatedDate < shipmentTracking.ApprovedEstimatedDate)
                {
                    return(new ValidationResult("La Fecha Estimada de 'Puerto ETA' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
            }
            if (shipmentTracking.NationalizedEnabled)
            {
                if ((shipmentTracking.NationalizedEstimatedDate < shipmentTracking.ETARealDate) && (shipmentTracking.ETAEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Nacionalizado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedEstimatedDate < shipmentTracking.ETAEstimatedDate) && (shipmentTracking.ETAEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Nacionalizado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedEstimatedDate < shipmentTracking.ETDRealDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Nacionalizado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedEstimatedDate < shipmentTracking.ETDEstimatedDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Nacionalizado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedEstimatedDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Nacionalizado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedEstimatedDate < shipmentTracking.InProductionEstimatedDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Estimada de 'Nacionalizado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
                }
            }//acaaaaaaaaaaaaa
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.NationalizedRealDate) && (shipmentTracking.NationalizedEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.NationalizedEstimatedDate) && (shipmentTracking.NationalizedEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.ETARealDate) && (shipmentTracking.ETAEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.ETAEstimatedDate) && (shipmentTracking.ETAEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.ETDRealDate) && (shipmentTracking.ETDEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.ETDEstimatedDate) && (shipmentTracking.ETDEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
            }
            if ((shipmentTracking.DeliveredEstimatedDate < shipmentTracking.InProductionEstimatedDate) && (shipmentTracking.InProductionEnabled))
            {
                return(new ValidationResult("La Fecha Estimada de 'Entregado' no puede ser menor a la Fecha Estimada de la Etapa anterior"));
            }



            //Fechas Reales
            if (shipmentTracking.ApprovedRealDate < shipmentTracking.CustomerOrderRealDate && shipmentTracking.ApprovedRealDate != null)
            {
                return(new ValidationResult("La Fecha Real de 'Aprobado' no puede ser menor a la Fecha Real de la la Etapa anterior"));
            }
            if (
                (!shipmentTracking.ETDEnabled) && //Faltaba
                (shipmentTracking.InProductionEnabled) &&
                (shipmentTracking.InProductionRealDate != null) &&
                (shipmentTracking.InProductionRealDate < shipmentTracking.ApprovedRealDate || shipmentTracking.ApprovedRealDate == null)
                )
            {
                return(new ValidationResult("La Fecha Real de 'En Px' no puede ser menor a la Fecha Real de la Etapa anterior"));
            }

            if ((shipmentTracking.ETDEnabled) && (shipmentTracking.ETDRealDate != null))
            {
                if ((shipmentTracking.ETDRealDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Embarcado ETD' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if (shipmentTracking.InProductionRealDate < shipmentTracking.ApprovedRealDate || shipmentTracking.ApprovedRealDate == null)
                {
                    return(new ValidationResult("La Fecha Real de 'Embarcado ETD' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
            }
            if ((shipmentTracking.ETAEnabled) && (shipmentTracking.ETARealDate != null))
            {
                if ((shipmentTracking.ETARealDate < shipmentTracking.ETDRealDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Puerto ETA' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.ETARealDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Puerto ETA' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
            }
            if ((shipmentTracking.NationalizedEnabled) && (shipmentTracking.NationalizedRealDate != null))
            {
                if ((shipmentTracking.NationalizedRealDate < shipmentTracking.ETARealDate) && (shipmentTracking.ETAEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Nacionalizado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedRealDate < shipmentTracking.ETDRealDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Nacionalizado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.NationalizedRealDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Nacionalizado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
            }
            if (shipmentTracking.DeliveredRealDate != null)
            {
                if ((shipmentTracking.DeliveredRealDate < shipmentTracking.NationalizedRealDate) && (shipmentTracking.NationalizedEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.DeliveredRealDate < shipmentTracking.ETARealDate) && (shipmentTracking.ETAEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.DeliveredRealDate < shipmentTracking.ETDRealDate) && (shipmentTracking.ETDEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
                if ((shipmentTracking.DeliveredRealDate < shipmentTracking.InProductionRealDate) && (shipmentTracking.InProductionEnabled))
                {
                    return(new ValidationResult("La Fecha Real de 'Entregado' no puede ser menor a la Fecha Real de la Etapa anterior"));
                }
            }


            return(null);
        }