예제 #1
0
        public static List <Cargar_Pedidos_ConfirmacionResult> Listar_Pedidos_Confirmacion(int idEmpresa, string ruc_empresa)
        {
            WmsWCF.WmsWCFClient objWMS = new WmsWCF.WmsWCFClient();
            List <Cargar_Pedidos_ConfirmacionResult> LstPedidos = new List <Cargar_Pedidos_ConfirmacionResult>();

            try
            {
                LstPedidos = objWMS.WmsPedidos_Confirmacion_Listar(idEmpresa, 1, ruc_empresa).ToList();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(LstPedidos);
        }
예제 #2
0
        //public static void ReadFileFromFTP(int idEmpresa, List<string> files, string RutaOrigen, string RutaSubmit, string RutaFail, string user, string pass)
        public static void ReadFileFromFTP(int idEmpresa, List <Cargar_Pedidos_ConfirmacionResult> ListaPedido)
        {
            List <gsInterfacePedidos_LeerResult> lstPedidos;
            //string Nombre;
            int codigoUsuario = 1;
            int idOrdenVenta;


            //foreach (Cargar_Pedidos_ConfirmacionResult file in ListaPedido)
            //{

            try
            {
                lstPedidos = new List <gsInterfacePedidos_LeerResult>();


                foreach (Cargar_Pedidos_ConfirmacionResult file in ListaPedido)
                {
                    gsInterfacePedidos_LeerResult Pedido = new gsInterfacePedidos_LeerResult();
                    //Pedido.NroPedido = "30313"; // file.NumeroDeDocumento; // Campos[0];                     //Op OV
                    //Pedido.ID_Item = "10210109003514"; //( file.CodigoDeArticulo;  //  Campos[1];                       //Item
                    //Pedido.Lote = "170831-0171-2050"; // file.CodigoDeLote; // Campos[2];                          //Lote
                    //Pedido.CantidadPedido = 6; // (decimal)file.UnidadesPedido; // decimal.Parse(Campos[3]);    //Cantidad
                    //Pedido.CantidadEntrega = 6; // (decimal)file.UnidadesEntregadas; // int.Parse(Campos[4]);       //Cantidad entregada
                    //Pedido.CantidadPendiente = 0; // (decimal)(file.Diferencia); // decimal.Parse(Campos[5]); //Diferencia
                    //Pedido.EstadoPedido = "D"; // file.Anticipado; // Campos[7];             // Estado
                    //Pedido.Id_Amarre = 76851; // decimal.Parse(file.IDDeLinea); // decimal.Parse(Campos[8]); // Id_Amarre
                    //Pedido.TransferidoTabla = "SILPT"; // file.Empresa;
                    //Pedido.Servicio = file.NumeroDeAlbaran;

                    /////////////-------------------------------------------------
                    Pedido.NroPedido         = file.NumeroDeDocumento;           // Campos[0];                     //Op OV
                    Pedido.ID_Item           = file.CodigoDeArticulo;            //  Campos[1];                       //Item
                    Pedido.Lote              = file.CodigoDeLote;                // Campos[2];                          //Lote
                    Pedido.CantidadPedido    = (decimal)file.UnidadesPedido;     // decimal.Parse(Campos[3]);    //Cantidad
                    Pedido.CantidadEntrega   = (decimal)file.UnidadesEntregadas; // int.Parse(Campos[4]);       //Cantidad entregada
                    Pedido.CantidadPendiente = (decimal)(file.Diferencia);       // decimal.Parse(Campos[5]); //Diferencia
                    Pedido.EstadoPedido      = file.Anticipado;                  // Campos[7];             // Estado
                    Pedido.Id_Amarre         = decimal.Parse(file.IDDeLinea);    // decimal.Parse(Campos[8]); // Id_Amarre
                    Pedido.TransferidoTabla  = file.Empresa;
                    Pedido.Servicio          = file.NumeroDeAlbaran;

                    lstPedidos.Add(Pedido);
                }


                lstPedidos = lstPedidos.OrderBy(x => x.Op).ToList();

                foreach (gsInterfacePedidos_LeerResult pedido in lstPedidos)
                {
                    try
                    {
                        WmsWCF.WmsWCFClient objWmsInsert = new WmsWCF.WmsWCFClient();
                        objWmsInsert.WmsPedidosPendientes_Insertar(idEmpresa, 1, pedido.NroPedido, pedido.ID_Item, pedido.Lote,
                                                                   decimal.Parse(pedido.CantidadPedido.ToString()), decimal.Parse(pedido.CantidadEntrega.ToString()),
                                                                   decimal.Parse(pedido.CantidadPendiente.ToString()),
                                                                   pedido.EstadoPedido, int.Parse(pedido.Id_Amarre.ToString()));      //1=SILVESTRE; 2=NEOAGRUM; 6=INATEC

                        //objWmsInsert.WmsPedidosPendientes_UpdateEstilos(idEmpresa, codigoUsuario, pedido.TransferidoTabla, pedido.Servicio);

                        Console.Write("Se registro Op" + pedido.NroPedido + " - " + pedido.Id_Amarre);
                    }
                    catch (Exception ex)
                    {
                        Console.Write("Error: Registrar TXT: " + pedido.NroPedido.ToString() + "-" + pedido.ID_Item.ToString() + ", " + ex.Message.ToString());
                    }
                }

                Console.Write("Se registro los pedidos consumidos.");

                //---------------------------Pedido--------------------------------

                //var lstOpOV = lstPedidos.Select(x => x.NroPedido).Distinct();


                foreach (gsInterfacePedidos_LeerResult pedido in lstPedidos)
                {
                    try
                    {
                        GuiaWCFClient       objGuiaVentaWCF  = new GuiaWCFClient();
                        OrdenVentaWCFClient objOrdenVentaWCF = new OrdenVentaWCFClient();

                        gsOV_BuscarCabeceraResult     objOrdenVentaCab;
                        gsOV_BuscarDetalleResult[]    objOrdenVentaDet      = null;
                        gsGuia_BuscarCabeceraResult   objGuiaVentaCab       = new gsGuia_BuscarCabeceraResult();
                        gsGuia_BuscarDetalleResult[]  objGuiaVentaDet       = null;
                        gsGuia_BuscarDetalleResult    objGuiaVentaDetUpdate = null;
                        gsOV_BuscarDetalleResult      objOrdenVenta_Linea   = null;
                        List <DM.gsItem_BuscarResult> lstProductos          = new List <DM.gsItem_BuscarResult>();
                        gsOV_BuscarImpuestoResult[]   lstImpuestos          = null;
                        GuiaVenta_LotesItemsResult[]  lstLotes = null;

                        bool?           bloqueado      = false;
                        string          mensajeBloqueo = null;
                        AgendaWCFClient objAgendaWCFClient;

                        VBG01134Result objAgendaCliente;

                        decimal?lineaCredito = null;
                        decimal?Id_Amarre    = 0;
                        decimal?TC           = 0;

                        DateTime?fechaVecimiento = null;

                        Console.Write("OP:" + pedido.NroPedido);
                        objAgendaWCFClient = new AgendaWCFClient();
                        objAgendaCliente   = new VBG01134Result();

                        idOrdenVenta     = int.Parse(pedido.NroPedido.ToString());
                        objOrdenVentaCab = objOrdenVentaWCF.OrdenVenta_Buscar_Guia(idEmpresa, codigoUsuario, idOrdenVenta, ref objOrdenVentaDet, ref lstImpuestos, ref bloqueado, ref mensajeBloqueo);

                        objAgendaCliente = objAgendaWCFClient.Agenda_BuscarCliente(idEmpresa, codigoUsuario, objOrdenVentaCab.ID_Agenda,
                                                                                   ref lineaCredito, ref fechaVecimiento, ref TC);
                        Id_Amarre = pedido.Id_Amarre;

                        objOrdenVenta_Linea = objOrdenVentaDet.ToList().FindAll(x => x.ID_Amarre == Id_Amarre).Single();

                        int idGuiaOp      = 0;
                        int idGuiaOpLinea = 0;
                        int item_id       = 0;

                        idGuiaOp      = int.Parse(objOrdenVentaCab.OpGuia.ToString());
                        idGuiaOpLinea = int.Parse(objOrdenVenta_Linea.OpGuia.ToString());
                        item_id       = int.Parse(objOrdenVenta_Linea.Item_ID.ToString());

                        if (objOrdenVenta_Linea == null)
                        {
                        }
                        else
                        {
                            if (idGuiaOpLinea > 0)
                            {
                                objGuiaVentaCab = objGuiaVentaWCF.GuiaVenta_Buscar(idEmpresa, codigoUsuario, idGuiaOp, ref objGuiaVentaDet, ref bloqueado, ref mensajeBloqueo);
                            }
                            else
                            {
                                objGuiaVentaCab = GuiaVenta_ObtenerCabecera(objOrdenVentaCab, idGuiaOp);
                                objGuiaVentaDet = GuiaVenta_ObtenerDetalle(objOrdenVentaCab, objOrdenVentaDet, idEmpresa, codigoUsuario).ToArray();
                            }

                            if (idGuiaOp > 0)
                            {
                                lstLotes = objGuiaVentaWCF.GuiaVenta_LotesItemBuscar(idEmpresa, codigoUsuario, int.Parse(idGuiaOp.ToString()), int.Parse(objOrdenVenta_Linea.Item_ID.ToString()));
                            }



                            List <GuiaVenta_LotesItemsResult> LotesUp = new List <GuiaVenta_LotesItemsResult>();
                            if (lstLotes == null)
                            {
                                LotesUp = new List <GuiaVenta_LotesItemsResult>();
                            }
                            else
                            {
                                LotesUp = ((GuiaVenta_LotesItemsResult[])lstLotes).ToList();
                            }

                            objGuiaVentaDetUpdate = GuiaVenta_ObtenerDetalle_Update(objGuiaVentaDet, lstPedidos, Id_Amarre, ref LotesUp, item_id);

                            lstLotes = (GuiaVenta_LotesItemsResult[])LotesUp.ToArray();



                            try
                            {
                                int Error = 0;
                                int cont  = 0;
                                WmsWCF.WmsWCFClient objWmsInsert = new WmsWCF.WmsWCFClient();

                                List <VBG00971Result> Lista_LoteVar = objGuiaVentaWCF.GuiaVenta_BuscarLotesxItem(idEmpresa, 1, int.Parse(pedido.NroPedido), (int)item_id, (int)objGuiaVentaCab.ID_AlmacenAnexo, (int)pedido.Id_Amarre).ToList();

                                foreach (VBG00971Result Lote in Lista_LoteVar)
                                {
                                    if (Lote.Lote == pedido.Lote)
                                    {
                                        cont++;
                                        break;
                                    }
                                }

                                if (cont == 0)
                                {
                                    objWmsInsert.WmsPedidosPendientes_Update(idEmpresa, codigoUsuario, pedido.Lote, (int)pedido.Id_Amarre, "F", "No se encuentra Lote para el Item");
                                }
                                else
                                {
                                    try
                                    {
                                        objGuiaVentaWCF.GuiaVenta_Registrar(idEmpresa, 1, objGuiaVentaCab, objGuiaVentaDetUpdate, decimal.Parse(idGuiaOp.ToString()), lstLotes);
                                        objWmsInsert.WmsPedidosPendientes_UpdateEstilos(idEmpresa, codigoUsuario, pedido.TransferidoTabla, pedido.Servicio);
                                        objWmsInsert.WmsPedidosPendientes_Update(idEmpresa, codigoUsuario, pedido.Lote, (int)pedido.Id_Amarre, "S", "Se registro correctamente.");
                                    }
                                    catch (Exception ex)
                                    {
                                        objWmsInsert.WmsPedidosPendientes_Update(idEmpresa, codigoUsuario, pedido.Lote, (int)pedido.Id_Amarre, "F", "Error, al registrar la Guia.");
                                        Console.Write("Error al registrar guias: " + ex.Message.ToString());
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.Write("Error: Registrar Guia: " + pedido.NroPedido.ToString() + "-" + pedido.ID_Item.ToString() + ", " + ex.Message.ToString());
                    }
                }

                ////------------------Mover archivos---------

                //    //MoverArchivos(RutaOrigen, RutaSubmit, file, user, pass);
                ////}
            }
            catch (Exception ex)
            {
                Console.Write("Error: Registrar Guia, " + ex.Message.ToString());
                //MoverArchivos(RutaOrigen, RutaFail, file, user, pass);
            }
            //}
        }