Exemplo n.º 1
0
        /* Diego 20/12/2013 Agregar guias de emision*/
        public int AgregarFacturaEmision(IFactura factura, IUsuarios usuario, int agenciaConectadaID, int cantGuias, string nroRemito)
        {
            GuiaServicioConfirmacion guiaServicio = new GuiaServicioConfirmacion();

            using (SqlConnection conexion = new SqlConnection())
            {
                SqlTransaction transaccion = null;
                transaccion = null;
                conexion.ConnectionString = Config.ConnectionString;
                try
                {
                    // Abro la conexión a la BD
                    conexion.Open();
                    // Inicio una transacción
                    transaccion = conexion.BeginTransaction();

                    int lote = factura.RecibidaEmitidaControlada("", agenciaConectadaID, usuario, this.CajaID, cantGuias, transaccion);

                    if (lote == 0) /* La guía ya se almacenó rollback */
                    {
                        new Exception("La factura " + factura.TipoGuia + " - " + factura.NroSucursalGuia + " - " + factura.NroGuia + " ya está almacenada en otra caja.");
                    }

                    transaccion.Commit();
                    return(lote);
                }
                catch (Exception ex)
                {
                    transaccion.Rollback();
                    throw ex;
                }
            }
        }
        /// <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");
            }
        }
Exemplo n.º 3
0
 public frmFactura()
 {
     InitializeComponent();
     cli = new MCliente();
     fac = new MFactura();
     usu = new MUsuario();
 }
Exemplo n.º 4
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            if (User.Identity.IsAuthenticated)
            {
                string sOpcion = "visualizarDatosFactura";
                Menu   oMenu   = (Menu)this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }

            if (!IsPostBack)
            {
                this.txtFacturaID.Text = this.Request.QueryString["FacturaID"] == null ? "" : this.Request.QueryString["FacturaID"];
                this.lblFecha.Text     = DateTime.Today.ToString("dd/MM/yyyy");

                IAgencia oAgencia = AgenciaFactory.GetAgencia();
                oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID);
                oAgencia.ConsultarBasico();
                this.lblAgenciaConectada.Text = oAgencia.RazonSocial;
                oAgencia = null;
            }

            if (this.txtFacturaID.Text != "")
            {
                facturaID = Convert.ToInt32(this.txtFacturaID.Text);
                IFactura datosFactura = FacturaFactory.GetFactura();
                datosFactura.FacturaID = facturaID;

                dsDatosFactura = (DsFacturaCompleta)datosFactura.GetFacturaByFacturaID();
                this.Editar();
            }
        }
Exemplo n.º 5
0
        protected void btnFactura_Click(object sender, EventArgs e)
        {
            IFactura factura = ln.FacturarCarrito(carrito);

            Session["factura"] = factura;

            Response.Redirect("~/Factura.aspx");
        }
Exemplo n.º 6
0
        // GET: Factura

        public ActionResult MFactura()
        {
            ICarrito       carrito = (ICarrito)HttpContext.Session["carrito"];
            ILogicaNegocio ln      = new LogicaNegocio();
            IFactura       f       = ln.FacturarCarrito(carrito);

            return(View("Index", f));
        }
Exemplo n.º 7
0
        public frmCompra()
        {
            MDetalle_Factura fac = new MDetalle_Factura();

            prod = new MProducto();
            fact = new MFactura();
            InitializeComponent();
        }
Exemplo n.º 8
0
        public frmPago()
        {
            cli  = new MCliente();
            fact = new MFactura();
            MDetalle_Factura det = new MDetalle_Factura();

            InitializeComponent();
        }
        public ActionResult GenerarFactura()
        {
            ILogicaNegocio ln = (ILogicaNegocio)HttpContext.Application["logicaNegocio"];

            ICarrito carrito = (ICarrito)HttpContext.Session["carrito"];
            IFactura factura = ln.FacturarCarrito(carrito);

            HttpContext.Session["factura"] = factura;
            return(View("Factura", factura));
        }
Exemplo n.º 10
0
        private DsFactura BuscarFacturaPorTipo()
        {
            //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);
            }

            IFactura factura = FacturaFactory.GetFactura();

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

            return(factura.GetByNroFactura());
        }
        // GET: Factura

        public ActionResult MFactura()
        {
            ICarrito carrito = (ICarrito)HttpContext.Session["carrito"];
            //ILogicaNegocio ln = new LogicaNegocio(); //Si crear nuevo objeto entra en constructor vacio de lineaNegocio y no debe
            ILogicaNegocio ln = (ILogicaNegocio)HttpContext.Application["logicaNegocio"];

            if (carrito.Usuario == null)
            {
                return(RedirectToAction("Index", "Productos"));
            }                                                                               //orde: medoto Controlador }
            IFactura f = ln.FacturarCarrito(carrito);

            return(View("Index", f));
        }
Exemplo n.º 12
0
        /// <summary>
        /// Método que realiza el cálculo de firma de factura.
        /// </summary>
        /// <param name="factura">Factura a firmar</param>
        /// <returns>cadena de firma</returns>
        private static string FirmarFactura(IFactura factura)
        {
            StringBuilder sb = new StringBuilder(Settings.Default.licencia);

            decimal total = factura.Lineas.Sum(item => item.Cantidad);

            //suma el total a pagar


            sb.Append(factura.Numero).Append(Settings.Default.ccc)
            .Append(total).Append(factura.Nombre).Append(Settings.Default.nif);

            return(GetSha1(sb.ToString()));
        }
Exemplo n.º 13
0
        private void BindGrilla()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgComisiones, "EntidadComisionDescrip", this.CantidadOpciones, true, true);

            if (!this.txtFacturaID.Text.Equals(""))
            {
                IFactura factura = FacturaFactory.GetFactura();
                factura.FacturaID             = Convert.ToInt32(this.txtFacturaID.Text);
                this.dtgComisiones.DataSource = factura.GetComisionesByFacturaID();
            }
            else
            {
                IGuia guia = GuiaFactory.GetGuia();
                guia.GuiaID = this.txtGuiaID.Text == "" ? 0 : Convert.ToInt32(this.txtGuiaID.Text);
                this.dtgComisiones.DataSource = guia.GetComisionesByGuiaID();
            }

            this.dtgComisiones.DataBind();
        }
Exemplo n.º 14
0
        internal static InvoiceType Create(IFactura factura)
        {
            InvoiceType invoice = new InvoiceType
            {
                InvoiceHeader = new InvoiceHeaderType
                {
                    InvoiceNumber=Convert.ToString(factura.Numero),
                    InvoiceSeriesCode=string.Empty,
                    InvoiceDocumentType=InvoiceDocumentTypeType.FA,
                    InvoiceClass=InvoiceClassType.OO
                },
                InvoiceIssueData = new InvoiceIssueDataType
                {

                }
            };

            return invoice;
        }
Exemplo n.º 15
0
        internal static InvoiceType Create(IFactura factura)
        {
            InvoiceType invoice = new InvoiceType
            {
                InvoiceHeader = new InvoiceHeaderType
                {
                    InvoiceNumber       = Convert.ToString(factura.Numero),
                    InvoiceSeriesCode   = string.Empty,
                    InvoiceDocumentType = InvoiceDocumentTypeType.FA,
                    InvoiceClass        = InvoiceClassType.OO
                },
                InvoiceIssueData = new InvoiceIssueDataType
                {
                }
            };


            return(invoice);
        }
Exemplo n.º 16
0
        public void Alta(IFactura factura)
        {
            int ultimoEntero = 0;

            string ultimoNumero = null;

            if (facturas.Count > 0)
            {
                ultimoNumero = facturas.Keys.Last();
            }

            if (ultimoNumero != null)
            {
                ultimoEntero = int.Parse(ultimoNumero);
            }

            factura.Numero = (ultimoEntero + 1).ToString("000000");

            facturas.Add(factura.Numero, factura);
        }
