/// <summary>
        /// Procedimiento para validar los datos del número de factura. Devuelve una exepción si los datos no son válidos
        /// </summary>
        private void ValidarDatosNumeroFactura()
        {
            // Reviso si se selecciono un tipo de guía
            if (ddlTipoFactura.SelectedIndex == -1)
            {
                // No se selecciono
                throw new Exception("Debe seleccionar un tipo de factura");
            }

            // Reviso si se ingreso un número de sucursal
            if (txtNroSucursalFactura.Text == "")
            {
                // No se ingreso
                throw new Exception("Debe ingresar un número de sucursal de la factura");
            }
            // Reviso si el número de sucursal es válido
            if (Validaciones.obtieneEntero(txtNroSucursalFactura.Text) == 0)
            {
                // El número de sucursal es inválido
                throw new Exception("El número de sucursal de la factura es inválido");
            }

            // Reviso si se ingreso un número de factura
            if (txtNroFactura.Text == "")
            {
                // No se ingreso
                throw new Exception("Debe ingresar un número de factura");
            }
            // Reviso si el número de factura es válido
            if (Validaciones.obtieneEntero(txtNroFactura.Text) == 0)
            {
                // El número de sucursal es inválido
                throw new Exception("El número de factura es inválido");
            }
            // Valido que el número de factura no se haya ingresado en las guías
            IGuia guia = GuiaFactory.GetGuia();

            guia.TipoGuia        = ddlTipoFactura.SelectedValue;
            guia.NroSucursalGuia = txtNroSucursalFactura.Text;
            guia.NroGuia         = Validaciones.obtieneEntero(txtNroFactura.Text);
            guia.Consultar();
            if (guia.GuiaID > 0)
            {
                // En número de factura ya se ingreso
                throw new Exception("El número de factura ya se ingreso");
            }
            // Valido que el número de factura no se haya ingresado en las facturas
            IFactura factura = FacturaFactory.GetFactura();

            factura.TipoGuia        = ddlTipoFactura.SelectedValue;
            factura.NroSucursalGuia = txtNroSucursalFactura.Text;
            factura.NroGuia         = Validaciones.obtieneEntero(txtNroFactura.Text);
            DsFactura dsFac = factura.GetByNroFactura();

            if (dsFac.Datos.Count > 0)
            {
                // En número de factura ya se ingreso
                throw new Exception("El número de factura ya se ingreso");
            }
        }
        public override global::System.Data.DataSet Clone()
        {
            DsFactura cln = ((DsFactura)(base.Clone()));

            cln.InitVars();
            cln.SchemaSerializationMode = this.SchemaSerializationMode;
            return(cln);
        }
        public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs)
        {
            DsFactura ds = new DsFactura();

            global::System.Xml.Schema.XmlSchemaComplexType type     = new global::System.Xml.Schema.XmlSchemaComplexType();
            global::System.Xml.Schema.XmlSchemaSequence    sequence = new global::System.Xml.Schema.XmlSchemaSequence();
            global::System.Xml.Schema.XmlSchemaAny         any      = new global::System.Xml.Schema.XmlSchemaAny();
            any.Namespace = ds.Namespace;
            sequence.Items.Add(any);
            type.Particle = sequence;
            global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable();
            if (xs.Contains(dsSchema.TargetNamespace))
            {
                global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream();
                global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream();
                try {
                    global::System.Xml.Schema.XmlSchema schema = null;
                    dsSchema.Write(s1);
                    for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();)
                    {
                        schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current));
                        s2.SetLength(0);
                        schema.Write(s2);
                        if ((s1.Length == s2.Length))
                        {
                            s1.Position = 0;
                            s2.Position = 0;
                            for (; ((s1.Position != s1.Length) &&
                                    (s1.ReadByte() == s2.ReadByte()));)
                            {
                                ;
                            }
                            if ((s1.Position == s1.Length))
                            {
                                return(type);
                            }
                        }
                    }
                }
                finally {
                    if ((s1 != null))
                    {
                        s1.Close();
                    }
                    if ((s2 != null))
                    {
                        s2.Close();
                    }
                }
            }
            xs.Add(dsSchema);
            return(type);
        }
        private void butImprimir_Click(object sender, System.EventArgs e)
        {
            try
            {
                IGuia     oGuia      = GuiaFactory.GetGuia();
                IFactura  oFactura   = FacturaFactory.GetFactura();
                DsGuias   ds         = new DsGuias();
                DsFactura dsFacturas = null;
                DsGuiaFacturaImpresion dsFacturaImpresion;
                IAgencia agencia             = null;
                int      tipoImpresionGuiaID = 0;
                int      puedeReimprimir     = 0;

                /*if(this.rbCodigo.Checked)
                 *  ds = oGuia.GetGuiasOneByCodigoBarra(this.txtCodigoBarra.Text.Trim());
                 */

                if (this.rbCodigo.Checked)
                {
                    try
                    {
                        oGuia.TipoGuia = NegociosSisPackInterface.SisPack.TipoGuia(this.txtCodigoBarra.Text.Substring(0, 1).Trim()).Trim();

                        if (oGuia.TipoGuia.Equals(""))
                        {
                            throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                        }

                        oGuia.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4);
                        oGuia.NroGuia         = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5));
                    }
                    catch (Exception)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado un nro. de guía correcto.");
                        return;
                    }
                }
                else if (this.rbTipo.Checked)
                {
                    oGuia.TipoGuia        = this.ddlTipoGuia.SelectedValue;
                    oGuia.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("") ? "0" : this.txtNroSucursal.Text.Trim();
                    oGuia.NroGuia         = this.txtNroGuia.Text.Trim().Equals("") ? 0 : Convert.ToInt32(this.txtNroGuia.Text.Trim());
                }
                else
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se ha ingresado el nro. de guía ha reimprimir.");
                    return;
                }

                ds = oGuia.GetGuiaOneDataSet();


                if (ds.Datos.Count == 0)
                {
                    oFactura.TipoGuia        = oGuia.TipoGuia;
                    oFactura.NroSucursalGuia = oGuia.NroSucursalGuia;
                    oFactura.NroGuia         = oGuia.NroGuia;
                    dsFacturas = oFactura.GetByNroFactura();
                }

                if (ds.Datos.Count > 0)
                {
                    DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[0];
                    this.txtGuiaID.Text = dr.GuiaID.ToString();
                    puedeReimprimir     = oGuia.VerificarReImpresion(dr.GuiaID, this.usuario.AgenciaID);
                    if (puedeReimprimir == 1)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir una guia FPD en el destino.");
                        return;
                    }
                    else if (puedeReimprimir == 2)
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guia ya que no esta en la agencia.");
                        return;
                    }
                    else
                    {
                        oGuia.RegistrarReImpresion(this.usuario.UsuarioID, this.usuario.AgenciaID, dr.GuiaID);
                    }

                    /* Traer datos de impresión. */
                    agencia           = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = dr.AgenciaOrigenID;
                    agencia.ConsultarBasico();
                    dr = null;

                    /* Traer los datos de la guía para la impresión. */
                    IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                    oAdminGuia.GuiaID  = Convert.ToInt32(this.txtGuiaID.Text.Trim());
                    dsFacturaImpresion = oAdminGuia.GetDataSetImpresionByGuiaID();
                    oAdminGuia         = null;

                    // 20/12/2013. Consulto (seteo) el tipo de impresion segun la agencia y la empresa de facturacion
                    tipoImpresionGuiaID = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID;

                    Session["DatosGuia"] = dsFacturaImpresion;
                    /*************************************************/
                }
                else if (ds.Datos.Count == 0)
                {
                    if (dsFacturas.Datos.Count > 0)
                    {
                        DsFactura.DatosRow drFac = (DsFactura.DatosRow)dsFacturas.Datos.Rows[0];
                        //this.txtGuiaID.Text = drFac.GuiaID.ToString();

                        /* Traer datos de impresión. */
                        agencia           = AgenciaFactory.GetAgencia();
                        agencia.AgenciaID = drFac.AgenciaID;
                        agencia.ConsultarBasico();

                        /* Traer los datos de la factura para la impresión. */
                        oFactura.FacturaID = drFac.FacturaID;
                        // Reviso si se trata de una factura de concepto de facturación o de una factura que cancela un remito pendiente
                        if (dsFacturas.Datos[0].ClasificacionFacturaID == (Int32)NegociosSisPackInterface.SisPack.ClasificacionFactura.ConceptoFacturacion)
                        {
                            // Se trata de una factura de concepto de facturación
                            dsFacturaImpresion   = ToDsGuiaFacturaConceptoImpresion(oFactura.GetFacturaConceptoImpresionByFacturaID());
                            tipoImpresionGuiaID  = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID;
                            Session["DatosGuia"] = dsFacturaImpresion;
                        }
                        else
                        {
                            // Se trata de una factura de un flete pago en destino, entrega o un remito de cta cte
                            dsFacturaImpresion = ToDsGuiaFacturaImpresion(drFac.AgenciaID, oFactura.GetFacturaImpresionByFacturaID());
                            // 20/12/2013. Consulto (seteo) el tipo de impresion segun la agencia y la empresa de facturacion
                            tipoImpresionGuiaID  = Convert.IsDBNull(dsFacturaImpresion.Datos[0].TipoImpresionGuiaID) ? 0 : dsFacturaImpresion.Datos[0].TipoImpresionGuiaID;
                            Session["DatosGuia"] = dsFacturaImpresion;
                        }
                        drFac = null;
                        /*************************************************/
                    }
                    else
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se encuentra la guía / factura ingresada.");
                        return;
                    }
                }

                // Se comenta la siguiente linea para el desarrollo de integracion de SisPack-Delfos. El tipo de impresion depende de la empresa y la agencia. Esto estaba al 20/12/2013
                //int tipoImpresionGuiaID = Convert.IsDBNull(agencia.TipoImpresionGuiaId) ? 0 : agencia.TipoImpresionGuiaId;

                // Si es Unidad de Logistica, imprimir el comprobante como Autoimpresor_EnBlanco
                if (oGuia.TipoGuia == "X")
                {
                    tipoImpresionGuiaID = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;
                }

                if (tipoImpresionGuiaID == 0)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guía ingresada. El tipo de impresión no está definido.");
                    return;
                }
                if (tipoImpresionGuiaID == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir una guía pre-impresa.");
                    return;
                }

                string implementacion  = System.Configuration.ConfigurationSettings.AppSettings["Implementacion"].ToString();
                string paginaImpresion = agencia.GetPaginaImpresion(tipoImpresionGuiaID, implementacion);

                if (paginaImpresion.Trim().Equals(""))
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede reimprimir la guía ingresada. La página de impresión no está definida.");
                    return;
                }
                agencia = null;
                /*****************************/

                string scriptString = "<script language='javascript'>\n";
                scriptString += "		window.showModalDialog('"+ paginaImpresion + "?CantCopias=" + this.txtCantCopias.Text.Trim() + "','Reimprimiendo Guía...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                scriptString += "		window.location.href = 'ReImprimirGuiaDestino.aspx';\n";
                scriptString += "	  </script>\n";

                Page.RegisterStartupScript("scriptImpresion", scriptString);

                oGuia              = null;
                oFactura           = null;
                dsFacturaImpresion = null;
                ds         = null;
                dsFacturas = null;
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
            public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs)
            {
                global::System.Xml.Schema.XmlSchemaComplexType type     = new global::System.Xml.Schema.XmlSchemaComplexType();
                global::System.Xml.Schema.XmlSchemaSequence    sequence = new global::System.Xml.Schema.XmlSchemaSequence();
                DsFactura ds = new DsFactura();

                global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny();
                any1.Namespace       = "http://www.w3.org/2001/XMLSchema";
                any1.MinOccurs       = new decimal(0);
                any1.MaxOccurs       = decimal.MaxValue;
                any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax;
                sequence.Items.Add(any1);
                global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny();
                any2.Namespace       = "urn:schemas-microsoft-com:xml-diffgram-v1";
                any2.MinOccurs       = new decimal(1);
                any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax;
                sequence.Items.Add(any2);
                global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute();
                attribute1.Name       = "namespace";
                attribute1.FixedValue = ds.Namespace;
                type.Attributes.Add(attribute1);
                global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute();
                attribute2.Name       = "tableTypeName";
                attribute2.FixedValue = "FacturaDataTable";
                type.Attributes.Add(attribute2);
                type.Particle = sequence;
                global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable();
                if (xs.Contains(dsSchema.TargetNamespace))
                {
                    global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream();
                    global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream();
                    try {
                        global::System.Xml.Schema.XmlSchema schema = null;
                        dsSchema.Write(s1);
                        for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();)
                        {
                            schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current));
                            s2.SetLength(0);
                            schema.Write(s2);
                            if ((s1.Length == s2.Length))
                            {
                                s1.Position = 0;
                                s2.Position = 0;
                                for (; ((s1.Position != s1.Length) &&
                                        (s1.ReadByte() == s2.ReadByte()));)
                                {
                                    ;
                                }
                                if ((s1.Position == s1.Length))
                                {
                                    return(type);
                                }
                            }
                        }
                    }
                    finally {
                        if ((s1 != null))
                        {
                            s1.Close();
                        }
                        if ((s2 != null))
                        {
                            s2.Close();
                        }
                    }
                }
                xs.Add(dsSchema);
                return(type);
            }
        private void ImprimirGuia(int GuiaID, NegociosSisPackInterface.SisPack.ClasificacionGuia ClasificacionGuia)
        {
            try
            {
                IGuia     oGuia      = GuiaFactory.GetGuia();
                IFactura  oFactura   = FacturaFactory.GetFactura();
                DsGuias   ds         = new DsGuias();
                DsFactura dsFacturas = null;
                DsGuiaFacturaImpresion dsFacturaImpresion;
                IAgencia agencia = null;
                oGuia.GuiaID = GuiaID;

                if (ClasificacionGuia == NegociosSisPackInterface.SisPack.ClasificacionGuia.Remito)
                {
                    ds = oGuia.GetGuiaOneDataSet();
                }
                else if (ClasificacionGuia == NegociosSisPackInterface.SisPack.ClasificacionGuia.Factura)
                {
                    oFactura.FacturaID = GuiaID;
                    dsFacturas         = oFactura.GetFacturaByFacturaID(GuiaID);
                }

                if (ds.Datos.Count > 0)
                {
                    DsGuias.DatosRow dr = (DsGuias.DatosRow)ds.Datos.Rows[0];

                    /* Traer datos de impresión. */
                    agencia           = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = dr.AgenciaOrigenID;
                    agencia.ConsultarBasico();
                    dr = null;

                    /* Traer los datos de la guía para la impresión. */
                    IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                    oAdminGuia.GuiaID  = GuiaID;
                    dsFacturaImpresion = oAdminGuia.GetDataSetImpresionByGuiaID();
                    oAdminGuia         = null;

                    Session["DatosGuia"] = dsFacturaImpresion;
                    /*************************************************/
                }
                else if (ds.Datos.Count == 0)
                {
                    if (dsFacturas.Datos.Count > 0)
                    {
                        DsFactura.DatosRow drFac = (DsFactura.DatosRow)dsFacturas.Datos.Rows[0];
                        //this.txtGuiaID.Text = drFac.GuiaID.ToString();

                        /* Traer datos de impresión. */
                        agencia           = AgenciaFactory.GetAgencia();
                        agencia.AgenciaID = drFac.AgenciaID;
                        agencia.ConsultarBasico();

                        /* Traer los datos de la factura para la impresión. */
                        oFactura.FacturaID = drFac.FacturaID;

                        // Reviso si se trata de una factura de concepto de facturación o de una factura que cancela un remito pendiente
                        if (dsFacturas.Datos[0].ClasificacionFacturaID == (Int32)NegociosSisPackInterface.SisPack.ClasificacionFactura.ConceptoFacturacion)
                        {
                            // Se trata de una factura de concepto de facturación
                            Session["DatosGuia"] = ToDsGuiaFacturaConceptoImpresion(oFactura.GetFacturaConceptoImpresionByFacturaID());
                        }
                        else
                        {
                            // Se trata de una factura de un flete pago en destino, entrega o un remito de cta cte
                            dsFacturaImpresion   = ToDsGuiaFacturaImpresion(drFac.AgenciaID, oFactura.GetFacturaImpresionByFacturaID());
                            Session["DatosGuia"] = dsFacturaImpresion;
                        }
                        drFac = null;
                        /*************************************************/
                    }
                    else
                    {
                        return;
                    }
                }

                int tipoImpresionGuiaID = Convert.IsDBNull(agencia.TipoImpresionGuiaId) ? 0 : agencia.TipoImpresionGuiaId;

                if (tipoImpresionGuiaID == 0)
                {
                    return;
                }
                if (tipoImpresionGuiaID == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                {
                    return;
                }

                string implementacion  = System.Configuration.ConfigurationSettings.AppSettings["Implementacion"].ToString();
                string paginaImpresion = agencia.GetPaginaImpresion(tipoImpresionGuiaID, implementacion);

                if (paginaImpresion.Trim().Equals(""))
                {
                    return;
                }
                agencia = null;
                /*****************************/

                ImprimirGuiaBlanco();

                oGuia              = null;
                oFactura           = null;
                dsFacturaImpresion = null;
                ds         = null;
                dsFacturas = null;
            }
            catch (Exception ex)
            {
            }
        }
        private void dtgSolicitudRetiro_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Imprimir")
            {
                try
                {
                    Session["GuiaPasajeACtaCteID"] = e.Item.Cells[0].Text;
                    Session["GuiaID"] = e.Item.Cells[1].Text;

                    //controlar que no haya  sido ya impresa
                    //if (true)
                    //{
                    #region ImpresionDeComprobantes
                    // Reviso si se registro una factura por un remito
                    IFactura factura = FacturaFactory.GetFactura();
                    factura.GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);
                    factura.ClasificacionFacturaID = (int)NegociosSisPackInterface.SisPack.ClasificacionFactura.Remito;
                    DsFactura ds = factura.ObtenerFacturaDeRemitoByGuiaID();
                    if (ds.Datos.Rows.Count > 0)
                    {
                        factura.FacturaID = (int)ds.Datos.Rows[0]["FacturaID"];
                    }
                    // Reviso si se genero la factura
                    if (factura.FacturaID != 0)
                    {
                        // Si se genero
                        //VSA: Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaImpresionByGuiaID());
                        Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaImpresionByFacturaID());

                        // Seteo la página con la cual se va a imprimir la factura
                        IAgencia agOrigen = AgenciaFactory.GetAgencia();
                        //agOrigen.AgenciaID = AgenciaConectadaID;
                        IGuia guia = GuiaFactory.GetGuia();
                        guia.GuiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);
                        guia.Consultar();
                        agOrigen.AgenciaID = guia.AgenciaDestinoID;
                        agOrigen.ConsultarBasico();
                        string pagina = ObtienePaginaImpresion(agOrigen.TipoImpresionGuiaId);
                        agOrigen = null;
                        /* VSA: Controlar si el remito original se pasó a cuenta corriente -> Imprimir un nuevo remito no factura. */
                        string nombreListado = ExportarPDF(factura.GetFacturaImpresionByFacturaID());
                        factura = null;

                        // Cargo el script para imprimir el nuevo remito y la nota que se le entregará al cliente
                        string script = "<script language='javascript'>\n";
                        script += "			window.showModalDialog('"+ pagina + "','Imprimiendo Remito...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";

                        if (nombreListado != "")
                        {
                            script += "window.open('VerPlanilla.aspx?id=" + nombreListado + "', '', 'width=0,height=0,status=no,scrollbars=yes,resizable=yes');\n";
                        }
                        script += "		</script>\n";

                        ClientScript.RegisterStartupScript(GetType(), "scriptImprimirNuevoRemito", script);
                    }

                    #endregion

                    /*Actualizar la autorizacion como impresa.*/
                    IGuiaPasajeACtaCte pasaje = GuiaPasajeACtaCteFactory.GetGuiaPasajeACtaCte();
                    pasaje.GuiaPasajeACtaCteID = Utiles.Validaciones.obtieneEntero(Session["GuiaPasajeACtaCteID"].ToString());
                    pasaje.GuardarPasajeImpreso();

                    BindGrid(0);
                    //}
                    //else
                    //{
                    //    throw new Exception("El pasaje ya ha sido impreso.");
                    //}
                }
                catch (Exception ex)
                {
                    ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                }
            }
        }
