Ejemplo n.º 1
0
        /// <summary>
        /// Genera archivo encabezado con la lista de pedidos que contiene
        /// </summary>
        /// <param name="encabezado"></param>
        /// <returns></returns>
        private bool GeneraArchivoEncabezado(Encabezado encabezado)
        {
            string rutaTemporalGrupo = _rutaArchivosTemporales + @"\";
            int    consecutivoPedido = 1;

            using (FileStream archivoEncabezado = File.Create(rutaTemporalGrupo + encabezado.Nombre))
            {
                using (StreamWriter streamWriter = new StreamWriter(archivoEncabezado))
                {
                    var fechaInicio         = BusinessUtils.GetFechaFormateada();
                    var horaInicio          = BusinessUtils.GetHoraFormateada();
                    var contenidoEncabezado = String.Format("{0}019000{1}4000{5}101{1}4{2}Y{3}{4}", encabezado.Grupo.Campana, encabezado.Consecutivo.ToString("D4"), encabezado.Pedidos.Count, fechaInicio, horaInicio, Environment.NewLine);
                    streamWriter.Write(contenidoEncabezado);

                    foreach (var pedido in encabezado.Pedidos)
                    {
                        pedido.Consecutivo = consecutivoPedido;

                        streamWriter.Write(String.Format("{0}01{1}400{2}", encabezado.Grupo.Campana, encabezado.Consecutivo.ToString("D4"), consecutivoPedido.ToString("D2")));
                        consecutivoPedido++;
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pedido"></param>
        private void GeneraArchivosDetalle(Pedido pedido, int consecutivoEncabezado)
        {
            var rutaTemporalGrupo    = _rutaArchivosTemporales + @"\";
            var clavePedido          = String.Format("{0}01{1}4{2}", pedido.Campana, consecutivoEncabezado.ToString("D4"), pedido.Consecutivo.ToString("D4"));
            var nombreArchivoDetalle = "ORDER." + clavePedido;

            using (FileStream archivoDetalle = File.Create(rutaTemporalGrupo + nombreArchivoDetalle))
            {
                using (StreamWriter streamWriter = new StreamWriter(archivoDetalle))
                {
                    //Encabezado
                    var identificadorEncabezado = String.IsNullOrEmpty(pedido.ProductoClave) ? "H" : "A";
                    var detalleOrden            = String.Format("{6}  101{0}{1} {2}{3}{4}{5}00000000010000000000000000000000000000000", consecutivoEncabezado.ToString("D4"), pedido.Consecutivo.ToString("D2"), BusinessUtils.GetFechaFormateada(pedido.FechaP), BusinessUtils.GetHoraFormateada(pedido.FechaP), pedido.Zona, pedido.Registro, identificadorEncabezado);

                    streamWriter.WriteLine(clavePedido + "0");
                    streamWriter.WriteLine(detalleOrden);

                    //Pedido Actual
                    if (!String.IsNullOrEmpty(pedido.ProductoClave))
                    {
                        streamWriter.WriteLine(clavePedido + "2");
                        foreach (var detalleLinea in pedido.ProductoClave.Split('^'))
                        {
                            var linea           = detalleLinea.Split(',')[0].Substring(0, 5);
                            var cantidad        = detalleLinea.Split(',')[1];
                            var lineaFormateada = String.Format("0{0}00{1}", linea, Convert.ToInt16(cantidad).ToString("D3"));
                            streamWriter.Write(lineaFormateada);
                        }
                    }

                    //Pedido Anterios
                    if (!String.IsNullOrEmpty(pedido.ProductoClaveAnt.Trim()))
                    {
                        streamWriter.WriteLine(Environment.NewLine + clavePedido + "3");
                        foreach (var detalleLinea in pedido.ProductoClaveAnt.Split('^'))
                        {
                            var linea           = detalleLinea.Split(',')[0].Substring(0, 5);
                            var cantidad        = detalleLinea.Split(',')[1];
                            var lineaFormateada = String.Format("B 000{0}00{1}0000000000000{2}01", linea, Convert.ToInt16(cantidad).ToString("D3"), Convert.ToInt16(pedido.Campana) - 1);
                            streamWriter.WriteLine(lineaFormateada);
                        }
                    }
                }
            }
        }