Exemplo n.º 1
0
        private List <EntradaSalida> GetList()
        {
            try
            {
                List <EntradaSalida> entradasSalidas = new List <EntradaSalida>();
                EntradaSalida        entsal          = new EntradaSalida();
                Sesion session = new Sesion();
                session = (Sesion)Session["Sesion" + Session.SessionID];
                CN_CapEntradaSalida cnentSal = new CN_CapEntradaSalida();
                int ManAut;
                switch (cmbManAuto.SelectedValue)
                {
                case "1":
                    ManAut = 1;     //manual
                    break;

                case "0":
                    ManAut = 0;     //automatico
                    break;

                default:
                    ManAut = -1;     //todos los demas
                    break;
                }
                cnentSal.ConsultarEntradasSalidas(ref entradasSalidas, ref entsal, session,
                                                  txtNombre2.Text,
                                                  txtCliente1.Text == "" ? -1 : int.Parse(txtCliente1.Text), txtCliente2.Text == "" ? -1 : int.Parse(txtCliente2.Text),
                                                  ManAut,
                                                  txtProveedor1.Text == "" ? -1 : int.Parse(txtProveedor1.Text), txtProveedor2.Text == "" ? -1 : int.Parse(txtProveedor2.Text),
                                                  txtReferencia2.Text,
                                                  dpFecha1.SelectedDate, dpFecha2.SelectedDate,//<==
                                                  cmbEstatus.SelectedValue,
                                                  txtNumero1.Text == "" ? -1 : int.Parse(txtNumero1.Text), txtCliente3.Text == "" ? -1 : int.Parse(txtCliente3.Text));
                return(entradasSalidas);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private string Producto_Cantidad(Sesion sesion, string valor_retorno, string nat_, string gpo_, int id_prd, string ref_, int es_, int ter_, int can_, string mov_, string cte_, Producto producto)
        {
            try
            {
                if (nat_ == "1")
                {
                    int cantidadB = 0;
                    foreach (EntradaSalidaDetalle dr in list_Es)
                    {
                        if (dr.Id_Prd.ToString() == id_prd.ToString())
                        {
                            cantidadB = cantidadB + Convert.ToInt32(dr.Es_Cantidad);
                        }
                    }
                    if (Session["estatus" + Session.SessionID + HF_ClvPag].ToString() == "1")
                    {
                        cantidadB = cantidadB - Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]);
                    }

                    CN_CapRemision rem         = new CN_CapRemision();
                    int            cantidadES2 = 0;
                    if (actualizacionDocumento)
                    {
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, id_prd, nat_, ref cantidadES2, sesion.Emp_Cnx);
                    }


                    if (producto.Prd_InvFinal - producto.Prd_Asignado + cantidadES2 < can_ + cantidadB)
                    {
                        return("-1@@" + "No hay producto suficiente");
                    }
                }
                else if (gpo_ == "0")
                {
                    int edicion = Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]);
                    if (producto.Prd_InvFinal - producto.Prd_Asignado - (edicion - can_) < 0)
                    {
                        return("-1@@" + "Producto " + producto.Id_Prd.ToString() + " inventario disponible insuficiente, inventario final: " + producto.Prd_InvFinal.ToString() + ", asignado: " + producto.Prd_Asignado.ToString() + ", disponible:" + (producto.Prd_InvFinal - producto.Prd_Asignado).ToString());
                    }
                }

                if (gpo_ == "4" || gpo_ == "2")
                {
                    CN_CapEntradaSalida CNentrada = new CN_CapEntradaSalida();
                    int verificador = 0;
                    CNentrada.ConsultarSaldo(sesion.Id_Emp, sesion.Id_Cd_Ver, id_prd.ToString(), ter_.ToString(), cte_, sesion.Emp_Cnx, ref verificador, mov_);
                    int Prd_AgrupadoSpo = producto.Prd_AgrupadoSpo;

                    int cantidadEnDt = 0;
                    foreach (EntradaSalidaDetalle dr in list_Es.Where(EntradaSalidaDetalle => EntradaSalidaDetalle.Prd_AgrupadoSpo == Prd_AgrupadoSpo && EntradaSalidaDetalle.Id_Ter == ter_ && EntradaSalidaDetalle.Id_Prd != id_prd).ToList())
                    {
                        cantidadEnDt += dr.Es_Cantidad;
                    }

                    CN_CapRemision rem         = new CN_CapRemision();
                    int            cantidadES2 = 0;
                    if (actualizacionDocumento)
                    {
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, Prd_AgrupadoSpo, nat_, ref cantidadES2, sesion.Emp_Cnx);
                        verificador += cantidadES2;
                    }


                    if (cantidadEnDt + can_ > verificador)
                    {
                        return("-1@@" + "Los artículos sobrepasan lo disponible");
                    }
                }
                else if (gpo_ == "3")
                {
                    CN_CapRemision rem = new CN_CapRemision();


                    int cantidadES = 0;

                    int cantidadEnDttemp_original = 0;
                    if (Session["estatus" + Session.SessionID + HF_ClvPag].ToString() != "1")
                    {
                        cantidadEnDttemp_original = 0;
                    }
                    else
                    {
                        cantidadEnDttemp_original = Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]);
                    }

                    int cantidadB = 0;
                    foreach (EntradaSalidaDetalle dr in list_Es)
                    {
                        if (dr.Id_Prd.ToString() == id_prd.ToString())
                        {
                            cantidadB += dr.Es_Cantidad;
                        }
                    }


                    //rem.ConsultarRemisionesCantidad(session.Id_Emp, session.Id_Cd_Ver, refe, id_prd, ref cantidadES, session.Emp_Cnx);
                    rem.ConsultarRemisionesCantidadRem(sesion.Id_Emp, sesion.Id_Cd_Ver, ref_, id_prd, ref cantidadES, sesion.Emp_Cnx);
                    int cantidadES2 = 0;
                    if (actualizacionDocumento)
                    {
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, id_prd, nat_, ref cantidadES2, sesion.Emp_Cnx);
                        cantidadES += cantidadES2;
                    }



                    if (cantidadES < cantidadB - cantidadEnDttemp_original + can_)
                    //if (cantidadES < can_)
                    {
                        return("-1@@" + "Los artículos sobrepasan el disponible");
                    }

                    if (producto.Prd_InvFinal - producto.Prd_Asignado - (cantidadEnDttemp_original - can_) < 0)
                    {
                        return("-1@@" + "Producto " + producto.Id_Prd.ToString() + " inventario disponible insuficiente, inventario final: " + producto.Prd_InvFinal.ToString() + ", asignado: " + producto.Prd_Asignado.ToString() + ", disponible:" + (producto.Prd_InvFinal - producto.Prd_Asignado).ToString());
                    }
                }
                else if (gpo_ == "1")
                {
                    if (actualizacionDocumento)
                    {
                        CN_CapRemision rem         = new CN_CapRemision();
                        int            cantidadES2 = 0;
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, id_prd, nat_, ref cantidadES2, sesion.Emp_Cnx);

                        Producto       cp             = new Producto();
                        CN_CatProducto cn_catproducto = new CN_CatProducto();
                        cn_catproducto.ConsultaProducto(ref cp, sesion.Emp_Cnx, sesion.Id_Emp, sesion.Id_Cd_Ver, id_prd);

                        int cantidadB = 0;
                        foreach (EntradaSalidaDetalle dr in list_Es)
                        {
                            if (dr.Id_Prd.ToString() == id_prd.ToString())
                            {
                                cantidadB += dr.Es_Cantidad;
                            }
                        }

                        cantidadB = cantidadB - Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]) + (int)can_;
                        if (cantidadB < cantidadES2 && (cantidadES2 - cantidadB) > (cp.Prd_InvFinal - cp.Prd_Asignado))
                        {
                            return("-1@@" + "Producto " + id_prd.ToString() + " inventario disponible insuficiente, inventario final: " + cp.Prd_InvFinal.ToString() + ", asignado: " + cp.Prd_Asignado.ToString() + " , disponible: " + (cp.Prd_InvFinal - cp.Prd_Asignado).ToString() + "");
                        }
                    }
                }
                return("1");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 3