Example #8
0
        private DsFactura BuscarPorTipo()
        {
            IFactura factura = FacturaFactory.GetFactura();

            try
            {
                //Habilito los validadores para el buscar
                BaseValidator bv;

                bv         = (BaseValidator)this.phValidTipoGuia.FindControl("validTipoGuia");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return(null);
                }

                bv         = (BaseValidator)this.phValidNroSucursal.FindControl("validNroSucursal");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return(null);
                }

                bv         = (BaseValidator)this.phValidNroSucursal.FindControl("validNroSucursalInv");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return(null);
                }

                bv         = (BaseValidator)this.phValidNroGuia.FindControl("validNroGuia");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return(null);
                }

                bv         = (BaseValidator)this.phValidNroGuia.FindControl("validNroGuiaInv");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return(null);
                }

                factura.TipoGuia        = this.ddlTipoGuia.SelectedValue.Trim();
                factura.NroSucursalGuia = this.txtNroSucursal.Text.Trim().Equals("")? "0" : this.txtNroSucursal.Text;
                factura.NroGuia         = this.txtNroGuia.Text.Trim().Equals("")? 0 : Convert.ToInt32(this.txtNroGuia.Text);

                DsFactura dsFactura = factura.GetFacturaONE();

                this.txtTipoGuia.Text = factura.TipoGuia;

                return(dsFactura);
            }
            catch (Exception ex)
            {
                throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
            }
            finally
            {
                factura = null;
            }
        }
Example #9
0
        private DsFactura BuscarPorCodigo()
        {
            IFactura factura = FacturaFactory.GetFactura();

            try
            {
                BaseValidator bv;

                bv         = (BaseValidator)this.phValidTipoGuia.FindControl("validCodigoBarra");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return(null);
                }

                if (this.txtCodigoBarra.Text.Length >= 10)
                {
                    // obtengo el tipo de factura del código de barras
                    int codigoTipoGuia = 0;
                    codigoTipoGuia = int.Parse(this.txtCodigoBarra.Text.Substring(0, 1));

                    if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.A)
                    {
                        factura.TipoGuia = "A";
                    }
                    else if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.B)
                    {
                        factura.TipoGuia = "B";
                    }
                    else if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.R)
                    {
                        factura.TipoGuia = "R";
                    }
                    else if (codigoTipoGuia == (int)NegociosSisPackInterface.SisPack.CodigoTipoGuia.E)
                    {
                        factura.TipoGuia = "E";
                    }
                    else
                    {
                        throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                    }

                    factura.NroSucursalGuia = this.txtCodigoBarra.Text.Substring(1, 4);
                    factura.NroGuia         = Convert.ToInt32(this.txtCodigoBarra.Text.Substring(5));

                    DsFactura dsFactura = factura.GetFacturaONE();

                    this.txtTipoGuia.Text = factura.TipoGuia;
                    return(dsFactura);
                }
                else
                {
                    throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
            }
            finally
            {
                factura = null;
            }
        }
Example #10
0
        private async void Alta_Factura()
        {
            this.Cursor = Cursors.WaitCursor;

            typeFactura factura = new typeFactura();

            factura.Fecha   = Dtp_Fecha.Value;
            factura.Cedula  = Txt_Cedula.Text.Trim();
            factura.Cliente = Txt_Cliente.Text.Trim();
            decimal Subtotal = 0;

            decimal.TryParse(Txt_Subtotal.Text.Replace(",", ""), out Subtotal);
            factura.Subtotal = Subtotal;
            decimal Descuento = 0;

            decimal.TryParse(Txt_Descuento.Text.Replace(",", ""), out Descuento);
            factura.Descuento = Descuento;
            decimal Total = 0;

            decimal.TryParse(Txt_Total.Text.Replace(",", ""), out Total);
            factura.Total    = Total;
            factura.Detalles = detallesProductos;

            using (var client = new HttpClient())
            {
                var serializedProduct = JsonConvert.SerializeObject(factura);
                var content           = new StringContent(serializedProduct, Encoding.UTF8, "application/json");
                using (var response = await client.PostAsync(Globales.Url_API + "facturacion/agregafactura", content))
                {
                    if (response.IsSuccessStatusCode)
                    {
                        var a        = response.Content.ReadAsStringAsync();
                        var contents = JsonConvert.DeserializeObject <typeResponse>(response.Content.ReadAsStringAsync().Result);
                        Txt_Numero_Comprobante.Text = contents.Message;

                        DsFactura dsFactura = new DsFactura();
                        DataRow   Registro;

                        Registro = dsFactura.Tables["Encabezado"].NewRow();
                        Registro["Numero_Documento"] = Txt_Numero_Comprobante.Text;
                        Registro["Fecha"]            = Dtp_Fecha.Value;
                        Registro["Cedula"]           = Txt_Cedula.Text;
                        Registro["Cliente"]          = Txt_Cliente.Text;
                        Registro["SubTotal"]         = Subtotal;
                        Registro["Descuento"]        = Descuento;
                        Registro["Total"]            = Total;
                        dsFactura.Tables["Encabezado"].Rows.Add(Registro);

                        foreach (var detalle in detallesProductos)
                        {
                            Registro             = dsFactura.Tables["Detalles"].NewRow();
                            Registro["Cantidad"] = detalle.Cantidad;
                            Registro["Codigo"]   = detalle.Codigo;
                            Registro["Nombre"]   = detalle.Nombre;
                            Registro["Precio"]   = detalle.Precio;
                            Registro["Importe"]  = detalle.Importe;
                            dsFactura.Tables["Detalles"].Rows.Add(Registro);
                        }

                        FrmVisorReporte frm = new FrmVisorReporte();
                        ReportDocument  rpt = new ReportDocument();
                        rpt.Load(AppDomain.CurrentDomain.BaseDirectory + "\\Reportes\\RptFormatoFactura.rpt");
                        rpt.SetDataSource(dsFactura);
                        frm.crViewer.ReportSource = rpt;
                        frm.crViewer.RefreshReport();
                        frm.Show();

                        this.Cursor = Cursors.Default;
                        MessageBox.Show("Factura registrada");
                        Dtp_Fecha.Value             = DateTime.Now;
                        Txt_Numero_Comprobante.Text = "Consecutivo se obtiene al guardar";
                        Txt_Cedula.Text             = "";
                        Txt_Cliente.Text            = "";
                        Txt_Subtotal.Text           = "0.00";
                        Txt_Descuento.Text          = "0.00";
                        Txt_Total.Text = "0.00";
                        detallesProductos.Clear();
                        Grid_Productos.DataSource = null;
                        Grid_Productos.DataSource = detallesProductos;
                        Txt_Codigo.Text           = "";
                        Txt_Cedula.Focus();
                    }
                    else
                    {
                        this.Cursor = Cursors.Default;
                        var contents = JsonConvert.DeserializeObject <typeResponse>(response.Content.ReadAsStringAsync().Result);
                        MessageBox.Show(contents.Message);
                    }
                }
            }
        }