Exemplo n.º 17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            IFactura factura = (IFactura)Session["factura"];

            if (factura == null)
            {
                Response.Redirect("~/Default.aspx");
                return;
            }
            else
            {
                Session["carrito"] = new global::TiendaVirtual.Entidades.Carrito(factura.Usuario);
            }

            lblUsuario.Text       = factura.Usuario.Nick;
            lblBaseImponible.Text = string.Format("{0:c}", factura.ImporteSinIva);
            lblIva.Text           = string.Format("{0:c}", factura.Iva);
            lblTotal.Text         = string.Format("{0:c}", factura.Total);

            rFactura.DataSource = factura.LineasFactura;
            rFactura.DataBind();
        }
        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            IAdministrarGuias admGuiaO = AdministrarGuiasFactory.GetAdministrarGuias();


            try
            {
                if (txtRangoDesde.Text == "")
                {
                    throw new Exception("Falta ingresar rango");
                }

                if (txtRangoHasta.Text == "")
                {
                    throw new Exception("Falta ingresar rango");
                }
                if (ddlTipoGuia.SelectedValue == "")
                {
                    throw new Exception("Falta seleccionar tipo de guia");
                }


                //if (cantidad >= 51 || cantidad < 0)
                //{
                //    throw new Exception("Solamente se permite un rango de 50 CB a imprimir .");

                //}
                IAgencia ag = AgenciaFactory.GetAgencia();
                ag.AgenciaID = usuario.AgenciaID;
                ag.Consultar();

                IGuia    oGuia    = GuiaFactory.GetGuia();
                IFactura oFactura = FacturaFactory.GetFactura();
                DsGuias  ds       = new DsGuias();

                if (ddlEmpresa.SelectedValue == "Cargas")
                {
                    string SucursalFinal = ag.SucursalDGI.Trim().Substring(1, 3);
                    nrosucrusal = 5 + SucursalFinal;
                    //5
                }
                else if (ddlEmpresa.SelectedValue == "Express")
                {
                    nrosucrusal = ag.SucursalDGI.Trim();
                    //4
                }
                else
                {
                    nrosucrusal = "";
                }

                int NroDesde = Convert.ToInt32(txtRangoDesde.Text);
                int NroHasta = Convert.ToInt32(txtRangoHasta.Text);

                string tipoguia = ddlTipoGuia.SelectedValue;

                ds = oGuia.GetGuiasByFecha(NroDesde, NroHasta, nrosucrusal, tipoguia, usuario.AgenciaID);

                if (ds.Datos.Count == 0)
                {
                    throw new Exception("No existen guias en el rango ingresado");
                }

                if (ds.Datos.Count > 0)
                {
                    for (int i = 0; i < ds.Datos.Count(); i++)
                    {
                        DsGuias.DatosRow dr     = (DsGuias.DatosRow)ds.Datos.Rows[i];
                        string           guiaid = dr.GuiaID.ToString();
                        admGuiaO.GuiaID = Convert.ToInt32(guiaid);
                        try
                        {
                            dataImpresion = admGuiaO.GetDataSetImpresionByGuiaID();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        origen  = dataImpresion.Datos.Rows[0][60].ToString();
                        destino = dataImpresion.Datos.Rows[0]["LocalidadDestinatario"].ToString();

                        admGuiaO.TipoGuia        = dataImpresion.Datos.Rows[0][1].ToString();
                        admGuiaO.NroSucursalGuia = dataImpresion.Datos.Rows[0][2].ToString();
                        admGuiaO.NroGuia         = Convert.ToInt32(dataImpresion.Datos.Rows[0][3].ToString());
                        admGuiaO.CantBultos      = Convert.ToInt32(dataImpresion.Datos.Rows[0][29].ToString());

                        NegociosSisPack.ImpresionCajon IC = new NegociosSisPack.ImpresionCajon();
                        try
                        {
                            Session["ImpresoraUsuario"].ToString();

                            //para el caso en el que quieran imprimir solamente un CB
                            //por ejemplo una guia que tenga 50 bultos.
                            //Si presionan el check solamente se imprime 1 etiqueta. FQuiroga 22/12/2016

                            if (chkCantidad.Checked == true)
                            {
                                admGuiaO.CantBultos = 1;
                            }

                            string cb = (admGuiaO.TipoGuia == "R" ? "9" : (admGuiaO.TipoGuia == "A" ? "3" : "4")) + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString();
                            try
                            {
                                for (int i2 = 1; i2 <= admGuiaO.CantBultos; i2++)
                                {
                                    IC.Imprimir(admGuiaO.TipoGuia + " " + admGuiaO.NroSucursalGuia + admGuiaO.NroGuia.ToString().ToString(), i2 + "/" + admGuiaO.CantBultos.ToString("000"), cb + i2.ToString("000"), CINT("1", 1), Session["ImpresoraUsuario"].ToString(), origen, destino);
                                }
                            }
                            catch (Exception ex)
                            {
                                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto("El usuario no tiene configurada una impresora."));
                            }
                        }
                        catch (Exception ex)
                        {
                            ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto("El usuario no tiene configurada una impresora."));
                        }
                        //descanso de codigos para que no salgan tan rapido y se trabe
                        Thread.Sleep(Utiles.Validaciones.obtieneEntero("500"));
                    }
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
            Limpiar();
        }
        public void Alta(IFactura factura)
        {
            try
            {
                using (IDbConnection con = new System.Data.SqlClient.SqlConnection(connectionString))
                {
                    //"Zona declarativa"
                    con.Open();

                    IDbCommand comInsert = con.CreateCommand();

                    comInsert.CommandText = SQL_INSERT;

                    //IDbDataParameter parNumero = comInsert.CreateParameter();
                    //parNumero.ParameterName = "Numero";
                    //parNumero.DbType = DbType.String;

                    IDbDataParameter parFecha = comInsert.CreateParameter();
                    parFecha.ParameterName = "Fecha";
                    parFecha.DbType        = DbType.String;

                    IDbDataParameter parUsuariosId = comInsert.CreateParameter();
                    parUsuariosId.ParameterName = "UsuariosId";
                    parUsuariosId.DbType        = DbType.String;

                    //comInsert.Parameters.Add(parNumero);
                    comInsert.Parameters.Add(parFecha);
                    comInsert.Parameters.Add(parUsuariosId);

                    //"Zona concreta"
                    //parNumero.Value = factura.Numero;
                    parFecha.Value      = factura.Fecha;
                    parUsuariosId.Value = factura.Usuario.Id;

                    int numRegistrosInsertados = comInsert.ExecuteNonQuery();

                    if (numRegistrosInsertados != 1)
                    {
                        throw new AccesoDatosException("Número de registros insertados: " +
                                                       numRegistrosInsertados);
                    }
                }
            }
            catch (Exception e)
            {
                throw new AccesoDatosException("No se ha podido realizar el alta", e);
            }
            foreach (ILineaFactura linea in factura.LineasFactura)
            {
                try
                {
                    using (IDbConnection con = new System.Data.SqlClient.SqlConnection(connectionString))
                    {
                        //"Zona declarativa"
                        con.Open();

                        IDbCommand comInsert = con.CreateCommand();

                        comInsert.CommandText = SQL_INSERT2;

                        //IDbDataParameter parFacturaID = comInsert.CreateParameter();
                        //parFacturaID.ParameterName = "FacturaID";
                        //parFacturaID.DbType = DbType.String;

                        IDbDataParameter parProductoId = comInsert.CreateParameter();
                        parProductoId.ParameterName = "ProductoId";
                        parProductoId.DbType        = DbType.String;

                        IDbDataParameter parCantidad = comInsert.CreateParameter();
                        parCantidad.ParameterName = "Cantidad";
                        parCantidad.DbType        = DbType.String;

                        //comInsert.Parameters.Add(parFacturaID);
                        comInsert.Parameters.Add(parProductoId);
                        comInsert.Parameters.Add(parCantidad);

                        //"Zona concreta"
                        //parFacturaID.Value = factura.Numero;
                        parProductoId.Value = linea.Producto.Id;
                        parCantidad.Value   = factura.Usuario.Id;

                        int numRegistrosInsertados = comInsert.ExecuteNonQuery();

                        if (numRegistrosInsertados != 1)
                        {
                            throw new AccesoDatosException("Número de registros insertados: " +
                                                           numRegistrosInsertados);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new AccesoDatosException("No se ha podido realizar el alta", e);
                }
            }
        }
        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);
            }
        }
Exemplo n.º 21
0
        static void MainAnterior(string[] args)
        {
            string e = Encoding.Default.GetString(new byte[] { 128 });

            Console.OutputEncoding = Encoding.Default;

            Console.WriteLine(e);

            MostrarUsuarios();

            //ln.AltaUsuario(PedirUsuario());

            //MostrarUsuarios();

            int idUsuario;

            Console.WriteLine(ln.ValidarUsuario("Javier", "adfakljflk"));       //0
            Console.WriteLine(idUsuario = ln.ValidarUsuario("Javier", "Lete")); //1

            IUsuario u = ln.ValidarUsuarioYDevolverUsuario("Javier", "adfakljflk");

            Console.WriteLine(u != null ? u.ToString() : "El usuario no es válido");
            Console.WriteLine(ln.ValidarUsuarioYDevolverUsuario("Javier", "Lete")); //1

            IUsuario usuario = ln.BuscarUsuarioPorId(idUsuario);

            foreach (IProducto p in ln.ListadoProductos())
            {
                Console.WriteLine("{0}, {1}, {2:0.00} {3}",
                                  p.Id, p.Nombre, p.Precio, e); //1, Placa Base, 123€
            }
            IProducto producto = ln.BuscarProductoPorId(2);

            Console.WriteLine(producto); //Ficha completa

            ICarrito carrito = new Carrito(usuario);

            ln.AgregarProductoACarrito(producto, carrito);
            ln.AgregarProductoACarrito(producto, carrito);
            ln.AgregarProductoACarrito(new Producto(3, "Pantalla", 100.0m), carrito);

            ////VER CONTENIDO DE CARRITO

            Console.WriteLine(carrito.Usuario);

            foreach (ILineaFactura linea in ln.ListadoProductosCarrito(carrito))
            {
                Console.WriteLine(linea);
            }

            Console.WriteLine(carrito.ImporteSinIva);
            Console.WriteLine(carrito.Iva);
            Console.WriteLine(carrito.Total);

            //(decimal ImporteSinIva, decimal Iva, decimal Total)
            var totales = ((Compra)carrito).CalcularTotales();

            Console.WriteLine($"{totales.ImporteSinIva}, {totales.Iva}, {totales.Total}");

            //for (int i = 0; i < 15; i++)
            //{
            IFactura factura = ln.FacturarCarrito(carrito);

            carrito = null;

            Console.WriteLine(factura);
            //}
        }
Exemplo n.º 22
0
 public FacturaController(IFactura factura)
 {
     _factura = factura;
 }
Exemplo n.º 23
0
 public FacturaController(IFactura factura)
 {
     _factura = factura;
 }
Exemplo n.º 24
0
        protected void btnEmitir_Click(object sender, EventArgs e)
        {
            try
            {
                // Valido los datos
                if (ValidarEmision())
                {
                    // Cargo los datos a guardar
                    IFactura factura = FacturaFactory.GetFactura();
                    factura.GuiaID                 = GuiaID;
                    factura.ClienteID              = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                    factura.ClienteEventualID      = ClienteFacturacion1.ClienteEventualID ?? 0;
                    factura.AgenciaID              = AgenciaConectadaID;
                    factura.UnidadNegocioID        = UnidadNegocioID;
                    factura.CondicionIVAAgentePago = ClienteFacturacion1.CondicionIVA ?? 0;
                    factura.NroCUITAgentePago      = ClienteFacturacion1.NroCUIT;

                    if (rbtContado.Checked)
                    {
                        factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.Contado;
                    }
                    else if (rbtCtaCte.Checked)
                    {
                        factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.CuentaCorriente;
                    }
                    else if (rbtPagoEnDestino.Checked)
                    {
                        factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.PagoEnDestino;
                    }
                    else
                    {
                        factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.TarjCredDeb;
                    }
                    factura.UsuarioIDAlta   = usuario.UsuarioID;
                    factura.ClienteEventual = ClienteFacturacion1.ClienteEventual;

                    if (rbtTarjetaDeCredito.Checked)
                    {
                        Int32 _auxTarjeta;
                        if (Int32.TryParse(txtNroLote.Text, out _auxTarjeta))
                        {
                            factura.NroLoteTarjeta = _auxTarjeta;
                        }
                        if (Int32.TryParse(txtNroCupon.Text, out _auxTarjeta))
                        {
                            factura.NroCuponTarjeta = _auxTarjeta;
                        }
                    }

                    if (txtObservaciones.Text.Length > 500)
                    {
                        txtObservaciones.Text = txtObservaciones.Text.Substring(0, 500);
                    }
                    factura.Observaciones      = txtObservaciones.Text;
                    factura.NroRemitoCliente   = txtNroRemitoCliente.Text.Trim();
                    factura.NroFacturaCliente  = txtNroFacturaCliente.Text.Trim();
                    factura.NroHojaRutaCliente = txtNroHojaRutaCliente.Text.Trim();

                    IFacturaDetalle detalle = FacturaDetalleFactory.GetFacturaDetalle();
                    detalle.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue);
                    if (txtTope.Text != "")
                    {
                        detalle.Tope = Convert.ToDouble(txtTope.Text);//.Replace(".",","));
                    }
                    if (txtCodigoBarras.Text != "")
                    {
                        detalle.CodigoBarras = txtCodigoBarras.Text.Trim();//.Replace(".",","));
                    }
                    factura.DetalleFactura.Add(detalle);

                    factura.ValidarCredito();
                    factura.ValidarCodigosDeBarra();


                    string _tipoGuia = factura.DeterminarTipoFacturaConceptoFacturacion();
                    factura.TipoGuia = _tipoGuia;
                    // Reviso si tengo que determinar la empresa de facturación

                    if (_tipoGuia == "A" || _tipoGuia == "B")
                    {
                        try
                        {
                            int _empresaFacturacionID = factura.DeterminarEmpresaFacturacionConceptoFacturacion();
                            factura.EmpresaFacturacionID = _empresaFacturacionID;

                            factura.CargarInfoComprobante();

                            factura.CalcularImporteConceptoFacturacion();

                            /*****************************************************************/
                            //ws = Session["WSFactElect"] as SisPack.WSFEL.FEService;

                            //if (ws == null)
                            //{
                            //    // create the proxy
                            //    //MyService = new localhost.MyDemo();
                            //    ws = new SisPack.WSFEL.FEService();

                            //    // create a container for the SessionID cookie
                            //    ws.CookieContainer = new CookieContainer();

                            //    // store it in Session for next usage
                            //    Session["WSFactElect"] = ws;

                            //    ws.Inicializar(long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente);
                            //   // ws.Inicializar(long.Parse(CUITCargas), NombreCertificadoCargas, Ambiente);
                            //}
                            IAFIP  afip       = AFIPFactory.GetAFIP();
                            string referencia = string.Empty;

                            //string sError = string.Empty;
                            //DateTime sVencimientoCae = new DateTime();
                            // Detalles detalleFE = new Detalles();
                            int    puntoVta        = int.Parse(factura.NroSucursalGuia);
                            int    tipoCbe         = 6;
                            int    tipoDocumento   = 96;
                            long   numeroDocumento = 30414121;
                            int    tipoConcepto    = 2;
                            double total           = factura.ImporteTotal;
                            double totalConcepto   = 0;
                            double neto            = factura.ImporteNeto;
                            double exento          = 0;
                            double totalTributos   = 0;
                            double totalIva        = factura.ImporteIVA;
                            int    tipoIva         = 5;
                            long   nroFactura      = 0;

                            if (factura.TipoGuia == "A")
                            {
                                tipoCbe         = 1; //Factura A
                                numeroDocumento = long.Parse(factura.ClienteEventual.NroCuit);

                                if ((int)factura.ClienteEventual.TipoDocumentoCuit == 5)
                                {
                                    tipoDocumento = 80; //CUIT
                                }
                                else if ((int)factura.ClienteEventual.TipoDocumentoCuit == 6)
                                {
                                    tipoDocumento = 86; //CUIL
                                }
                                else
                                {
                                    tipoDocumento = 91; //91
                                }
                            }
                            else
                            {
                                tipoCbe         = 6; //Factura B
                                numeroDocumento = long.Parse(factura.ClienteEventual.NroDocumento.ToString());
                                if ((int)factura.ClienteEventual.TipoDocumento == 1)
                                {
                                    tipoDocumento = 96; //DNI
                                }
                                else if ((int)factura.ClienteEventual.TipoDocumento == 2)
                                {
                                    tipoDocumento = 90; //LC
                                }
                                else if ((int)factura.ClienteEventual.TipoDocumento == 3)
                                {
                                    tipoDocumento = 89; //LE
                                }
                                else if ((int)factura.ClienteEventual.TipoDocumento == 4)
                                {
                                    tipoDocumento = 94; //Pasaporte
                                }
                                else if ((int)factura.ClienteEventual.TipoDocumento == 6)
                                {
                                    tipoDocumento = 86; //CUIL
                                }
                                else
                                {
                                    tipoDocumento = 91; //91
                                }
                            }

                            string fechaFE = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00");

                            if (totalIva == 0)
                            {
                                tipoIva = 3; //Iva 0
                            }
                            //detalleFE.Ivas.AddIvasRow(tipoIva, neto, totalIva);

                            if (factura.EmpresaFacturacionID == 1)
                            {
                                //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1;

                                //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITExpress));

                                if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente))
                                {
                                    nroFactura = afip.NumeroFactura;

                                    if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos,
                                                        totalIva, tipoIva))
                                    {
                                        factura.NumeroCAE = afip.NumeroCAE;
                                    }
                                }
                            }
                            else
                            {
                                //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1;

                                //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITCargas));
                            }

                            //if (sError.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar."))
                            if (afip.errorCAE.Contains("10016-El número o fecha del comprobante no se corresponde con el próximo a autorizar."))
                            {
                                //verifico nuevamente por si alguien estaba usando ese numero
                                if (factura.EmpresaFacturacionID == 1)
                                {
                                    //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1;

                                    //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                    //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITExpress));

                                    if (afip.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente))
                                    {
                                        nroFactura = afip.NumeroFactura;

                                        if (afip.ObtenerCAE(puntoVta, tipoCbe, long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, fechaFE, total, totalConcepto, neto, exento, totalTributos,
                                                            totalIva, tipoIva))
                                        {
                                            factura.NumeroCAE = afip.NumeroCAE;
                                        }
                                    }
                                }
                                else
                                {
                                    //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1;

                                    //factura.NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                    //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalleFE, ref sError, ref sVencimientoCae, long.Parse(CUITCargas));
                                }

                                if (afip.errorCAE != string.Empty)
                                {
                                    using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogEmisionConcepto.log"))
                                    {
                                        archivo.WriteLine("EmisionConceptoFacturacion.aspx.cs linea 815-------------------------------------------------------------------------------------");
                                        archivo.WriteLine("--------------------------------------------------------------------------------------");
                                    }
                                    factura.EmitirFacturaConceptoFacturacion(null);
                                }
                                else
                                {
                                    //factura.FechaCae = sVencimientoCae;
                                    factura.FechaCae = afip.fechaCAE;
                                    factura.NroGuia  = int.Parse(nroFactura.ToString());
                                    factura.EmitirFacturaConceptoFacturacionFE(null);
                                }
                            }
                            else if (afip.errorCAE != string.Empty || (afip.errorCAE == string.Empty && factura.NumeroCAE == string.Empty))
                            {
                                using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogEmisionConcepto.log"))
                                {
                                    archivo.WriteLine("EmisionConceptoFacturacion.aspx.cs linea 832-------------------------------------------------------------------------------------");
                                    archivo.WriteLine("--------------------------------------------------------------------------------------");
                                }
                                //Paso a la modalidad autoimpresor
                                factura.EmitirFacturaConceptoFacturacion(null);
                            }
                            else
                            {
                                //factura.FechaCae = sVencimientoCae;
                                factura.FechaCae = afip.fechaCAE;
                                factura.NroGuia  = int.Parse(nroFactura.ToString());
                                factura.EmitirFacturaConceptoFacturacionFE(null);
                            }
                        }
                        catch (Exception ex)
                        {
                            using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogEmisionConcepto.log"))
                            {
                                archivo.WriteLine("EmisionConceptoFacturacion.aspx.cs linea 850-------------------------------------------------------------------------------------");
                                archivo.WriteLine("--------------------------------------------------------------------------------------");
                            }
                            factura.EmitirFacturaConceptoFacturacion(null);
                        }
                        /*****************************************************************/
                    }
                    else
                    {
                        factura.EmitirFacturaConceptoFacturacion(null);
                    }

                    // Cargo los datos para imprimir
                    IAgencia agencia = AgenciaFactory.GetAgencia();


                    txtPaginaImpresion.Value = agencia.GetPaginaImpresion(factura.TipoImpresionGuiaID, Implementacion);

                    txtFacturaID.Value = factura.FacturaID.ToString();

                    //if (factura.ImportePercepcion != 0)
                    //{
                    //    int facturaid = factura.FacturaID;
                    //    //guardar en una tabla nueva la guiaid, percepcionid, percpecion importe.
                    //    //parte de inserrtar el origen
                    //    IPercepcionDominio _perDominio = IoC.GetObjectDominio<IPercepcionDominio>();
                    //    List<Dominio.Entidades.GetOnePercepcionDatos> lstPerOrigen = _perDominio.PercepcionGetAllBYAgOri(this.AgenciaConectadaID);
                    //    if (lstPerOrigen.Count > 0)
                    //    {
                    //        _perDominio.InsertPercepcionFactura(lstPerOrigen[0].PercepcionID, facturaid, Convert.ToDouble(lstPerOrigen[0].PorcentajeImporte), "Origen", factura.ImportePercepcion);

                    //    }

                    //}

                    //guardar el mail
                    if (txtFacturaID.Value != "0")
                    {
                        this.GuardarMail(Convert.ToInt32(txtFacturaID.Value));
                    }


                    Session["DatosGuia"] = ToDsGuiaFacturaImpresion(factura.GetFacturaConceptoImpresionByFacturaID());
                }
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("Datos inválidos:"))
                {
                    throw ex;
                }
                else
                {
                    throw new Exception("Error al guardar factura");
                }
            }
        }
Exemplo n.º 25
0
        protected void btnCalcularImporte_Click(object sender, EventArgs e)
        {
            Page.Validate("CalcularImportes");
            if (Page.IsValid)
            {
                IFactura factura = FacturaFactory.GetFactura();

                // Calculo el importe de la factura
                factura.UnidadNegocioID = UnidadNegocioID;
                IFacturaDetalle detalle = FacturaDetalleFactory.GetFacturaDetalle();
                detalle.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue);
                if (txtTope.Text != "")
                {
                    //Diego 31/03/2014  Modificado para que se pueda poner decimales en los m3
                    //detalle.Tope = Convert.ToInt32(txtTope.Text);
                    detalle.Tope = Convert.ToDouble(txtTope.Text);//.Replace(".",","));
                }

                if (txtCodigoBarras.Text != "")
                {
                    detalle.CodigoBarras = txtCodigoBarras.Text.Trim();//.Replace(".",","));
                }

                factura.DetalleFactura.Add(detalle);
                factura.AgenciaID = AgenciaConectadaID;
                factura.CalcularImporteConceptoFacturacion();

                // Determino el tipo de factura que se va a emitir con los datos ingresados
                factura.CondicionIVAAgentePago = ClienteFacturacion1.CondicionIVA ?? 0;
                if (rbtContado.Checked)
                {
                    factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.Contado;
                }
                else if (rbtCtaCte.Checked)
                {
                    factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.CuentaCorriente;
                }
                else if (rbtPagoEnDestino.Checked)
                {
                    factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.PagoEnDestino;
                }
                else
                {
                    factura.CondicionPagoID = (Int32)NegociosSisPackInterface.SisPack.CondicionPago.TarjCredDeb;
                }

                // Muestro los importes
                if (factura.DeterminarTipoFacturaConceptoFacturacion() == "A")
                {
                    lblNeto.Text  = factura.ImporteNeto.ToString("#,###0.00");
                    lblIVA.Text   = factura.ImporteIVA.ToString("#,###0.00");
                    lblTotal.Text = factura.ImporteTotal.ToString("#,###0.00");
                    //PERCEPCION
                    //  lblPercepcion.Text = factura.ImportePercepcion.ToString("#,###0.00");
                }
                else
                {
                    lblNeto.Text = factura.ImporteTotal.ToString("#,###0.00");
                    lblIVA.Text  = "";
                    //PERCEPCION
                    // lblPercepcion.Text = factura.ImportePercepcion.ToString("#,###0.00");
                    lblTotal.Text = factura.ImporteTotal.ToString("#,###0.00");
                }
            }
        }
        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)
            {
            }
        }
Exemplo n.º 27
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            bool      ok                         = true;
            Hashtable hGuias                     = new Hashtable(); // Guías que no se pueden recibir, porque son de ag. no automatizadas o no existen
            Hashtable hGuiasNR                   = new Hashtable(); // Guías que no están en condiciones de ser conformadas
            Hashtable hGuiasIncompletas          = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias)
            Hashtable hRemitosFaltaIngresarDatos = new Hashtable(); // Remitos que no se pueden conformar por que le falta ingresar los datos para facturar

            DsFacturaImpresion.DatosRow drFac;
            Hashtable hGuiasSinCompletar = new Hashtable(); // Guías que pertenecen a la HRepartidor original pero que no se ingresaron en la conformacion/observacion masiva.
            Hashtable hGuiasIngresadas   = new Hashtable(); // Guías que se ingresaron, lo utilizo para hacer una validacion al final

            // Busco los datos de la agencia
            IAgencia datosAgencia = AgenciaFactory.GetAgencia();

            datosAgencia.AgenciaID = usuario.AgenciaID;
            datosAgencia.Consultar();

            DsDatosGenerarFactura dsDatosFacturasAGenerar;

            if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null)
            {
                dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"];
            }
            else
            {
                dsDatosFacturasAGenerar = new DsDatosGenerarFactura();
            }
            DsFacturaImpresion          dsFAImprimir = new DsFacturaImpresion();
            DsDetalleHojaRutaRepartidor dsDetalle    = new DsDetalleHojaRutaRepartidor();
            DsHojaRutaRepartidor        dsHR         = (DsHojaRutaRepartidor)Session["dsHojaRutaRepartidor"];

            if (Session["DsDetalleHojaRutaRepartidor"] != null)
            {
                dsDetalle = (DsDetalleHojaRutaRepartidor)Session["DsDetalleHojaRutaRepartidor"];
            }

            if (Session["hGuiasIngresadas"] != null)
            {
                hGuiasIngresadas = (Hashtable)Session["hGuiasIngresadas"];
            }

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                string txt        = "txt" + i;
                string obs        = "Obs" + i.ToString() + "$txtObservacionID";
                string obsCodigo  = "Obs" + i.ToString() + "$txtCodigo";
                string obsDescrip = "Obs" + i.ToString() + "$txtObsDescrip";
                string ddl        = "ddl" + i.ToString();

                string nroGuia       = Request.Form[txt].ToString();
                string observacionID = Request.Form[obs].ToString();
                string sObsCodigo    = Request.Form[obsCodigo].ToString();
                string sObsDescrip   = Request.Form[obsDescrip].ToString();

                // Lógica para recibir (y observar) guías
                string tGuia = "";

                tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));

                string nroSucursal = nroGuia.Substring(1, 4);
                string nGuia       = nroGuia.Substring(5);

                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                oGuia.NroSucursalGuia = nroSucursal;
                oGuia.TipoGuia        = tGuia;
                oGuia.Consultar();
                oGuia.EsRecepcion     = 1;
                oGuia.UnidadNegocioID = this.UnidadNegocioID;
                oGuia.UsuarioID       = usuario.UsuarioID;

                IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura();
                oGuiaFactura.UsuarioID = usuario.UsuarioID;

                // si la guía existe en el sistema, verifco si está en condiciones de conformarse y si es así la conformo
                if (oGuia.GuiaID > 0)
                {
                    //SFE: 22/08/2012. Guardo las guias ingresadas para al final del foreach realizar una validacion.
                    hGuiasIngresadas.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);

                    // Reviso si la guía esta en condiciones de ser conformada (tanto por que tiene los estados necesarios
                    // en la cabecera de la guía o en los estados historicos)
                    if (EsConformable(oGuia))
                    {
                        // Reviso si se trata de un remito por un flete pago en destino y si es asi, si esta o no facturado
                        if (tGuia == "R" && oGuia.GuiaTieneFPD() && oGuia.RemitoEstaFacturado() == false)
                        {
                            // Se trata de un remito.
                            // Reviso si tengo que observar la guía o conformarla
                            if (Utiles.Validaciones.obtieneEntero(observacionID) > 0)
                            {
                                // tengo que observar la guía
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            }

                            // Tengo que conformar la guía
                            // Reviso si la agencia es autoimpresora
                            if (datosAgencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                            {
                                // la agencia no es autoimpresora. marco como que no se puede conformar la guía
                                hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                            }
                            else
                            {
                                // La agencia es autoimpresora
                                // Reviso si se ingreso la información para facturar el remito
                                if (Validaciones.obtieneEntero(dsDatosFacturasAGenerar.Datos.Compute("count(guiaid)", "guiaid=" + oGuia.GuiaID.ToString()).ToString()) == 0)
                                {
                                    dsDatosFacturasAGenerar.Datos.Select("guiaid =" + oGuia.GuiaID.ToString());
                                    // No se ingreso la información de la factura.
                                    if (hRemitosFaltaIngresarDatos.ContainsKey(oGuia.GuiaID) == false)
                                    {
                                        hRemitosFaltaIngresarDatos.Add(oGuia.GuiaID, nroGuia);//Validaciones.obtieneEntero(nroSucursal).ToString("0000") + " - " + Validaciones.obtieneEntero(nroGuia).ToString("00000000") + "-" + tGuia);
                                        ok = false;
                                    }
                                }
                                else
                                {
                                    // Si se ingreso la información de la factura
                                    ((IGuia)oGuiaFactura).GuiaID    = oGuia.GuiaID;
                                    ((IGuia)oGuiaFactura).UsuarioID = usuario.UsuarioID;

                                    // Cargo la información para realizar la factura
                                    IFactura oFactura = CargarDatosFactura(((IGuia)oGuiaFactura).GuiaID);
                                    ((IGuia)oGuiaFactura).OFactura = oFactura;

                                    DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                    dr.GuiaID        = oGuia.GuiaID;
                                    dr.ObservacionID = oGuia.ObservacionID;
                                    dr.Observaciones = sObsDescrip;
                                    dsDetalle.Datos.AddDatosRow(dr);
                                    dsDetalle.Datos.AcceptChanges();
                                }
                            }
                        }
                        else
                        {
                            // Se trata de una guía normal o de un remito de un cliente coorporativo. No de un remito por Flete pago en destino. O el remito ya esta facturado
                            ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID;

                            IParametroUNegocio paramAdm = ParametroUNegocioFactory.GetParametroUNegocio();
                            paramAdm.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
                            paramAdm.UnidadNegocioID = this.UnidadNegocioID;
                            paramAdm.Consultar();
                            int agAdm = Utiles.Validaciones.obtieneEntero(paramAdm.ValorString);
                            paramAdm = null;

                            // Si la agencia conectada es igual a la agencia de destino, le permito conformar
                            if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID ||
                                 ((this.AgenciaConectadaID != oGuia.AgenciaDestinoID || this.AgenciaConectadaID == agAdm) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion) ||
                                 (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia)) ||
                                 (this.EsGuiaDePuntoRecepcionReferenciado(oGuia))))
                            {
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);

                                DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                //DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                dr.GuiaID        = oGuia.GuiaID;
                                dr.ObservacionID = oGuia.ObservacionID;
                                dr.Observaciones = sObsDescrip;
                                dsDetalle.Datos.AddDatosRow(dr);
                                dsDetalle.Datos.AcceptChanges();
                            }
                            else
                            {
                                // No se puede conformar...
                                string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                                if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                                {
                                    hGuiasNR.Add(oGuia.GuiaID, guia);
                                    // SFE
                                    ok = false;
                                }
                            }
                        }
                    } // fin if EsConformable
                    else
                    {
                        // La guía no existe... no se puede conformar...
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                        {
                            hGuiasNR.Add(oGuia.GuiaID, guia);
                        }
                        ok = false;
                    }
                }
                else
                {
                    // La guía no existe... no se puede conformar...
                    string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                    if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                    {
                        hGuiasNR.Add(oGuia.GuiaID, guia);
                    }
                    ok = false;
                }
            } // fin for


            //SFE: 22/08/2012. Recorro el detalle de las guias que componen la Hoja de Ruta del Repartidor
            foreach (DsHojaRutaRepartidor.GuiasRow item in dsHR.Guias)
            {
                //SFE: 22/08/2012. Valido que las guias que se ingresaron se correspondan y esten todas con las guias de la HRepartidor
                // Es decir verifico que en el HashTable de guias ingresadas exista el item que compone la HR, sino existe la coloco en el Hash de guias sin completar para mostrarla nuevamente.
                if (hGuiasIngresadas.ContainsKey(item.GuiaID) == false)
                {
                    ok = false;
                    hGuiasSinCompletar.Add(item.GuiaID, item.NroCompletoGuia);
                }
            }
            //SFE: 22/08/2012. Fin

            // Este dsDetalle contiene las guias ingresadas y que pertenecen a la HRepartidor, va a servir para marcarlas en la pagina de atras (la que llama).
            Session["DsDetalleHojaRutaRepartidor"] = dsDetalle;
            Session["GuiasNR"] = hGuiasNR;
            Session["hRemitosFaltaIngresarDatos"] = hRemitosFaltaIngresarDatos;
            Session["hGuiasSinCompletar"]         = hGuiasSinCompletar;
            Session["hGuiasIngresadas"]           = hGuiasIngresadas;

            StringBuilder scriptRedirect = new StringBuilder();

            if (ok)
            {
                Session["GuiasDefectuosas"]   = null;
                Session["hGuiasIngresadas"]   = null;
                Session["hGuiasSinCompletar"] = null;

                StringBuilder scriptFinal = new StringBuilder();
                scriptFinal.Append("<script type=\"text/javascript\">\n");
                scriptFinal.Append("window.close();\n");
                scriptFinal.Append("</script>");
                Page.RegisterStartupScript("DatosRegistrados", scriptFinal.ToString());
            }
            else
            {
                if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0)
                {
                    hGuias = hGuiasIncompletas;
                }

                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;;

                Hashtable hGuiasNr = new Hashtable();
                if (Session["GuiasNR"] != null)
                {
                    hGuiasNr = (Hashtable)Session["GuiasNR"];

                    if (hGuiasNr.Count > 0)
                    {
                        MostrarGuiasNoConformables(hGuiasNr);
                    }
                }
                else
                {
                    this.lblMensaje.Visible = false;
                }

                if (Session["hRemitosFaltaIngresarDatos"] != null && ((Hashtable)Session["hRemitosFaltaIngresarDatos"]).Count > 0)
                {
                    // Si hay remitos que no se conformaron por falta de ingreso de datos. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarRemitosSinConformarPorFaltaDatos();
                }
                if (Session["hGuiasSinCompletar"] != null && ((Hashtable)Session["hGuiasSinCompletar"]).Count > 0)
                {
                    // Si hay guias que pertenecen a la HRepartidor y no se ingresaron. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarGuiasNoIngresadas();
                }
            }
        }
Exemplo n.º 28
0
        private IFactura CargarDatosFactura(int GuiaID)
        {
            try
            {
                DsDatosGenerarFactura dsDatosFacturasAGenerar;
                if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null)
                {
                    dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"];
                }
                else
                {
                    dsDatosFacturasAGenerar = new DsDatosGenerarFactura();
                }

                // Genero la factura
                IFactura oFactura = FacturaFactory.GetFactura();

                // Busco los datos para registrar la factura
                DsDatosGenerarFactura.DatosRow drDatosFac = ((DsDatosGenerarFactura.DatosRow[])dsDatosFacturasAGenerar.Datos.Select("guiaid = " + GuiaID.ToString()))[0];

                // Cargo los datos de la factura a registrar

                // Reviso cual es el tipo de cliente al cual se le va a facturar el remito
                if (drDatosFac.TipoDeCliente == (int)NegociosSisPackInterface.SisPack.TipoCliente.Corporativo)
                {
                    // Se le va a facturar a un cliente coorporativo
                    oFactura.ClienteID         = drDatosFac.ClienteID;
                    oFactura.ClienteEventualID = 0;
                }
                else
                {
                    // Se le va a facturar a un cliente eventual. Reviso si el cliente esta registrado.
                    //					if (drDatosFac.ClienteID == 0)
                    //					{
                    // El cliente no esta registrado. Lo registro
                    IClienteEventual datosClienteEventual = ClienteEventualFactory.GetClienteEventual();
                    datosClienteEventual.Nombre        = drDatosFac.Nombre;
                    datosClienteEventual.Apellido      = drDatosFac.Apellido;
                    datosClienteEventual.CondicionIva  = (NegociosSisPackInterface.SisPack.CondicionIva)drDatosFac.CondicionIVAID;
                    datosClienteEventual.NroCuit       = drDatosFac.CUIT;
                    datosClienteEventual.TipoDocumento = (NegociosSisPackInterface.SisPack.TipoDocumento)drDatosFac.TipoDocumento;
                    datosClienteEventual.NroDocumento  = Utiles.Validaciones.obtieneEntero(drDatosFac.NumeroCliente);

                    // Indico que el cliente eventual tiene cargado un domicilio
                    datosClienteEventual.TieneDomicilio = true;
                    // Cargo los datos del domicilio
                    datosClienteEventual.Domicilio.DomicilioID           = drDatosFac.DomicilioID;
                    datosClienteEventual.Domicilio.Calle                 = drDatosFac.Calle;
                    datosClienteEventual.Domicilio.CalleNro              = drDatosFac.CalleNro;
                    datosClienteEventual.Domicilio.Depto                 = drDatosFac.Departamento;
                    datosClienteEventual.Domicilio.Telefono              = drDatosFac.Telefono;
                    datosClienteEventual.Domicilio.Fax                   = drDatosFac.Fax;
                    datosClienteEventual.Domicilio.Localidad.LocalidadID = drDatosFac.LocalidadID;
                    datosClienteEventual.Domicilio.EsEventual            = "1";

                    // Reviso si tengo que guardar el domicilio del cliente
                    if (datosClienteEventual.Domicilio.DomicilioID == 0 && datosClienteEventual.Domicilio.Calle != "")
                    {
                        // Tengo que guardarlo
                        datosClienteEventual.Domicilio.Guardar();
                    }

                    oFactura.ClienteID         = 0;
                    oFactura.ClienteEventualID = drDatosFac.ClienteID;
                    oFactura.ClienteEventual   = datosClienteEventual;

                    //						datosClienteEventual.Guardar();
                    //						drDatosFac.ClienteID = datosClienteEventual.ClienteEventualID;
                    //					}
                }

                // Reviso si el cliente de la factura es un cliente coorporativo
                if (oFactura.ClienteID != 0)
                {
                    // Es un cliente coorporativo. Busco sus datos fiscales
                    ICliente datosCliente = ClienteFactory.GetCliente();
                    datosCliente.ClienteID = oFactura.ClienteID;
                    datosCliente.Consultar();
                    // Cargo los datos fiscales del cliente
                    oFactura.CondicionIVAAgentePago = (int)datosCliente.CondicionIva;
                    oFactura.NroCUITAgentePago      = datosCliente.NroCuit;
                }
                // Reviso si el cliente de la factura es un cliente eventual registrado
                else if (oFactura.ClienteEventualID != 0)
                {
                    // Se trata de un cliente eventual registrado. Busco sus datos fiscales
                    IClienteEventual datosClienteEventual = ClienteEventualFactory.GetClienteEventual();
                    datosClienteEventual.ClienteEventualID = oFactura.ClienteEventualID;
                    datosClienteEventual.Consultar();
                    // Cargo los datos fiscales del cliente
                    oFactura.CondicionIVAAgentePago = (int)datosClienteEventual.CondicionIva;
                    oFactura.NroCUITAgentePago      = datosClienteEventual.NroCuit;
                }
                else
                {
                    // Se trata de un cliente eventual
                    // Cargo los datos fiscales del cliente
                    oFactura.CondicionIVAAgentePago = (int)oFactura.ClienteEventual.CondicionIva;
                    oFactura.NroCUITAgentePago      = oFactura.ClienteEventual.NroCuit;
                }

                // Devuelvo los datos
                return(oFactura);
            }
            catch (Exception ex)
            {
                // Reviso cual es el motivo de la excepción
                if (ex.Message.IndexOf(" ya esta facturado", 0) > 0 || ex.Message.IndexOf("información del CAI para el tipo de guía") > 0)
                {
                    // La exepción fue por que el remito ya estaba facturado
                    throw ex;
                }
                else
                {
                    throw new Exception("Error al generar las facturas de los remitos");
                }
            }
        }