0
        private void ImprimirRemisionElectronica(EntradaSalida entSal)
        {
            try
            {
                Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID];
                List <EntradaSalidaDetalle> listaProdFacturaEspecialFinal = new List <EntradaSalidaDetalle>();

                entSal.Es_Estatus = "I";
                int verificador = 0;
                entSal.Id_Emp = sesion.Id_Emp;
                new CN_CapEntradaSalida().ModificarEntradaSalida_Estatus(entSal, sesion.Emp_Cnx, ref verificador);


                CN_CatCliente cn_catcliente = new CN_CatCliente();
                Clientes      clientes      = new Clientes();
                clientes.Id_Emp = sesion.Id_Emp;
                clientes.Id_Cd  = sesion.Id_Cd_Ver;
                clientes.Id_Cte = entSal.Id_Cte;
                cn_catcliente.ConsultaClientes(ref clientes, sesion.Emp_Cnx);
                entSal.Id_Emp = sesion.Id_Emp;
                CN_CapEntradaSalida cn_catensal = new CN_CapEntradaSalida();
                cn_catensal.ConsultarEntradaSalidaDetalles(sesion, entSal, ref listaProdFacturaEspecialFinal);

                CN_CatCentroDistribucion cn_cd = new CN_CatCentroDistribucion();
                CentroDistribucion       cd    = new CentroDistribucion();
                double iva = 0;
                cn_cd.ConsultarIva(sesion.Id_Emp, sesion.Id_Cd_Ver, ref iva, sesion.Emp_Cnx);



                StringBuilder XML_Enviar = new StringBuilder();
                XML_Enviar.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
                XML_Enviar.Append("<RemisionCuentaNacional");
                XML_Enviar.Append(" TipoDocumento=\"\">");


                XML_Enviar.Append(" <Sucursal");
                XML_Enviar.Append(" CDINum=\"\"");
                XML_Enviar.Append(" CDINom=\"\"");
                XML_Enviar.Append(" CDIIVA=\"\"/>");

                XML_Enviar.Append(" <Documento");
                XML_Enviar.Append(" Folio=\"\"");
                XML_Enviar.Append(" CuentaNacional=\"\"");
                XML_Enviar.Append(" Status=\"\"");
                XML_Enviar.Append(" Fecha=\"\"");
                XML_Enviar.Append(" Remision=\"\"");
                XML_Enviar.Append(" Total=\"\"/>");



                XML_Enviar.Append(" <DetalleKey>");
                if (listaProdFacturaEspecialFinal.Count() > 0)
                {
                    foreach (EntradaSalidaDetalle d in listaProdFacturaEspecialFinal)
                    {
                        XML_Enviar.Append(" <Producto");
                        XML_Enviar.Append(" Codigo=\"" + d.Id_Prd.ToString() + "\"");
                        XML_Enviar.Append(" Descipcion=\"" + d.Prd_Descripcion.ToString().Replace("\"", "").Replace("'", "").Replace("&", "")
                                          + "\"");
                        XML_Enviar.Append(" Cantidad=\"" + d.Es_Cantidad + "\"");
                        XML_Enviar.Append(" Unidad=\"" + d.Prd_Unidad + "\"");
                        XML_Enviar.Append(" Presentacion=\"" + d.Prd_Presentacion + "\"");
                        XML_Enviar.Append(" Precio=\"" + d.Es_Costo + "\"");
                        XML_Enviar.Append(" />");
                    }
                }
                XML_Enviar.Append(" </DetalleKey>");

                XML_Enviar.Append(" </RemisionCuentaNacional>");



                XmlDocument xml = new XmlDocument();

                xml.LoadXml(XML_Enviar.ToString());


                XmlNode RemisionCuentaNacional = xml.SelectSingleNode("RemisionCuentaNacional");
                RemisionCuentaNacional.Attributes["TipoDocumento"].Value = "Entrada";

                XmlNode Sucursal = RemisionCuentaNacional.SelectSingleNode("Sucursal");
                Sucursal.Attributes["CDINum"].Value = entSal.Id_Cd.ToString();
                Sucursal.Attributes["CDINom"].Value = "Prueba";
                Sucursal.Attributes["CDIIVA"].Value = iva.ToString();


                XmlNode Documento = RemisionCuentaNacional.SelectSingleNode("Documento");
                Documento.Attributes["Folio"].Value          = entSal.Id_Es.ToString();
                Documento.Attributes["Status"].Value         = entSal.Es_Estatus.ToString();
                Documento.Attributes["CuentaNacional"].Value = entSal.Es_CteCuentaNacional.ToString();
                Documento.Attributes["Remision"].Value       = entSal.Es_Referencia.ToString();
                Documento.Attributes["Fecha"].Value          = entSal.Es_Fecha.ToShortDateString();
                Documento.Attributes["Total"].Value          = entSal.Es_Total.ToString();



                StringWriter  sw = new StringWriter();
                XmlTextWriter tx = new XmlTextWriter(sw);
                xml.WriteTo(tx);
                string xmlString = sw.ToString();

                WS_RemElectronicaCtaNacional.Service1 remelectronica = new WS_RemElectronicaCtaNacional.Service1();

                string sianRemisionElectronicaResult = remelectronica.Imprime_Entrada(xmlString).ToString();

                byte[] PDFRemision = this.Base64ToByte(sianRemisionElectronicaResult);


                string tempPDFname   = string.Concat("BAJAREMISION_", entSal.Id_Emp.ToString(), "_", entSal.Id_Cd.ToString(), "_", entSal.Id_U.ToString(), ".pdf");
                string URLtempPDF    = Server.MapPath(string.Concat(System.Configuration.ConfigurationManager.AppSettings["URLtempPDF"].ToString(), tempPDFname));
                string WebURLtempPDF = string.Concat(System.Configuration.ConfigurationManager.AppSettings["WebURLtempPDF"].ToString(), tempPDFname);
                this.ByteToTempPDF(URLtempPDF, PDFRemision);
                RadAjaxManager1.ResponseScripts.Add(string.Concat(@"AbrirFacturaPDF('", WebURLtempPDF, "')"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }