示例#1
0
        private DataTable Dt_pivot(DataTable dt)
        {
            DataTable tmp      = dt;
            DataTable dt_tabla = new DataTable();

            if (tmp.Rows.Count > 0 && tmp.Columns.Count > 1)
            {
                int     index = 1;
                DataRow dtRow;

                dt_tabla.Columns.Add("llave01", typeof(string));
                dt_tabla.Columns.Add("llave02", typeof(string));
                dt_tabla.Columns.Add("cd", typeof(string));
                dt_tabla.Columns.Add("empresa", typeof(string));
                dt_tabla.Columns.Add("dord_secue", typeof(string));
                dt_tabla.Columns.Add("tipo", typeof(string));
                dt_tabla.Columns.Add("item", typeof(string));
                dt_tabla.Columns.Add("cod_secci", typeof(string));
                dt_tabla.Columns.Add("cod_cpack", typeof(string));
                dt_tabla.Columns.Add("cantidad", typeof(string));
                dt_tabla.Columns.Add("val_precio", typeof(string));
                dt_tabla.Columns.Add("cod_cadenad", typeof(string));
                dt_tabla.Columns.Add("cod_almac", typeof(string));

                for (int i = 13; i < tmp.Columns.Count; i++)
                {
                    DataColumn dc     = tmp.Columns[i];
                    string     clname = dc.ColumnName;
                    for (int y = 0; y < tmp.Rows.Count; y++)
                    {
                        dtRow    = dt_tabla.NewRow();
                        dtRow[0] = tmp.Rows[y][0].ToString();
                        dtRow[1] = tmp.Rows[y][1].ToString();

                        //dtRow[2] = tmp.Rows[y][2].ToString();
                        string wcd = tmp.Rows[y][12].ToString();
                        dtRow[2] = DatosGenerales.Obt_CDxAlm(wcd);


                        dtRow[3] = tmp.Rows[y][3].ToString();
                        dtRow[4] = tmp.Rows[y][4].ToString();
                        dtRow[5] = tmp.Rows[y][5].ToString();

                        string wcantidad;
                        int    valor;

                        valor = Convert.ToInt32(tmp.Rows[y][i]);

                        if (valor == 0)
                        {
                            wcantidad = "000";
                        }
                        else
                        {
                            wcantidad = Convert.ToString(tmp.Rows[y][i]);
                        }

                        dtRow[6]  = tmp.Rows[y][6].ToString() + Right(clname, 2) + wcantidad;
                        dtRow[7]  = tmp.Rows[y][7].ToString();
                        dtRow[8]  = tmp.Rows[y][8].ToString();
                        dtRow[9]  = wcantidad;
                        dtRow[10] = tmp.Rows[y][10].ToString();
                        dtRow[11] = tmp.Rows[y][11].ToString();
                        dtRow[12] = tmp.Rows[y][12].ToString();

                        dt_tabla.Rows.Add(dtRow);
                        index++;
                    }
                }
            }
            return(dt_tabla);
        }