Exemplo n.º 29
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            List <IGuia>    listadoGuias    = new List <IGuia>();
            List <IFactura> listadoFacturas = new List <IFactura>();
            string          lista           = string.Empty;
            string          listaFacturas   = string.Empty;

            usuario = (IUsuarios)Session["usuario"];

            IAgencia   agencia    = AgenciaFactory.GetAgencia();
            DsAgencias dsAgencias = agencia.GetAgenciasDataSet();

            bool      ok       = true;
            Hashtable hGuias   = new Hashtable(); // Guías que no se pueden recibir, porque ya fueron recibidas
            Hashtable hGuiasNR = new Hashtable();
            // Guías que no están en condiciones de ser recibidas porque no existen en el sistema.

            string mensaje    = "";
            string mensaje2   = "";
            string nroguiaAnt = "";
            int    loteant    = 0;

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS
                string txt = "txt" + i;
                string ddl = "ddl" + i.ToString();

                string nroGuia = Request.Form[txt].ToString();

                // Lógica para recibir guías
                string tGuia = "";
                tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));
                string nroSucursal = nroGuia.Substring(1, 4);
                string nGuia       = nroGuia.Substring(5).Replace(",", "");

                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                oGuia.NroSucursalGuia = nroSucursal;
                oGuia.TipoGuia        = tGuia;
                oGuia.ConsultarByNroGuia();
                oGuia.UnidadNegocioID = this.UnidadNegocioID;
                oGuia.UsuarioID       = usuario.UsuarioID;
                oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true;
                if (oGuia.GuiaID > 0) //Es una guia
                {
                    if (!lista.Contains(oGuia.GuiaID.ToString()))
                    {
                        lista += oGuia.GuiaID + ",";
                        listadoGuias.Add(oGuia);
                    }
                }
                else // es una factura
                {
                    IFactura oFactura = FacturaFactory.GetFactura();
                    oFactura.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                    oFactura.NroSucursalGuia = nroSucursal;
                    oFactura.TipoGuia        = tGuia;
                    oFactura.ConsultarByNroFactura();
                    if (oFactura.FacturaID > 0)
                    {
                        if (!listaFacturas.Contains(oFactura.FacturaID.ToString()))
                        {
                            listaFacturas += oFactura.FacturaID + ",";
                            listadoFacturas.Add(oFactura);
                        }
                    }
                    else // La guia no existe en el sistema
                    {
                        //La agrego al hashtable de guias que no existen en el sistema.
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        hGuiasNR.Add(guia, guia);
                    }
                }
            }

            /*Diego 22/03/2013 Guardar los valores para pasar a la pantalla de confirmacion */
            IGuiaServicioConfirmacion  guiaServicio = GuiaServicioConfirmacionFactory.GetGuiaServicioConfirmacion();
            DsGuiaServicioConfirmacion ds           = guiaServicio.GetGuiasSinConfirmacion(lista, 1);

            //1 = busca las guias emitidas

            if (ds.Datos.Rows.Count > 0)
            {
                /*debo guardar los id para mostrar el pop up para ingresar */
                Session["GuiasSinConfirmar"] = ds;
                Session["ListaGuias"]        = lista;
                Session["ListaFacturas"]     = listaFacturas;
                string script = "<script language='javascript'>\n";
                script += "			window.showModalDialog('Recepcion_ConfirmacionGuias.aspx','Confirmacion','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');\n";
                script += "         GuardarServicios(); \n";
                script += "		</script>\n";

                Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script);
            }
            else
            {
                /* No tiene guias para confirmar el servicio*/
                foreach (var oGuia in listadoGuias)
                {
                    ICaja caja = CajaFactory.GetCajaFactory();
                    caja.CajaID = cajaID;

                    // si la guía existe en el sistema
                    if (oGuia.GuiaID > 0)
                    {
                        // Asocio la guia con el lote.
                        lote = caja.AgregarGuiaEmision(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, "");
                        if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó.
                        {
                            // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas
                            string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia.ToString() + "-" + oGuia.TipoGuia; // nroSucursal + "-" + nGuia + "-" + tGuia;
                            if (hGuias.ContainsKey(oGuia.GuiaID) == false)
                            {
                                hGuias.Add(oGuia.GuiaID, guia);
                            }
                        }
                        // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia.
                        if (loteant != lote && lote != 0 && loteant != 0)
                        {
                            // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020"
                            mensaje = "Lote :  " + loteant + " .  Posicion :  " + cantGuias.ToString() + " . Guia :  " +
                                      nroguiaAnt;
                            mensaje2 = "Lote :  " + lote + " .  Posicion :  001 . Guia :  " + oGuia.NroGuia.ToString();// nroGuia;
                        }

                        if (lote != 0)
                        {
                            loteant = lote;
                        }
                        else
                        {
                            if (loteant != 0)
                            {
                                lote = loteant;
                            }
                        }
                        nroguiaAnt = oGuia.NroGuia.ToString();// nroGuia;
                    }
                } // fin foreach

                foreach (var oFactura in listadoFacturas)
                {
                    ICaja caja = CajaFactory.GetCajaFactory();
                    caja.CajaID = cajaID;

                    // si la guía existe en el sistema
                    if (oFactura.FacturaID > 0)
                    {
                        // Asocio la guia con el lote.
                        lote = caja.AgregarFacturaEmision(oFactura, usuario, this.AgenciaConectadaID, this.cantGuias, "");
                        if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó.
                        {
                            // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas
                            string guia = oFactura.NroSucursalGuia + "-" + oFactura.NroGuia.ToString() + "-" + oFactura.TipoGuia; // nroSucursal + "-" + nGuia + "-" + tGuia;
                            if (hGuias.ContainsKey(oFactura.FacturaID) == false)
                            {
                                hGuias.Add(oFactura.FacturaID, guia);
                            }
                        }
                        // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia.
                        if (loteant != lote && lote != 0 && loteant != 0)
                        {
                            // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020"
                            mensaje = "Lote :  " + loteant + " .  Posicion :  " + cantGuias.ToString() + " . Guia :  " +
                                      nroguiaAnt;
                            mensaje2 = "Lote :  " + lote + " .  Posicion :  001 . Guia :  " + oFactura.NroGuia.ToString();// nroGuia;
                        }

                        if (lote != 0)
                        {
                            loteant = lote;
                        }
                        else
                        {
                            if (loteant != 0)
                            {
                                lote = loteant;
                            }
                        }
                        nroguiaAnt = oFactura.NroGuia.ToString();// nroGuia;
                    }
                } // fin foreach

                /*
                 * for (int i = 0; i < cant; i++)
                 * {
                 *  // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                 *  // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS
                 *  string txt = "txt" + i;
                 *  string ddl = "ddl" + i.ToString();
                 *
                 *  string nroGuia = Request.Form[txt].ToString();
                 *
                 *  // Lógica para recibir guías
                 *  string tGuia = "";
                 *  tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));
                 *  string nroSucursal = nroGuia.Substring(1, 4);
                 *  string nGuia = nroGuia.Substring(5);
                 *
                 *  IGuia oGuia = GuiaFactory.GetGuia();
                 *  oGuia.NroGuia = Utiles.Validaciones.obtieneEntero(nGuia);
                 *  oGuia.NroSucursalGuia = nroSucursal;
                 *  oGuia.TipoGuia = tGuia;
                 *  oGuia.ConsultarByNroGuia();
                 *  oGuia.UnidadNegocioID = this.UnidadNegocioID;
                 *  oGuia.UsuarioID = usuario.UsuarioID;
                 *  oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true;
                 *  lista += oGuia.GuiaID + ",";
                 *  ICaja caja = CajaFactory.GetCajaFactory();
                 *  caja.CajaID = cajaID;
                 *
                 *  // si la guía existe en el sistema
                 *  if (oGuia.GuiaID > 0)
                 *  {
                 *      // Asocio la guia con el lote.
                 *      lote = caja.AgregarGuiaEmision(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias, "");
                 *      if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó.
                 *      {
                 *          // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas
                 *          string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                 *          if (hGuias.ContainsKey(oGuia.GuiaID) == false)
                 *              hGuias.Add(oGuia.GuiaID, guia);
                 *      }
                 *      // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia.
                 *      if (loteant != lote && lote != 0 && loteant != 0)
                 *      {
                 *          // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020"
                 *          mensaje = "Lote :  " + loteant + " .  Posicion :  " + cantGuias.ToString() + " . Guia :  " +
                 *                    nroguiaAnt;
                 *          mensaje2 = "Lote :  " + lote + " .  Posicion :  001 . Guia :  " + nroGuia;
                 *      }
                 *
                 *      if (lote != 0)
                 *          loteant = lote;
                 *      else
                 *      {
                 *          if (loteant != 0)
                 *              lote = loteant;
                 *      }
                 *      nroguiaAnt = nroGuia;
                 *  }
                 *  else // La guia no existe en el sistema
                 *  {
                 *      //La agrego al hashtable de guias que no existen en el sistema.
                 *      string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                 *      hGuiasNR.Add(guia, guia);
                 *  }
                 * }
                 */

                Session["GuiasNR"] = hGuiasNR;
                Session["Guias"]   = hGuias;

                // Si todo ocurrió bien y además no hubo cambio de lote muestro el mensaje simple
                if (ok && lote != 0 && mensaje == "")
                {
                    Session["GuiasDefectuosas"] = null;
                    Page.RegisterStartupScript("muestraMensaje",
                                               SisPackController.GenerarJavaScripts.MostrarMensaje(
                                                   "Guias Almacenadas en Lote: " + lote,
                                                   "RecepcionEmitidas.aspx?cajaID=" + cajaID));
                }
                // Si todo ocurrió bien pero hubo cambio de lote muestro el mensaje compuesto por mensaje y mensaje2
                else if (mensaje != "")
                {
                    Session["GuiasDefectuosas"] = null;
                    Page.RegisterStartupScript("muestraMensaje",
                                               SisPackController.GenerarJavaScripts.MostrarMensaje(
                                                   mensaje + "\\n" + mensaje2,
                                                   "RecepcionEmitidas.aspx?cajaID=" + cajaID));
                }
                // Si no se almaceno ninguna guia no muestro mensaje. Redirecciono al load con los errores.
                else
                {
                    this.txtGuiasDefectuosas.Text = "1";
                    Session["GuiasDefectuosas"]   = hGuias;
                    Response.Redirect("RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID);
                }
            }
        }
Exemplo n.º 30
0
        /// <summary>
        /// Método que realiza el cálculo de firma de factura.
        /// </summary>
        /// <param name="factura">Factura a firmar</param>
        /// <returns>cadena de firma</returns>
        private static string FirmarFactura(IFactura factura)
        {
            StringBuilder sb = new StringBuilder(Settings.Default.licencia);

            decimal total = factura.Lineas.Sum(item => item.Cantidad);

            //suma el total a pagar

            sb.Append(factura.Numero).Append(Settings.Default.ccc)
                .Append(total).Append(factura.Nombre).Append(Settings.Default.nif);

            return GetSha1(sb.ToString());
        }
