Example #1
0
        public IappServiceClient IniciaNuevoCliente(string _Key)
        {
            decimal _porcentajeExcesoCorto;
            string  UriServicio;

            UriServicio     = ConfigurationManager.AppSettings["UriServicio"];
            OcultaErrorReal = ConfigurationManager.AppSettings["OcultaErrorReal"].Equals("1") ? true : false;

            decimal.TryParse(ConfigurationManager.AppSettings["PorcentajeExcesoCorto"], out _porcentajeExcesoCorto);
            PorcentajeExcesoCorto   = _porcentajeExcesoCorto / 100;
            CalidadesTipoArtExcluir = ConfigurationManager.AppSettings["CalidadesTipoExcluir"] as string;
            DefaultOrigenPartido    = ConfigurationManager.AppSettings["DefaultOrigenPartido"] as string;
            IappServiceClient cliente = new IappServiceClient();

            cliente.Endpoint.Address = new System.ServiceModel.EndpointAddress(new Uri(UriServicio), cliente.Endpoint.Address.Identity, cliente.Endpoint.Address.Headers);
            EndpointAddressBuilder builder = new EndpointAddressBuilder(cliente.Endpoint.Address);
            AddressHeader          header  = AddressHeader.CreateAddressHeader("Token", "", _Key);

            builder.Headers.Add(header);
            cliente.Endpoint.Address = builder.ToEndpointAddress();
            var mensajeBehavior = new InspectorBehavior(Usuario, "", _Key);

            cliente.Endpoint.Behaviors.Add(mensajeBehavior);

            return(cliente);
        }
        public bool BuscaCLiente(string Busqueda)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado; //Resultado de Operacion
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.BUSCA_CLIENTE;
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();
                parEnt.Add(Busqueda);
                //parEnt.Add(textBox2.Text);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        List <appWcfService.TCLIE> ListClientes = appWcfService.Utils.Deserialize <List <appWcfService.TCLIE> >(resultado.VALSAL[1]);
                        this.ClientesdataGrid.ItemsSource = ListClientes;

                        resultadoOpe = true;
                    }
                    else
                    {
                        ClientesdataGrid.ItemsSource = null;
                        //BuscartextBox.Text = "";
                        MessageBox.Show("No se encontraron coincidencias.", "Sin Coincidencias", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                        //MostrarMensaje(Mensajes.MENSAJE_TIPO_NO_ENCONTRADO);
                    }
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
Example #3
0
 public void FinalizaCliente(IappServiceClient cliente)
 {
     try
     {
         if (cliente != null)
         {
             cliente.Close();
         }
     }
     catch { }
     cliente = null;
 }
        public bool Muestraubicacionesarticulo(string articulo, string partida, string almacen)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.MUESTRA_UBICACIONES_ARTICULO;

                List <string> parEnt = new List <string>();
                parEnt.Add(articulo);
                parEnt.Add(partida);
                parEnt.Add(almacen);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        List <appWcfService.USP_OBTIENE_UBICACIONES_Result> Listubicacionesarticulo = appWcfService.Utils.Deserialize <List <appWcfService.USP_OBTIENE_UBICACIONES_Result> >(resultado.VALSAL[1]);
                        Ubicacionesdatagrid.ItemsSource = Listubicacionesarticulo;
                        resultadoOpe = true;
                    }
                    else
                    {
                        Ubicacionesdatagrid.ItemsSource = null;
                    }
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
Example #5
0
        private bool Sumar()
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = "PED001"; // CodigoOperacion.SUMAR_DOS_VALORES;
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();
                parEnt.Add(valor1textBox.Text);
                parEnt.Add(valor2textBox.Text);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    //if (resultado.VALSAL[0].Equals("1"))
                    //{
                    resultadotextBox.Text = resultado.VALSAL[0];
                    resultadoOpe          = true;
                    //}
                    //else
                    //{
                    //    MostrarMensaje(Mensajes.MENSAJE_TIPO_NO_ENCONTRADO);
                    //}
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool Obtienedetpreparacion(decimal iddetalle)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.OBTIENE_DETALLE_PREPRACION;
                List <string> parEnt = new List <string>();
                parEnt.Add(iddetalle.ToString());

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        List <appWcfService.USP_OBTIENE_DETPREPARACION_POR_IDDETALLESE_Result> Listdetpreparacion = appWcfService.Utils.Deserialize <List <appWcfService.USP_OBTIENE_DETPREPARACION_POR_IDDETALLESE_Result> >(resultado.VALSAL[1]);
                        DetalleItemsdataGrid.ItemsSource = Listdetpreparacion;
                        resultadoOpe = true;
                    }
                    else
                    {
                        //MostrarMensaje(Mensajes.MENSAJE_TIPO_NO_ENCONTRADO);
                    }
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool obtieneDatosPartida(string articulo, string partida, string almacen)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.OBTIENE_DATOS_PARTIDA;

                List <string> parEnt = new List <string>();
                parEnt.Add(articulo);
                parEnt.Add(partida);
                parEnt.Add(almacen);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    string color;
                    double peso;

                    peso = Double.Parse(resultado.VALSAL[0]) / 100;
                    totalpartidalabel.Content = peso.ToString() + " KG";

                    color = resultado.VALSAL[1] + " - " + resultado.VALSAL[2];
                }
                else
                {
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool ObtieneParametros()
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado; //Resultado de Operacion
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.OBTIENE_PARAMETROS;
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        List <appWcfService.PEPARM> ListParametros = appWcfService.Utils.Deserialize <List <appWcfService.PEPARM> >(resultado.VALSAL[1]);
                        emitido      = int.Parse(ListParametros.Find(x => x.PARMIDPA == 21).PARMVAPA);
                        ipreparacion = int.Parse(ListParametros.Find(x => x.PARMIDPA == 22).PARMVAPA);
                        fpreparacion = int.Parse(ListParametros.Find(x => x.PARMIDPA == 23).PARMVAPA);
                        despachado   = int.Parse(ListParametros.Find(x => x.PARMIDPA == 24).PARMVAPA);
                        resultadoOpe = true;
                    }
                }
                else
                {
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool guardaPreparacionBolsa(List <PEBODP> bolsa)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.GUARDA_PREPARACION_BOLSA;
                List <string> parEnt = new List <string>();
                parEnt.Add(Utils.Serialize(bolsa));

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    //limpiar la lista y cargar denuevo con la funcion de
                    //bolsas preparadas para obtener el bodpidde de cada bolsa
                    //Double idprep = Double.Parse(resultado.VALSAL[0]);
                    //bolsa.BODPIDDE = Decimal.Parse(idprep.ToString());
                    DetalleItemsdataGrid.ItemsSource = null;
                    Obtienedetpreparacion(objdetalle.DEPEIDDP);
                    resultadoOpe = true;
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool GuardaCasillero(appWcfService.PECASI casillero)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado; //Resultado de Operacion
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.MODIFICA_CASILLERO;
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();
                parEnt.Add(Utils.Serialize(casillero));

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    //MessageBox.Show("Se han actualizado correctamente la información del casillero", "Correcto!", MessageBoxButton.OK, MessageBoxImage.Information);
                    resultadoOpe = true;
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool ActualizaNotificaciones(string emitido, string ipreparacion, string fpreparacion, string despachado)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado; //Resultado de Operacion
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.ACTUALIZA_NOTIFICACIONES;
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();
                parEnt.Add(emitido);
                parEnt.Add(ipreparacion);
                parEnt.Add(fpreparacion);
                parEnt.Add(despachado);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    resultadoOpe = true;
                }
                else
                {
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool RemueveBolsa(decimal idbolsapedido)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.REMUEVE_BOLSA_PEDIDO;
                List <string> parEnt = new List <string>();
                parEnt.Add(idbolsapedido.ToString());
                parEnt.Add(ParametrosFe.Usuario);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    MessageBox.Show("La bolsa ha sido eliminada correctamente.", "Eliminar", MessageBoxButton.OK, MessageBoxImage.Information);
                    cambio = false;
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
Example #13
0
        public IappServiceClient IniciaNuevoCliente()
        {
            string UriServicio;

            UriServicio = ConfigurationManager.AppSettings["UriServicioPedNac"];
            //26062018
            decimal _porcentajeExcesoCorto;

            //OcultaErrorReal = ConfigurationManager.AppSettings["OcultaErrorReal"].Equals("1") ? true : false;

            //decimal.TryParse(ConfigurationManager.AppSettings["PorcentajeExcesoCorto"], out _porcentajeExcesoCorto);
            //PorcentajeExcesoCorto = _porcentajeExcesoCorto / 100;
            //CalidadesTipoArtExcluir = ConfigurationManager.AppSettings["CalidadesTipoExcluir"] as string;
            //DefaultOrigenPartido = ConfigurationManager.AppSettings["DefaultOrigenPartido"] as string;

            //IappServiceClient cliente = new IappServiceClient();
            //cliente.Endpoint.Address = new System.ServiceModel.EndpointAddress(new Uri(UriServicio), cliente.Endpoint.Address.Identity, cliente.Endpoint.Address.Headers);
            //return cliente;

            IappServiceClient cliente = new IappServiceClient();

            cliente.Endpoint.Address = new System.ServiceModel.EndpointAddress(new Uri(UriServicio), cliente.Endpoint.Address.Identity, cliente.Endpoint.Address.Headers);

            //if (HttpContext.Current == null || HttpContext.Current.Session["Token"] == null || HttpContext.Current.Session["Token"].ToString().Trim() == string.Empty)
            //{
            //    HttpContext.Current.Session["Token"] = Security ?? "";
            //}
            EndpointAddressBuilder builder = new EndpointAddressBuilder(cliente.Endpoint.Address);
            AddressHeader          header  = AddressHeader.CreateAddressHeader("Token", "", appfe.Token.security);

            builder.Headers.Add(header);
            cliente.Endpoint.Address = builder.ToEndpointAddress();
            var mensajeBehavior = new InspectorBehavior(Usuario, "", appfe.Token.security ?? "");

            cliente.Endpoint.Behaviors.Add(mensajeBehavior);

            return(cliente);
        }
Example #14
0
        public bool GeneraReporte(DateTime feinicio, DateTime fefin)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                List <appWcfService.USP_REPORTE_MOVIMIENTOS_FECHAS_Result> lista = null;

                RESOPE resultado; //Resultado de Operacion
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.REPORTE_MOVIMIENTOS_FECHAS; //1
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();
                //parEnt.Add(feinicio.ToUniversalTime().ToString());
                //parEnt.Add(fefin.ToUniversalTime().ToString());

                parEnt.Add(feinicio.ToShortDateString());
                parEnt.Add(fefin.ToShortDateString());
                //parEnt.Add(textBox2.Text);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        lista = Utils.Deserialize <List <appWcfService.USP_REPORTE_MOVIMIENTOS_FECHAS_Result> >(resultado.VALSAL[1]);
                        VisualizarReporte(lista, "appfe.MovimientosFechas.rdlc", "DataSetMovimientosFechas");
                        resultadoOpe = true;

                        //webBrowser1.NavigateToString(@"<HTML><IFRAME SCROLLING=""YES"" SRC=""MyPDF.pdf""></IFRAME></HTML>");
                        //selestado = DevuelveSeleccionEstado();
                        //Muestrapedidos(selestado); //Actualiza la grilla segun el combo seleccionado
                        //if (ListAnulados.Count > 1) //Envia los mensajes de acuerdo al tamaño de lista enviada.
                        //{
                        //    MessageBox.Show("Se han anulado correctamente los pedidos.", "Anulados", MessageBoxButton.OK, MessageBoxImage.Information);
                        //}
                        //else
                        //{
                        //    MessageBox.Show("Se ha anulado correctamente el pedido.", "Anulado", MessageBoxButton.OK, MessageBoxImage.Information);
                        //}
                    }
                    //else
                    //{
                    //    //MessageBox.Show("Ha ocurrido un error.", "Falló", MessageBoxButton.OK, MessageBoxImage.Error);
                    //    MessageBox.Show("No se encontrarón Movimientos en el rango de fechas", "Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
                    //}
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool CargaBolsa(decimal iddetalle, string empaque)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado;
                clt = _ParametrosIni.IniciaNuevoCliente();
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.OBTIENE_BOLSA;
                List <string> parEnt = new List <string>();
                parEnt.Add(iddetalle.ToString());
                parEnt.Add(empaque);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        List <appWcfService.USP_OBTIENE_BOLSA_Result> ListBolsas = appWcfService.Utils.Deserialize <List <appWcfService.USP_OBTIENE_BOLSA_Result> >(resultado.VALSAL[1]);
                        resultadoOpe = true;
                        //listadetallegrilla.Clear();
                        foreach (var item in ListBolsas)
                        {
                            appWcfService.USP_OBTIENE_DETPREPARACION_POR_IDDETALLESE_Result objdet = new appWcfService.USP_OBTIENE_DETPREPARACION_POR_IDDETALLESE_Result();
                            objdet.DEPEIDDP = item.DEPEIDDP;
                            objdet.BOLSIDBO = item.BOLSIDBO;
                            objdet.BOLSCOEM = item.BOLSCOEM;
                            //objdet.BOLSCOCA = item.BOLSCOCA;
                            objdet.BOLSARTI = item.BOLSARTI;
                            objdet.BOLSPART = item.BOLSPART;
                            objdet.BOLSALMA = item.BOLSALMA;
                            objdet.BOLSCANT = item.BOLSCANT;
                            objdet.BOLSPESO = item.BOLSPESO;
                            objdet.TIEMTARA = item.TIEMTARA;
                            objdet.UNIDTARA = item.UNIDTARA;
                            objdet.BODPCANT = item.BOLSCANT;
                            objdet.BODPPESO = item.BOLSPESO;
                            objdet.BODPINBO = 1;
                            objdet.BODPPEBR = (item.UNIDTARA * objdet.BODPCANT) + objdet.BODPPESO + objdet.TIEMTARA.Value;

                            //objdet.BODPPERE = objdet.BODPPEBR - ((objdet.UNIDTARA * objdet.BODPCANT) + objdet.TIEMTARA);

                            objdet.BODPPERE = item.BOLSPESO;


                            objdet.BODPTAUN = item.UNIDTARA;
                            //objdet.BODPPEBR = item.BOLSPESO;

                            //listadetallegrilla.Add(objdet);
                            var bolsa = listadetallegrilla.Find(x => x.BOLSCOEM == objdet.BOLSCOEM);
                            if (bolsa == null)
                            {
                                listadetallegrilla.Add(objdet);
                            }
                            else
                            {
                                MessageBox.Show("Ya se ha ingresado el código de empaque, por favor ingrese un código de empaque diferente.", "Código de empaque duplicado", MessageBoxButton.OK, MessageBoxImage.Information);
                            }
                        }
                        DetalleItemsdataGrid.ItemsSource = null;
                        DetalleItemsdataGrid.ItemsSource = listadetallegrilla;
                    }
                    else
                    {
                        MessageBox.Show("Código de empaque incorrecto", "Código de empaque incorrecto", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                        //MostrarMensaje(Mensajes.MENSAJE_TIPO_NO_ENCONTRADO);
                    }
                }
                else
                {
                    //ErrorLabel.Font.Bold = true;
                    //ErrorLabel.Text = resultado.MENERR;
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = _ParametrosIni.ErrorGenerico(ex.Message);
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }
        public bool BuscaArticulo(string contrato, string articulo, string partida, string seleccion)
        {
            bool resultadoOpe;
            IappServiceClient clt = null;

            resultadoOpe = false;
            try
            {
                RESOPE resultado; //Resultado de Operacion
                clt = _ParametrosIni.IniciaNuevoCliente();
                //codigo de operacion
                PAROPE argumentos = new PAROPE();
                argumentos.CODOPE = CodigoOperacion.BUSCA_ARTICULO;
                //asigna parametros entrada en orden
                List <string> parEnt = new List <string>();
                parEnt.Add(contrato);
                parEnt.Add(articulo);
                parEnt.Add(partida);
                parEnt.Add(seleccion);

                argumentos.VALENT = parEnt.ToArray();
                resultado         = clt.EjecutaOperacion(argumentos);

                if (resultado.ESTOPE)
                {
                    if (resultado.VALSAL[0].Equals("1"))
                    {
                        List <appWcfService.USP_OBTIENE_ARTICULOS_Result> Listaconsulta = appWcfService.Utils.Deserialize <List <appWcfService.USP_OBTIENE_ARTICULOS_Result> >(resultado.VALSAL[1]);
                        //si no selecciona el cliente no hace nada
                        if (tipoped == Constantes.VENTA)
                        {
                            if (rucclie != null && rucclie != "")
                            {
                                if (string.IsNullOrWhiteSpace(contrato)) //&& tipo venta
                                {
                                    Listaconsulta = Listaconsulta.Where(x => (x.MCRUC == rucclie && x.ASIGNUPE != "999999") || x.MCRUC != rucclie && x.ASIGNUPE == "999999").ToList();
                                }
                                else
                                { //por validar para solo mostrar los contratos del cliente. 20/04/2018
                                    Listaconsulta = Listaconsulta.Where(x => (x.MCRUC == rucclie)).ToList();
                                }
                            }
                        }
                        Listaconsulta.ForEach(x =>
                        {
                            var objrepetido = ListArticulos.Find(z => z.DEPECOAR == x.LOTITEM && z.DEPEPART == x.LOTPARTI && z.DEPEALMA == x.LOTALM);
                            if (objrepetido == null)
                            {
                                PEDEPE objart = new PEDEPE
                                {
                                    DEPECOAR = x.LOTITEM,
                                    DEPEPART = x.LOTPARTI,
                                    DEPEDISP = x.LOTSTOCK,
                                    DEPEALMA = x.LOTALM,
                                    DEPEPESO = x.PESOSOL,
                                    DEPECASO = x.CANTSOL,
                                    DEPECONT = x.ASIGNUPE,
                                    DEPEDSAR = x.CALIDEAB + "" + x.CALICOMP,
                                    LOTCANRE = x.LOTCANRE,
                                    DEPESECU = x.CVTDSECU,
                                };
                                ListArticulos.Add(objart);
                            }
                        });
                        resultadoOpe = true;
                    }
                    else
                    {
                        MessageBox.Show("No se encontraron coincidencias", "Sin Coincidencias", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    }
                }
                else
                {
                    MessageBox.Show(resultado.MENERR);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(_ParametrosIni.ErrorGenerico(ex.Message));
            }
            finally
            {
                _ParametrosIni.FinalizaCliente(clt);
            }
            return(resultadoOpe);
        }