示例#2
0
        private bool Genera_FileTXT_NoRetail(string wcd)
        {
            if (dt_cab_noretail == null || dt_cab_noretail.Rows.Count == 0)
            {
                return(false);
            }

            string delimited = "|";
            bool   exito     = false;
            string zcd       = "";
            var    str       = new StringBuilder();

            foreach (DataRow datarow in dt_cab_noretail.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["oc_almac"].ToString());
                if (zcd != wcd)
                {
                    continue;
                }

                str.Append(datarow["oc_nord"].ToString() + delimited);                                   // Numero de orden de despacho
                str.Append(zcd + delimited);                                                             // Facility code
                str.Append(wcodcia + delimited);                                                         // Cod Cia
                str.Append(datarow["oc_nord"].ToString() + delimited);                                   // Numero de orden de despacho
                str.Append(datarow["oc_canal"].ToString() + datarow["oc_almac"].ToString() + delimited); // Order Type ejemplo: 5K
                str.Append(Convert.ToDateTime(datarow["oc_fecha"]).ToString("yyyyMMdd") + delimited);    // Fecha emision
                str.Append("" + delimited);                                                              // exp_date
                str.Append(Convert.ToDateTime(datarow["oc_fecha"]).ToString("yyyyMMdd") + delimited);    // Fecha de entrega requerida
                str.Append(datarow["oc_client"].ToString() + delimited);                                 // dest_facility_code (cod cliente)
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append(waction + delimited);                                 // action code
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append(datarow["oc_client"].ToString() + delimited);        // Cliente
                for (int i = 1; i <= 17; i++)
                {
                    str.Append("" + delimited);
                }
                ;
                str.Append(datarow["oc_docref"].ToString() + delimited);        // Nro O/C cliente ??
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append(datarow["oc_caden"].ToString() + delimited);                               // Cadena
                str.Append("" + delimited);
                str.Append(Convert.ToDateTime(datarow["oc_fecha"]).ToString("yyyyMMdd") + delimited); // Fecha de entrega requerida  ???
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);                                     // Ruta despacho ??
                str.Append(datarow["oc_almac"].ToString() + delimited);         // Almacen
                str.Append(datarow["oc_canal"].ToString() + delimited);         // 5 , 6
                str.Append(datarow["oc_ccli"].ToString() + delimited);          // RUC destinatario
                str.Append("\r\n");
            }

            if (str.Length == 0)
            {
                return(false);
            }
            File.AppendAllText(fileTXTc, str.ToString());


            // DETALLE NORETAIL
            int    correlativo = 0;
            string keyitem     = null;
            char   cero        = '0';
            string grupo       = "";

            str = new StringBuilder();

            grupo = dt_det_noretail.Rows[0]["od_nord"].ToString();

            foreach (DataRow datarow in dt_det_noretail.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["oc_almac"].ToString());
                if (zcd != wcd)
                {
                    continue;
                }

                // Resetear correlativo cuando cambia de grupo
                if (datarow["od_nord"].ToString() != grupo)
                {
                    correlativo = 0;
                    grupo       = datarow["od_nord"].ToString();
                }

                for (int xi = 0; xi < 12; xi++)
                {
                    string pad   = xi.ToString().Trim().PadLeft(2, cero);
                    var    value = datarow["od_qo" + pad];
                    if (value != DBNull.Value)
                    {
                        int cant = Convert.ToInt32(value);
                        if (cant != 0)
                        {
                            correlativo += 1;

                            string pos = (xi + 1).ToString().Trim().PadLeft(2, cero);

                            // Evaluar si el articulo es prepack o solid
                            if (datarow["od_cpack"].ToString() == "00001" || datarow["od_cpack"].ToString().Trim() == String.Empty)
                            {
                                keyitem = datarow["od_cart"].ToString() + datarow["od_cali"].ToString() + pos + DatosGenerales.CodNoRetail;
                            }
                            else
                            {
                                keyitem = datarow["od_cart"].ToString() + datarow["od_cali"].ToString() + datarow["od_cpack"].ToString() + DatosGenerales.CodNoRetail;
                            }

                            str.Append(datarow["od_nord"].ToString() + delimited);            // Numero de orden de despacho
                            str.Append(zcd + delimited);                                      // Facility code
                            str.Append(wcodcia + delimited);                                  // Cod Cia
                            str.Append(datarow["od_nord"].ToString() + delimited);            // Numero de orden de despacho
                            str.Append(correlativo.ToString() + delimited);                   // Numero correlativo
                            str.Append(keyitem + delimited);                                  // Key item
                            for (int i = 1; i <= 10; i++)
                            {
                                str.Append("" + delimited);
                            }
                            ;
                            str.Append(cant.ToString() + delimited);                          // Cantidad
                            str.Append("" + delimited);
                            str.Append(waction + delimited);
                            str.Append("" + delimited);
                            str.Append("" + delimited);
                            str.Append("" + delimited);
                            str.Append("" + delimited);
                            str.Append(datarow["od_costo"].ToString() + delimited);           // Costo
                            str.Append("0" + delimited);                                      // Sales
                            for (int i = 1; i <= 16; i++)
                            {
                                str.Append("" + delimited);
                            }
                            ;
                            str.Append(DateTime.Now.ToString("yyyyMMdd") + delimited);        // voucher_exp_date
                            str.Append("\r\n");
                        }
                    }
                }
            }

            File.AppendAllText(fileTXTd, str.ToString());

            //using (StreamWriter filtxt = new StreamWriter(fileTXTd, true, System.Text.Encoding.Default))
            //{
            //    filtxt.WriteLine(str.ToString());
            //}

            exito = (File.Exists(fileTXTc) && File.Exists(fileTXTd));
            return(exito);
        }