Exemplo n.º 31
0
        protected void btnGuardarServicio_Click(object sender, EventArgs e)
        {
            string lista = string.Empty;

            usuario = (IUsuarios)Session["usuario"];

            IAgencia   agencia    = AgenciaFactory.GetAgencia();
            DsAgencias dsAgencias = agencia.GetAgenciasDataSet();

            string[]  nroGuias    = Session["ListaGuias"].ToString().Split(',');
            string[]  nroFacturas = Session["ListaFacturas"].ToString().Split(',');
            bool      ok          = true;
            Hashtable hGuias      = new Hashtable(); // Guías que no se pueden recibir, porque ya fueron recibidas
            Hashtable hGuiasNR    = new Hashtable();
            // Guías que no están en condiciones de ser recibidas porque no existen en el sistema.

            string mensaje                = "";
            string mensaje2               = "";
            string nroguiaAnt             = "";
            int    loteant                = 0;
            DsGuiaServicioConfirmacion ds = (DsGuiaServicioConfirmacion)Session["GuiasSinConfirmar"];
            int cantGuias = nroGuias.Length; //  Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);
            int cantFacturas = nroFacturas.Length;
            int nroGuia, nroFactura;
            DsImpresionConfirmacionServicio dsImpresion = new DsImpresionConfirmacionServicio();

            for (int i = 0; i < cantGuias; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS
                // string nroGuia = nroGuias[i]; // Request.Form[txt].ToString();

                if (int.TryParse(nroGuias[i], out nroGuia))
                {
                    IGuia oGuia = GuiaFactory.GetGuia();
                    oGuia.GuiaID = nroGuia;
                    oGuia.Consultar();
                    // Lógica para recibir guías
                    string tGuia = "";
                    tGuia = oGuia.TipoGuia;
                    string nroSucursal = oGuia.NroSucursalGuia;
                    string nGuia       = oGuia.NroGuia.ToString();
                    string nroRemito   = string.Empty;
                    string numero_guia = string.Empty;
                    oGuia.UsuarioID = usuario.UsuarioID;
                    oGuia.GuiaConformadaDesdeModuloRecepcionConformadas = true;
                    lista += oGuia.GuiaID + ",";
                    ICaja caja = CajaFactory.GetCajaFactory();
                    caja.CajaID = cajaID;

                    // si la guía existe en el sistema
                    if (oGuia.GuiaID > 0)
                    {
                        foreach (DsGuiaServicioConfirmacion.DatosRow dr in ds.Tables[0].Rows)
                        {
                            if (oGuia.GuiaID == dr.GuiaID && dr.Seleccionado)
                            {
                                nroRemito   = dr.NroRemito;
                                numero_guia = dr.NroGuia;
                            }
                        }
                        // Asocio la guia con el lote.
                        lote = caja.AgregarGuiaEmision(oGuia, usuario, this.AgenciaConectadaID, this.cantGuias,
                                                       nroRemito);
                        if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó.
                        {
                            // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas
                            string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                            if (hGuias.ContainsKey(oGuia.GuiaID) == false)
                            {
                                hGuias.Add(oGuia.GuiaID, guia);
                            }
                        }
                        else
                        {
                            if (nroRemito != string.Empty)
                            {
                                dsImpresion.Datos.AddDatosRow(numero_guia, nroRemito);
                            }
                        }
                        // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia.
                        if (loteant != lote && lote != 0 && loteant != 0)
                        {
                            // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020"
                            mensaje = "Lote :  " + loteant + " .  Posicion :  " + cantGuias.ToString() + " . Guia :  " +
                                      nroguiaAnt;
                            mensaje2 = "Lote :  " + lote + " .  Posicion :  001 . Guia :  " + nroGuia;
                        }

                        if (lote != 0)
                        {
                            loteant = lote;
                        }
                        else
                        {
                            if (loteant != 0)
                            {
                                lote = loteant;
                            }
                        }

                        nroguiaAnt = nroGuia.ToString();
                    }
                    else // La guia no existe en el sistema
                    {
                        //La agrego al hashtable de guias que no existen en el sistema.
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        hGuiasNR.Add(guia, guia);
                    }
                }
            } // fin for

            //Guardo las facturas
            for (int i = 0; i < cantFacturas; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS
                // string nroGuia = nroGuias[i]; // Request.Form[txt].ToString();

                if (int.TryParse(nroFacturas[i], out nroFactura))
                {
                    IFactura oFactura = FacturaFactory.GetFactura();
                    oFactura.FacturaID = nroFactura;
                    oFactura.Consultar();
                    // Lógica para recibir facturas
                    string tFactura    = oFactura.TipoGuia;
                    string nroSucursal = oFactura.NroSucursalGuia;
                    string nGuia       = oFactura.NroGuia.ToString();
                    string numero_guia = string.Empty;
                    oFactura.UsuarioIDAlta = usuario.UsuarioID;
                    //oFactura.GuiaConformadaDesdeModuloRecepcionConformadas = true;
                    ICaja caja = CajaFactory.GetCajaFactory();
                    caja.CajaID = cajaID;

                    // si la factura existe en el sistema
                    if (oFactura.FacturaID > 0)
                    {
                        // Asocio la factura con el lote.
                        lote = caja.AgregarFacturaEmision(oFactura, usuario, this.AgenciaConectadaID, this.cantGuias, "");
                        if (lote == 0) // Si es igual a cero es porque la guía ya se almacenó.
                        {
                            // La guia ya se encuentra almacenada. La agrego al hashtable de guias ya almacenadas
                            string guia = nroSucursal + "-" + nGuia + "-" + tFactura;
                            if (hGuias.ContainsKey(oFactura.FacturaID) == false)
                            {
                                hGuias.Add(oFactura.FacturaID, guia);
                            }
                        }

                        // Comparo para ir guardando los cambios de lote, para al finalizar mostrar un mensaje con la posicion y lote de la guia.
                        if (loteant != lote && lote != 0 && loteant != 0)
                        {
                            // Se muestran mensaje con el siguiente formato: "Lote 1. Posicion: 100. Guia: 9414100020"
                            mensaje = "Lote :  " + loteant + " .  Posicion :  " + cantGuias.ToString() + " . Factura :  " +
                                      nroguiaAnt;
                            mensaje2 = "Lote :  " + lote + " .  Posicion :  001 . Factura :  " + nroFactura;
                        }

                        if (lote != 0)
                        {
                            loteant = lote;
                        }
                        else
                        {
                            if (loteant != 0)
                            {
                                lote = loteant;
                            }
                        }

                        nroguiaAnt = nroFactura.ToString();
                    }
                    else // La guia no existe en el sistema
                    {
                        //La agrego al hashtable de guias que no existen en el sistema.
                        string guia = nroSucursal + "-" + nGuia + "-" + tFactura;
                        hGuiasNR.Add(guia, guia);
                    }
                }
            } // fin for
            Session["GuiaConfirmacion"] = dsImpresion;
            Session["GuiasNR"]          = hGuiasNR;
            Session["Guias"]            = hGuias;

            // Si todo ocurrió bien y además no hubo cambio de lote muestro el mensaje simple
            if (ok && lote != 0 && mensaje == "")
            {
                Session["GuiasDefectuosas"] = null;
                // LLAMO A LA PAGINA QUE TIENE LA LOGICA PARA LA IMPRESION
                string scriptString = "<script language='javascript'>\n";
                scriptString += "alert('Guias Almacenadas en Lote: " + lote + "'); \n";
                scriptString += "window.showModalDialog('ImprimirConfirmaciones.aspx','Imprimiendo Confirmacion...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                scriptString += "window.location.href = 'RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID + "';\n";
                scriptString += "</script>\n";
                Page.RegisterStartupScript("scriptOpen", scriptString);
                //Page.RegisterStartupScript("muestraMensaje",
                //                           SisPackController.GenerarJavaScripts.MostrarMensaje(
                //                               "Guias Almacenadas en Lote: " + lote,
                //                               "RecepcionEmitidas.aspx?cajaID=" + cajaID));
            }
            // Si todo ocurrió bien pero hubo cambio de lote muestro el mensaje compuesto por mensaje y mensaje2
            else if (mensaje != "")
            {
                Session["GuiasDefectuosas"] = null;
                // LLAMO A LA PAGINA QUE TIENE LA LOGICA PARA LA IMPRESION
                string scriptString = "<script language='javascript'>\n";
                scriptString += "alert('" + mensaje + "\\n" + mensaje2 + "'); \n";
                scriptString += "window.showModalDialog('ImprimirConfirmaciones.aspx','Imprimiendo Confirmacion...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                scriptString += "window.location.href = 'RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID + "';\n";
                scriptString += "</script>\n";
                Page.RegisterStartupScript("scriptOpen", scriptString);
                //Page.RegisterStartupScript("muestraMensaje",
                //                           SisPackController.GenerarJavaScripts.MostrarMensaje(
                //                               mensaje + "\\n" + mensaje2, "RecepcionEmitidas.aspx?cajaID=" + cajaID));
            }
            // Si no se almaceno ninguna guia no muestro mensaje. Redirecciono al load con los errores.
            else
            {
                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;
                Response.Redirect("RecepcionEmitidas.aspx?d=0&cajaID=" + cajaID);
            }
        }
Exemplo n.º 32
0
 public FacturasController()
 {
     Factura = new MFactura();
 }
        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);
                }
            }
        }