Esempio n. 1
0
        internal static List <EstimadoDetDTO> CopiarPeriodos(DateTime fOrigenDesde, DateTime fOrigenHasta,
                                                             DateTime fDestinoDesde, List <EstimadoDetDTO> lineas, StateBag viewState)
        {
            //Armo lista de elemtnos que SI reemplazo.
            //Busco en la coleccion, todas las lineas en el periodo, y con el aviso seleccionado.
            var lineasACopiar = lineas.FindAll(
                (x) =>
                (x.Fecha >= fOrigenDesde &&
                 x.Fecha <= fOrigenHasta));


            //Si encontre líneas a copiar...
            if (lineasACopiar.Count > 0)
            {
                EstimadoDetDTO        nuevaLinea;
                DateTime              fechaTmp;
                List <EstimadoDetDTO> lineasTmp      = new List <EstimadoDetDTO>();
                TimeSpan              diasEnElFuturo = fDestinoDesde.Subtract(fOrigenDesde);

                //Por cada linea que encontre, genero una nueva e igual, x dias en el futuro.
                foreach (var linea in lineasACopiar)
                {
                    nuevaLinea           = new EstimadoDetDTO();
                    nuevaLinea.RecId     = NextTempRecId(viewState);
                    nuevaLinea.DatareaId = linea.DatareaId;

                    //Avanzo la fecha tantos dias como corresponda...
                    fechaTmp                = linea.Fecha.Add(diasEnElFuturo);
                    nuevaLinea.Fecha        = fechaTmp;
                    nuevaLinea.Dia          = fechaTmp.Day;
                    nuevaLinea.DiaSemana    = fechaTmp.ToString("dddd", new CultureInfo("es-ES")).ToUpper().Trim();
                    nuevaLinea.Costo        = linea.Costo;
                    nuevaLinea.CostoOp      = linea.CostoOp;
                    nuevaLinea.CostoOpUni   = linea.CostoOpUni;
                    nuevaLinea.CostoUni     = linea.CostoUni;
                    nuevaLinea.Duracion     = linea.Duracion;
                    nuevaLinea.Hora         = linea.Hora;
                    nuevaLinea.IdentifAviso = linea.IdentifAviso;
                    nuevaLinea.PautaId      = linea.PautaId;
                    nuevaLinea.Salida       = linea.Salida;

                    //Agrego la nueva linea.
                    lineasTmp.Add(nuevaLinea);
                }

                //Junto las dos listas (temporal y la que ya tenia).
                lineasTmp.AddRange(lineas);

                //Ordeno por fecha.
                lineasTmp.Sort(
                    (x, y) => DateTime.Compare(x.Fecha, y.Fecha));

                //Guardo la lista en el Viewstate.
                return(lineasTmp);
            }
            else
            {
                return(lineas);
            }
        }
Esempio n. 2
0
        public Estimado(Ordenado ordenado, string usuario)
        {
            EstimadoDetDTO estDet;
            EstimadoSKUDTO estSKU;

            Cabecera             = new EstimadoCabDTO(ordenado.Cabecera);
            Cabecera.Confirmado  = usuario;
            Cabecera.FecConfirma = DateTime.Now;
            Cabecera.Version     = 1;
            Cabecera.FecUltModif = DateTime.Now;
            Cabecera.FecCierre   = null;
            Cabecera.UsuCierre   = string.Empty;

            Lineas = new List <EstimadoDetDTO>();
            foreach (var ordDet in ordenado.Lineas)
            {
                estDet       = new EstimadoDetDTO(ordDet);
                estDet.RecId = 0;
                Lineas.Add(estDet);
            }

            SKUs = new List <EstimadoSKUDTO>();
            foreach (var ordSKU in ordenado.SKUs)
            {
                estSKU       = new EstimadoSKUDTO(ordSKU);
                estSKU.RecId = 0;
                SKUs.Add(estSKU);
            }
        }