示例#3
0
        private bool Genera_FileTXT_1(string wcd)
        {
            if (dt_cab == null || dt_cab.Rows.Count == 0)
            {
                return(false);
            }

            string delimited = "|";
            bool   exito     = false;
            string zcd       = "";

            var str = new StringBuilder();

            foreach (DataRow datarow in dt_cab.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["cgud_almac"].ToString());
                if (zcd == wcd)
                {
                    str.Append(datarow["cgud_gudis"].ToString() + delimited);                                    // Numero de orden de despacho
                    str.Append(zcd + delimited);                                                                 // Facility code
                    str.Append(wcodcia + delimited);                                                             // Cod Cia
                    str.Append(datarow["cgud_gudis"].ToString() + delimited);                                    // Numero de orden de despacho
                    str.Append(datarow["cgud_canal"].ToString() + datarow["cgud_almac"].ToString() + delimited); // Order Type ejemplo: 5K
                    str.Append(Convert.ToDateTime(datarow["cgud_femis"]).ToString("yyyyMMdd") + delimited);      // Fecha emision
                    str.Append("" + delimited);                                                                  // exp_date
                    str.Append(Convert.ToDateTime(datarow["cgud_femis"]).ToString("yyyyMMdd") + delimited);      // Fecha de entrega requerida

                    // 16-12-2020 ALMACEN I SE ENVIA CON CLIENTE GENERICO, SOLICITUD DE OFRACIO
                    var wcliente = (datarow["cgud_almac"].ToString() == "I") ? "92070" : datarow["cgud_tndcl"].ToString();

                    str.Append(wcliente + delimited);        // dest_facility_code (cod tienda)
                    //str.Append(datarow["cgud_tndcl"].ToString() + delimited);        // dest_facility_code (cod tienda)

                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    //str.Append("" + delimited);
                    str.Append(datarow["cgud_tndcl"].ToString() + delimited);        // ref_nbr (cod tienda/cliente original)

                    str.Append(waction + delimited);                                 // action code
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);

                    str.Append(wcliente + delimited);       // Tienda - COD CLIENTE
                    //str.Append(datarow["cgud_tndcl"].ToString() + delimited);       // Tienda - COD CLIENTE

                    for (int i = 1; i <= 17; i++)
                    {
                        str.Append("" + delimited);
                    }
                    ;

                    str.Append(datarow["cgud_gudis"].ToString() + delimited);      // Customer_PO_number (nro prescrip - Juan V.)
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append(datarow["cgud_caden"].ToString() + delimited);                               // Cadena
                    str.Append("" + delimited);
                    str.Append(Convert.ToDateTime(datarow["cgud_femis"]).ToString("yyyyMMdd") + delimited); // Fecha de entrega requerida  ???
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);                                     // Ruta despacho ??
                    str.Append(datarow["cgud_almac"].ToString() + delimited);       // Almacen
                    str.Append(datarow["cgud_canal"].ToString() + delimited);       // 5 , 6
                    str.Append("" + delimited);                                     // RUC destinatario

                    //NUEVO CAMPO INDICADOR DE UNIFORMES
                    for (int i = 1; i <= 21; i++)
                    {
                        str.Append("" + delimited);
                    }
                    ;

                    if (datarow["cgud_tipar"].ToString() == "U")
                    {
                        str.Append("UNIFORMES" + delimited);       // Indicador de uniformes
                    }
                    else if (datarow["cgud_tipar"].ToString() == "M")
                    {
                        str.Append("MERCADERIA" + delimited);       // Indicador de mercaderia
                    }
                    else if (datarow["cgud_tipar"].ToString() == "O")
                    {
                        str.Append("NO MERCADERIA" + delimited);       // Indicador de no mercaderia
                    }
                    else
                    {
                        str.Append("" + delimited);       // Indicador de uniformes
                    }
                    //str.Append(datarow["cgud_tipar"].ToString() + delimited);       // Indicador de uniformes
                    str.Append("\r\n");

                    // ACUMULAMOS EN UNA LISTA PARA HACER EL UPDATE DEL FLAG MAS ABAJO
                    wcade_update += "'" + Convert.ToString(datarow["cgud_gudis"]).Trim() + "',";

                    // DIVIDIMOS LA CADENA PQ SALE ERROR EN EL VFP (STATEMENT TOO LONG)
                    if (wcade_update.Length > 900)
                    {
                        wcade_update = wcade_update.TrimEnd(',');
                        listaCade.Add(wcade_update);
                        wcade_update = "";
                    }
                }
            }

            if (str.Length == 0)
            {
                return(false);
            }

            File.WriteAllText(fileTXTc, str.ToString());

            wcade_update = wcade_update.TrimEnd(',');
            listaCade.Add(wcade_update);


            // DETALLE RETAIL
            int    correlativo = 0;
            string keyitem     = null;
            char   cero        = '0';
            string grupo       = "";

            str = new StringBuilder();

            grupo = dt_det.Rows[0]["dgud_gudis"].ToString();

            foreach (DataRow datarow in dt_det.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["cgud_almac"].ToString());
                if (zcd == wcd)
                {
                    // Resetear correlativo cuando cambia de grupo
                    if (datarow["dgud_gudis"].ToString() != grupo)
                    {
                        correlativo = 0;
                        grupo       = datarow["dgud_gudis"].ToString();
                    }


                    for (int xi = 0; xi < 12; xi++)
                    {
                        string pad   = xi.ToString().Trim().PadLeft(2, cero);
                        var    value = datarow["dgud_med" + pad];
                        if (value != DBNull.Value)
                        {
                            int cant = Convert.ToInt32(value);
                            if (cant != 0)
                            {
                                correlativo += 1;
                                decimal costo = 0;

                                // Evaluar si el articulo es prepack o suelto
                                if (datarow["dgud_cpack"].ToString() == "00001")
                                {
                                    int posi = xi;

                                    // Ajustar medida (Conversado con Vicente)
                                    //if (datarow["dgud_rmed"].ToString() == "E")
                                    //    posi = 0;
                                    //else
                                    //if ((datarow["dgud_artic"].ToString().Substring(0, 1) == "9") && (new[] { "A", "B", "C", "D", "E" }.Contains(datarow["dgud_rmed"].ToString())))
                                    //    posi = 0;

                                    // Para el WMS se suma 1 a la posicion
                                    string pos = (posi + 1).ToString().Trim().PadLeft(2, cero);

                                    //keyitem = datarow["dgud_artic"].ToString() + datarow["dgud_calid"].ToString() + pos + DatosGenerales.CodRetail;
                                    keyitem = datarow["dgud_artic"].ToString() + datarow["dgud_calid"].ToString() + pos;
                                    costo   = Convert.ToDecimal(datarow["dgud_costo"]);
                                }
                                else
                                {
                                    //keyitem = datarow["dgud_artic"].ToString() + datarow["dgud_calid"].ToString() + datarow["dgud_cpack"].ToString() + DatosGenerales.CodRetail;
                                    keyitem = datarow["dgud_artic"].ToString() + datarow["dgud_calid"].ToString() + datarow["dgud_cpack"].ToString();
                                    cant    = Convert.ToInt32(datarow["dgud_ppack"]);
                                    costo   = Convert.ToDecimal(datarow["dgud_costo"]) * Convert.ToInt32(datarow["dgud_touni"]);
                                }

                                str.Append(datarow["dgud_gudis"].ToString() + delimited);                            // Numero de orden de despacho
                                str.Append(DatosGenerales.Obt_CDxAlm(datarow["cgud_almac"].ToString()) + delimited); // Facility code
                                str.Append(wcodcia + delimited);                                                     // Cod Cia
                                str.Append(datarow["dgud_gudis"].ToString() + delimited);                            // Numero de orden de despacho
                                str.Append(correlativo.ToString() + delimited);                                      // Numero correlativo
                                str.Append(keyitem + delimited);                                                     // Key item
                                for (int i = 1; i <= 10; i++)
                                {
                                    str.Append("" + delimited);
                                }
                                ;
                                str.Append(cant.ToString() + delimited);                         // Cantidad
                                str.Append("" + delimited);
                                str.Append(waction + delimited);
                                str.Append("" + delimited);
                                str.Append("" + delimited);
                                str.Append("" + delimited);
                                str.Append("" + delimited);
                                str.Append(costo.ToString() + delimited);                        // Costo
                                str.Append("0" + delimited);                                     // Sales
                                for (int i = 1; i <= 16; i++)
                                {
                                    str.Append("" + delimited);
                                }
                                ;
                                //str.Append(DateTime.Now.ToString("yyyyMMdd") + delimited);       // voucher_exp_date
                                str.Append("" + delimited);                                        // voucher_exp_date (AHORA VA EN BLANCO)
                                str.Append("\r\n");

                                // Si es prepack se genera solo 1 fila en el TXT (correo de Miguel O.)
                                if (datarow["dgud_cpack"].ToString() != "00001")
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            if (str.Length == 0)
            {
                return(false);
            }

            File.WriteAllText(fileTXTd, str.ToString());

            exito = (File.Exists(fileTXTc) && File.Exists(fileTXTd));

            if (exito)
            {
                LogUtil.Graba_Log(winterface, winterface + ConfigurationManager.AppSettings["M012"] + " : " + Path.GetFileName(fileTXTc) + "  " + Path.GetFileName(fileTXTd), false, ""); // MSJ SE GENERO LOS ARCHIVOS OK
            }
            else
            {
                LogUtil.Graba_Log(winterface, winterface + ConfigurationManager.AppSettings["M013"] + " : " + Path.GetFileName(fileTXTc) + "  " + Path.GetFileName(fileTXTd), false, ""); // MSJ ERROR AL GENERAR ARCHIVOS
            }

            return(exito);
        }
示例#4
0
        private bool Genera_FileTXT_2(string wcd)
        {
            if (dt_cab == null || dt_cab.Rows.Count == 0)
            {
                return(false);
            }

            string delimited = "|";
            bool   exito     = false;
            string zcd       = "";
            var    str       = new StringBuilder();

            foreach (DataRow datarow in dt_cab.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["oc_almac"].ToString());
                if (zcd == wcd)
                {
                    str.Append(datarow["oc_nord"].ToString() + delimited);                                   // Numero de orden de despacho
                    str.Append(zcd + delimited);                                                             // Facility code
                    str.Append(wcodcia + delimited);                                                         // Cod Cia
                    str.Append(datarow["oc_nord"].ToString() + delimited);                                   // Numero de orden de despacho
                    str.Append(datarow["oc_canal"].ToString() + datarow["oc_almac"].ToString() + delimited); // Order Type ejemplo: 5K
                    str.Append(Convert.ToDateTime(datarow["oc_fecha"]).ToString("yyyyMMdd") + delimited);    // Fecha emision
                    str.Append("" + delimited);                                                              // exp_date
                    //str.Append(Convert.ToDateTime(datarow["oc_fecha"]).ToString("yyyyMMdd") + delimited);     // Fecha de entrega requerida
                    str.Append(Convert.ToDateTime(datarow["oc_fentreg"]).ToString("yyyyMMdd") + delimited);  // Fecha de entrega requerida-cambio x la fecha de entrega

                    var xtda = datarow["oc_client"].ToString().Trim();

                    if (datarow["oc_almac"].ToString() == "4" || datarow["oc_almac"].ToString() == "6")
                    {
                        if (!(datarow["oc_clisuc"].ToString().Trim() == null || datarow["oc_clisuc"].ToString().Trim() == ""))
                        {
                            xtda = xtda + datarow["oc_clisuc"].ToString().Trim();
                        }
                    }
                    else
                    {
                        // 16-12-2020 ALMACEN I SE ENVIA CON CLIENTE GENERICO, SOLICITUD DE OFRACIO
                        if (datarow["oc_almac"].ToString() == "I")
                        {
                            xtda = "92070";
                        }
                    }

                    str.Append(xtda + delimited);                                    // dest_facility_code (cod cliente)
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);

                    str.Append(waction + delimited);                                 // action code
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append(xtda + delimited);                                    // shipto_facility_code (Tienda)

                    for (int i = 1; i <= 11; i++)
                    {
                        str.Append("" + delimited);
                    }
                    ;

                    if (datarow["oc_almac"].ToString() == "4" || datarow["oc_almac"].ToString() == "6")
                    {
                        str.Append(datarow["oc_client"].ToString() + delimited);     // dest_company_code  (Cliente)
                    }
                    else
                    {
                        str.Append("" + delimited);
                    }

                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);

                    str.Append(datarow["oc_docref"].ToString() + delimited);        // Nro O/C cliente ??
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append(datarow["oc_caden"].ToString() + delimited);         // Cadena
                    str.Append("" + delimited);
                    //str.Append(Convert.ToDateTime(datarow["oc_fecha"]).ToString("yyyyMMdd") + delimited);       // Fecha de entrega requerida  ???
                    str.Append(Convert.ToDateTime(datarow["oc_fentreg"]).ToString("yyyyMMdd") + delimited);       // Fecha de entrega requerida  ???
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);
                    str.Append("" + delimited);                                     // Ruta despacho ??
                    str.Append(datarow["oc_almac"].ToString() + delimited);         // Almacen
                    str.Append(datarow["oc_canal"].ToString() + delimited);         // 5 , 6
                    str.Append(datarow["oc_ccli"].ToString() + delimited);          // RUC destinatario

                    for (int i = 1; i <= 25; i++)
                    {
                        str.Append("" + delimited);
                    }
                    ;

                    str.Append(datarow["oc_client"].ToString().Trim() + delimited);  // hdr_cust_short_text_5 (cliente original)

                    str.Append("\r\n");

                    // ACUMULAMOS EN UNA LISTA PARA HACER EL UPDATE DEL FLAG MAS ABAJO
                    wcade_update += "'" + Convert.ToString(datarow["oc_nord"]).Trim() + "',";

                    // DIVIDIMOS LA CADENA PQ SALE ERROR EN EL VFP (STATEMENT TOO LONG)
                    if (wcade_update.Length > 900)
                    {
                        wcade_update = wcade_update.TrimEnd(',');
                        listaCade.Add(wcade_update);
                        wcade_update = "";
                    }
                }
            }

            if (str.Length == 0)
            {
                return(false);
            }

            File.WriteAllText(fileTXTc, str.ToString());

            wcade_update = wcade_update.TrimEnd(',');
            listaCade.Add(wcade_update);


            // DETALLE NORETAIL
            int    correlativo = 0;
            string keyitem     = null;
            char   cero        = '0';
            string grupo       = "";

            str = new StringBuilder();

            grupo = dt_det.Rows[0]["od_nord"].ToString();

            foreach (DataRow datarow in dt_det.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["oc_almac"].ToString());
                if (zcd == wcd)
                {
                    // Resetear correlativo cuando cambia de grupo
                    if (datarow["od_nord"].ToString() != grupo)
                    {
                        correlativo = 0;
                        grupo       = datarow["od_nord"].ToString();
                    }

                    for (int xi = 0; xi < 12; xi++)
                    {
                        string pad   = xi.ToString().Trim().PadLeft(2, cero);
                        var    value = datarow["od_qo" + pad];
                        if (value != DBNull.Value)
                        {
                            int cant = Convert.ToInt32(value);
                            if (cant != 0)
                            {
                                correlativo += 1;

                                // Evaluar si el articulo es prepack o suelto
                                if (datarow["od_cpack"].ToString() == "00001" || datarow["od_cpack"].ToString().Trim() == String.Empty)
                                {
                                    int posi = xi;

                                    //// Ajustar medida (Conversado con Vicente)
                                    //if (datarow["od_rmed"].ToString() == "E")
                                    //    posi = 0;
                                    //else
                                    //if ((datarow["od_cart"].ToString().Substring(0, 1) == "9") && (new[] { "A", "B", "C", "D", "E" }.Contains(datarow["od_rmed"].ToString())))
                                    //    posi = 0;

                                    // Para el WMS se suma 1 a la posicion
                                    string pos = (posi + 1).ToString().Trim().PadLeft(2, cero);

                                    //keyitem = datarow["od_cart"].ToString() + datarow["od_cali"].ToString() + pos + DatosGenerales.CodNoRetail;
                                    keyitem = datarow["od_cart"].ToString() + datarow["od_cali"].ToString() + pos;
                                }
                                else
                                {
                                    //keyitem = datarow["od_cart"].ToString() + datarow["od_cali"].ToString() + datarow["od_cpack"].ToString() + DatosGenerales.CodNoRetail;
                                    keyitem = datarow["od_cart"].ToString() + datarow["od_cali"].ToString() + datarow["od_cpack"].ToString();
                                }

                                str.Append(datarow["od_nord"].ToString() + delimited);            // Numero de orden de despacho
                                str.Append(zcd + delimited);                                      // Facility code
                                str.Append(wcodcia + delimited);                                  // Cod Cia
                                str.Append(datarow["od_nord"].ToString() + delimited);            // Numero de orden de despacho
                                str.Append(correlativo.ToString() + delimited);                   // Numero correlativo
                                str.Append(keyitem + delimited);                                  // Key item
                                for (int i = 1; i <= 10; i++)
                                {
                                    str.Append("" + delimited);
                                }
                                ;
                                str.Append(cant.ToString() + delimited);                          // Cantidad
                                str.Append("" + delimited);
                                str.Append(waction + delimited);
                                str.Append("" + delimited);
                                str.Append("" + delimited);
                                str.Append("" + delimited);
                                str.Append("" + delimited);
                                str.Append(datarow["od_costo"].ToString() + delimited);           // Costo
                                str.Append("0" + delimited);                                      // Sales
                                for (int i = 1; i <= 16; i++)
                                {
                                    str.Append("" + delimited);
                                }
                                ;
                                //str.Append(DateTime.Now.ToString("yyyyMMdd") + delimited);       // voucher_exp_date
                                str.Append("" + delimited);                                        // voucher_exp_date (AHORA VA EN BLANCO)
                                str.Append("\r\n");

                                // Si es prepack se genera solo 1 fila en el TXT (correo de Miguel O.)
                                if (!(datarow["od_cpack"].ToString() == "00001" || datarow["od_cpack"].ToString().Trim() == String.Empty))
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            if (str.Length == 0)
            {
                return(false);
            }

            File.WriteAllText(fileTXTd, str.ToString());

            //using (StreamWriter filtxt = new StreamWriter(fileTXTd, true, System.Text.Encoding.Default))
            //{
            //    filtxt.WriteLine(str.ToString());
            //}

            exito = (File.Exists(fileTXTc) && File.Exists(fileTXTd));

            if (exito)
            {
                LogUtil.Graba_Log(winterface, winterface + ConfigurationManager.AppSettings["M012"] + " : " + Path.GetFileName(fileTXTc) + "  " + Path.GetFileName(fileTXTd), false, ""); // MSJ SE GENERO LOS ARCHIVOS OK
            }
            else
            {
                LogUtil.Graba_Log(winterface, winterface + ConfigurationManager.AppSettings["M013"] + " : " + Path.GetFileName(fileTXTc) + "  " + Path.GetFileName(fileTXTd), false, ""); // MSJ ERROR AL GENERAR ARCHIVOS
            }

            return(exito);
        }
示例#5
0
        /************** Genera_FileTXT
         * Metodo que genera la interface como archivo de texto para el WMS
         ***************/
        private bool Genera_FileTXT(string wcd)
        {
            bool   exito = false;
            string zcd   = "";

            string fechor = DateTime.Now.ToString("yyyyMMddHHmmss") + ".TXT";

            fileTXTc = Path.Combine(DatosGenerales.rutaMain, "ISH_" + fechor);
            fileTXTd = Path.Combine(DatosGenerales.rutaMain, "ISL_" + fechor);

            // Eliminar archivos ISH_, ISL
            try
            {
                var dir = new DirectoryInfo(DatosGenerales.rutaMain);
                foreach (var file in dir.EnumerateFiles("IS*.TXT"))
                {
                    file.Delete();
                }
            }
            catch
            {
                // omitido
            }

            if (dt_cabe == null || dt_cabe.Rows.Count == 0)
            {
                return(false);
            }

            string delimited = "|";
            var    str       = new StringBuilder();

            foreach (DataRow datarow in dt_cabe.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["desc_secci"].ToString());
                if (zcd != wcd)
                {
                    continue;
                }

                str.Append(datarow["desc_ndesp"].ToString() + delimited);        // Numero de guia
                str.Append(datarow["desc_ndesp"].ToString() + delimited);        // Numero de guia
                str.Append(zcd + delimited);                                     // Facility code
                str.Append(wcodcia + delimited);                                 // Cod Cia
                str.Append("" + delimited);
                str.Append(waction + delimited);                                 // Action Code
                str.Append("" + delimited);
                str.Append("DEV" + delimited);                                   // DEV
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append(Convert.ToDateTime(datarow["desc_fecha"]).ToString("yyyyMMdd") + delimited);  // Fecha emision
                str.Append("\r\n");
            }

            if (File.Exists(fileTXTc))
            {
                File.Delete(fileTXTc);
            }
            if (str.Length == 0)
            {
                return(false);
            }
            File.WriteAllText(fileTXTc, str.ToString());


            // DETALLE
            int    correlativo = 0;
            string keyitem     = "";
            string grupo       = "";

            str = new StringBuilder();

            grupo = dt_deta.Rows[0]["desc_almac"].ToString() + dt_deta.Rows[0]["desc_gudis"].ToString();

            foreach (DataRow datarow in dt_deta.Rows)
            {
                zcd = DatosGenerales.Obt_CDxAlm(datarow["desc_secci"].ToString());
                if (zcd != wcd)
                {
                    continue;
                }

                // Resetear correlativo cuando cambia de grupo
                if (dt_deta.Rows[0]["desc_almac"].ToString() + datarow["desc_gudis"].ToString() != grupo)
                {
                    correlativo = 0;
                    grupo       = dt_deta.Rows[0]["desc_almac"].ToString() + dt_deta.Rows[0]["desc_gudis"].ToString();
                }


                //for (int xi = 0; xi < 12; xi++)
                //{

                //string pad = xi.ToString().Trim().PadLeft(2, cero);
                //var value = datarow["desd_med_per"];
                //if (value != DBNull.Value)
                //{
                //int cant = Convert.ToInt32(value);
                //if (cant != 0)
                //{
                correlativo += 1;

                //string pos = (xi + 1).ToString().Trim().PadLeft(2, cero);
                string pos = datarow["desd_med_lat"].ToString();

                keyitem = datarow["desd_artic"].ToString() + datarow["desd_calid"].ToString() + pos + DatosGenerales.CodRetail;

                str.Append(datarow["desc_ndesp"].ToString() + delimited);        // Numero de guia
                str.Append(datarow["desc_ndesp"].ToString() + delimited);        // Numero de guia
                str.Append(zcd + delimited);                                     // Facility code
                str.Append(wcodcia + delimited);                                 // Cod Cia
                str.Append(correlativo.ToString() + delimited);                  // Numero correlativo
                str.Append(waction + delimited);                                 // Action Code
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append("" + delimited);
                str.Append(keyitem + delimited);                                 // Key item
                for (int i = 1; i <= 12; i++)
                {
                    str.Append("" + delimited);
                }
                str.Append(correlativo.ToString() + delimited);                  // Cantidad
                str.Append("\r\n");
                //}
                //}
                //}
            }

            if (File.Exists(fileTXTd))
            {
                File.Delete(fileTXTd);
            }
            File.WriteAllText(fileTXTd, str.ToString());

            exito = (File.Exists(fileTXTc) && File.Exists(fileTXTd));
            return(exito);
        }