/// <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");
            }
        }
Beispiel #2
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();
            }
        }
Beispiel #3
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());
        }
Beispiel #4
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();
        }
Beispiel #5
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");
                }
            }
        }
        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)
            {
            }
        }
Beispiel #7
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");
                }
            }
        }
Beispiel #8
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);
            }
        }
        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);
                }
            }
        }
        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();
        }
Beispiel #11
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);
                }
            }
        }
        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);
            }
        }
        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                IAgencia ag = AgenciaFactory.GetAgencia();
                ag.AgenciaID = usuario.AgenciaID;
                ag.Consultar();

                int    NroDesde = Convert.ToInt32(txtFechaDesde.Text);
                int    NroHasta = Convert.ToInt32(txtFechaHasta.Text);
                string tipoguia = ddlTipoGuia.SelectedValue;

                int cantidad = NroHasta - NroDesde;


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

                if (txtCantidad.Text == "")
                {
                    throw new Exception("Falta ingresar la cantidad de hojas a imprimir.");
                }

                if (txtFechaDesde.Text == "" && txtFechaHasta.Text == "")
                {
                    throw new Exception("Falta ingresar Rango");
                }

                if (txtFechaDesde.Text != "" && txtFechaHasta.Text == "")
                {
                    throw new Exception("Falta ingresar ");
                }

                if (txtFechaDesde.Text == "" && txtFechaHasta.Text != "")
                {
                    throw new Exception("Falta ingresar Rango");
                }

                string nrosucursal = ag.SucursalDGI.Trim();

                if (ddlEmpresa.SelectedValue == "Cargas")
                {
                    string SucursalFinal = ag.SucursalDGI.Trim().Substring(1, 3);
                    nrosucursal = 5 + SucursalFinal;
                    //5
                }
                else if (ddlEmpresa.SelectedValue == "Express")
                {
                    nrosucursal = ag.SucursalDGI.Trim();
                    //4
                }
                else
                {
                    nrosucursal = "";
                }
                IGuia    oGuia    = GuiaFactory.GetGuia();
                IFactura oFactura = FacturaFactory.GetFactura();
                DsGuias  ds       = new DsGuias();

                IAgencia agencia = null;

                ds = oGuia.GetGuiasByFecha(NroDesde, NroHasta, nrosucursal, 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();

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

                        IAdministrarGuias oAdminGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                        oAdminGuia.GuiaID = Convert.ToInt32(guiaid.Trim());
                        drGuia            = (DsGuiaFacturaImpresion.DatosRow)(oAdminGuia.GetDataSetImpresionByGuiaID()).Datos.Rows[0];

                        drGuia.CantidadCopiasImprimir = 1;
                        dsFacturaImpresion.Datos.ImportRow(drGuia);
                        oAdminGuia = null;


                        Session["DatosGuia"] = dsFacturaImpresion;
                        dsFacturaImpresion   = (DsGuiaFacturaImpresion)Session["DatosGuia"];
                    }
                }
                string paginaImpresion = agencia.GetPaginaImpresion(3, "Andesmar");

                if (paginaImpresion.Trim().Equals(""))
                {
                    throw new Exception("No se puede reimprimir la guía ingresada. La página de impresión no está definida.");
                }
                agencia = null;
                /*****************************/

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

                Page.RegisterStartupScript("scriptImpresion", scriptString);

                oGuia              = null;
                oFactura           = null;
                dsFacturaImpresion = null;
                ds = null;
            }
            catch (Exception ex)
            {
                ((ErrorWeb)(this.phErrores.Controls[0])).setMensaje(TraducirTexto(ex.Message));
            }
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"];
            int     cantCopias        = 0;
            string  nombreArchivo     = "";
            Boolean EsReImpresion     = false;
            bool    esFacturaRemito   = false;

            // Reviso si se paso la cantidad de copias a imprimir o hay que obtenerlo de los parametros
            if (Request.QueryString["CantCopias"] == "" || Request.QueryString["CantCopias"] == null)
            {
                /* VSA 01-09-2009 Permitir parametrizar la cantidad de copias a imprimir para la guía */
                if (((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).IsEsFacturaRemitoNull() || ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).EsFacturaRemito == false)
                {
                    // Se trata de una guía
                    IGuia cantAImprGuia = GuiaFactory.GetGuia();
                    cantAImprGuia.GuiaID          = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).GuiaID;
                    cantAImprGuia.UnidadNegocioID = UnidadNegocioID;
                    cantCopias      = cantAImprGuia.GetCantCuerposImprGuia();
                    cantAImprGuia   = null;
                    esFacturaRemito = false;
                }
                else
                {
                    // Se trata de una factura
                    IFactura factura = FacturaFactory.GetFactura();
                    cantCopias      = factura.GetCantCuerposImprFacturaRemito();
                    factura         = null;
                    esFacturaRemito = true;
                }
            }
            else
            {
                // Si se paso la cantidad de copias a imprimir
                cantCopias    = Utiles.Validaciones.obtieneEntero(Request.QueryString["CantCopias"]);
                EsReImpresion = true;
            }

            // Obtengo el texto del dorso de la guía
            IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso();

            guiaDorso.UnidadNegocioID = UnidadNegocioID;
            guiaDorso.Consultar();
            string textoDorso = guiaDorso.Texto;

            // Cargo las copias
            for (int i = 0; i < cantCopias; i++)
            {
                System.Web.UI.Control impresion = Page.LoadControl("uc/ImprimirGuiaPre.ascx");
                LlenarControl(ds, impresion, nombreArchivo);
                // cargo el control de impresión...
                impresion.ID = "ImpreBlanco" + i.ToString();

                // Creo la imagen del CB
                if (i == 0)
                {
                    nombreArchivo = CrearImagenCB(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal,
                                                  ((IGuiaImpresion)impresion).NroGuia);
                }
                // Termino de cargar los datos
                ((IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo;
                if (EsReImpresion == false)
                {
                    ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1);
                    ((IGuiaImpresion)impresion).EsReimpresion         = false;
                }
                else
                {
                    ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3);
                    ((IGuiaImpresion)impresion).EsReimpresion         = true;
                }
                ((IGuiaImpresion)impresion).TextoDorso      = textoDorso;
                ((IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito;;
                phImpresion.Controls.Add(impresion);

                // hago un salto de página
                LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                // no hace salto de página para la última hoja...
                if (i + 1 < cantCopias)
                {
                    phImpresion.Controls.Add(lt);
                }
            }
        }
Beispiel #15
0
        private void butBuscar_Click(object sender, System.EventArgs e)
        {
            try
            {
                DsFactura ds;

                if (this.radioTipo.Checked)
                {
                    ds = BuscarPorTipo();
                }
                else
                {
                    ds = BuscarPorCodigo();
                }

                if (ds != null)
                {
                    this.butBuscar.Enabled = true;

                    IFactura             factura = FacturaFactory.GetFactura();
                    DsFactura.DatosRow[] drLista = (DsFactura.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID);
                    int total = drLista.Length;

                    if (total > 0)
                    {
                        DsFactura.DatosRow dr = drLista[0];
                        if (dr.EstadoFacturaID == (int)NegociosSisPackInterface.SisPack.EstadoFactura.Anulada)
                        {
                            /* La factura ya ha sido anulada */
                            Page.RegisterStartupScript("NoAnular", GenerarJavaScripts.MostrarMensaje("La factura se encuentra anulada."));
                            this.butConfirmar.Enabled = false;
                            return;
                        }

                        if (dr.AgenciaID != 0)
                        {
                            IAgencia agencia = AgenciaFactory.GetAgencia();
                            agencia.AgenciaID = dr.AgenciaID;
                            if (agencia.Consultar())
                            {
                                this.txtAgenciaID.Text = agencia.AgenciaID.ToString();
                                this.txtAgencia.Text   = agencia.RazonSocial.Trim();
                            }
                            agencia = null;
                        }

                        // Permitir anulacion de facturas de conceptos facturables.
                        this.txtGuiaID.Text                 = dr.IsGuiaIDNull() ? "" : dr.GuiaID.ToString();
                        this.txtFecha.Text                  = dr.FechaEmision.ToShortDateString().Trim();
                        this.txtImporte.Text                = Utiles.Formatos.Importe(dr.ImporteNeto + dr.ImporteIVA);
                        this.txtTipoImpresionGuiaID.Text    = dr.IsTipoImpresionGuiaIDNull()? "0": dr.TipoImpresionGuiaID.ToString().Trim();
                        this.txtFacturaID.Text              = dr.FacturaID.ToString().Trim();
                        this.txtClasificacionFactura.Text   = dr.ClasificacionFactura.Trim();
                        this.txtClasificacionFacturaID.Text = dr.ClasificacionFacturaID.ToString().Trim();

                        this.butConfirmar.Enabled = true;
                        this.butBuscar.Enabled    = false;
                        this.radioTipo.Enabled    = false;
                        this.radioCodigo.Enabled  = false;
                        dr = null;
                    }
                    else
                    {
                        string script = "<script language='javascript'>\n";
                        script += "alert('No se encontro la factura.');\n";
                        script += "</script>";

                        Page.RegisterStartupScript("scriptError", script);
                    }
                    factura = null;
                    drLista = null;
                }
            }
            catch (Exception ex)
            {
                butBuscar.Enabled = false;
                string mensaje = ex.Message;
                try
                {
                    mensaje = this.TraducirTexto(ex.Message);
                    if (mensaje == "" || mensaje == null)
                    {
                        mensaje = ex.Message;
                    }
                }
                catch (Exception)
                {
                    mensaje = ex.Message;
                }
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
            }
        }
Beispiel #16
0
        private bool Anular()
        {
            try
            {
                IAgencia oAgencia = AgenciaFactory.GetAgencia();
                oAgencia.AgenciaID = this.AgenciaConectadaID;

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


                /* Verónica: La anulación la debe realizar la agencia de origen */
                /*SFE: 12/04/2011. Anulacion de Facturas a Terminal desde Administracion. Se agrega la condicion de controlar si la agencia Conectada es Administracion*/
                if (this.AgenciaConectadaID == Convert.ToInt32(this.txtAgenciaID.Text) || this.AgenciaConectadaID == agAdm)
                {
                    bool bOk = false;

                    IFactura factura = FacturaFactory.GetFactura();
                    factura.FacturaID              = Convert.ToInt32(this.txtFacturaID.Text.Trim());
                    factura.TipoGuia               = this.txtTipoGuia.Text.Trim();
                    factura.TipoImpresionGuiaID    = Convert.ToInt32(this.txtTipoImpresionGuiaID.Text.Trim());
                    factura.AgenciaID              = Convert.ToInt32(this.txtAgenciaID.Text.Trim());
                    factura.ClasificacionFacturaID = Convert.ToInt32(this.txtClasificacionFacturaID.Text.Trim());
                    factura.GuiaID                      = Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim());
                    factura.FechaEmision                = Convert.ToDateTime(Utiles.Validaciones.obtieneFecha(txtFecha.Text));
                    factura.ObservacionIDGuia           = Convert.ToInt32(Observacion1.ObservacionID);
                    factura.UnidadNegocioID             = UnidadNegocioID;
                    factura.EliminarEstadosConformacion = true;


                    bOk = factura.Anular(this.txtObservaciones.Text, this.usuario, this.AgenciaConectadaID);

                    //esto es porque si se anula la factura y esta factura esta asociada a una guia que es subia a una HRR
                    //se conforma y se agrega una observacion en la HRR
                    if (factura.CambiarHRRFactAnulada(Convert.ToInt32(Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim()))) == 1)
                    {
                        factura.CambiaEstadoHRRFactAnulada(Convert.ToInt32(Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text.Trim())));
                    }

                    //////////**********************************************************************************************************************//////////
                    DsFactura ds;

                    if (this.radioTipo.Checked)
                    {
                        ds = BuscarPorTipo();
                    }
                    else
                    {
                        ds = BuscarPorCodigo();
                    }

                    IClienteEventual ev = ClienteEventualFactory.GetClienteEventual();
                    if (ds.Tables[0].Rows[0]["ClienteEventualID"] != null)
                    {
                        ev.ClienteEventualID = int.Parse(ds.Tables[0].Rows[0]["ClienteEventualID"].ToString());
                        ev.Consultar();
                    }

                    if (ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "A" || ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "B")
                    {
                        try
                        {
                            // La validación del número de guía debe realizarse sólo si el modo de impresión no es "Autoimpresor"
                            IAgencia agencia = AgenciaFactory.GetAgencia();
                            agencia.AgenciaID = this.AgenciaConectadaID;
                            agencia.Consultar();

                            //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();

                            //    ws.Inicializar(long.Parse(CUITExpress), NombreCertificadoExpress, Ambiente);
                            //    //ws.Inicializar(long.Parse(CUITCargas), NombreCertificadoCargas, Ambiente);

                            //    // store it in Session for next usage
                            //    Session["WSFactElect"] = ws;
                            //}
                            string referencia = string.Empty;
                            try
                            {
                                //string sError = string.Empty;
                                //DateTime sVencimientoCae = new DateTime();
                                //Detalles detalle = new Detalles();
                                int    puntoVta        = int.Parse(ds.Tables[0].Rows[0]["NroSucursalGuia"].ToString());
                                int    tipoCbe         = 6;
                                int    tipoDocumento   = 96;
                                long   numeroDocumento = 30414121;
                                int    tipoConcepto    = 2;
                                double totalConcepto   = 0;
                                double neto            = double.Parse(ds.Tables[0].Rows[0]["ImporteNeto"].ToString());
                                double exento          = 0;
                                double totalTributos   = 0;
                                double totalIva        = double.Parse(ds.Tables[0].Rows[0]["ImporteIVA"].ToString());
                                double total           = neto + totalIva;
                                int    tipoIva         = 5;
                                long   nroFactura      = 0;

                                if (ds.Tables[0].Rows[0]["TipoGuia"].ToString() == "A")
                                {
                                    tipoCbe         = 3; //Nota de Crédito A
                                    numeroDocumento = long.Parse(ev.NroCuit);

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

                                if (totalIva == 0)
                                {
                                    tipoIva = 3; //Iva 0
                                }
                                IAFIP  afip    = AFIPFactory.GetAFIP();
                                string fechaFE = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00");
                                //detalle.Ivas.AddIvasRow(tipoIva, neto, totalIva);
                                string NumeroCAE = string.Empty;

                                if (ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString() == "1")
                                {
                                    //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1;

                                    //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                    //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, 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))
                                        {
                                            NumeroCAE = afip.NumeroCAE;
                                        }
                                    }
                                }
                                else
                                {
                                    //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1;

                                    //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                    //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, 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 (ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString() == "1")
                                    {
                                        //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITExpress)) + 1;

                                        //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                        //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, 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))
                                            {
                                                NumeroCAE = afip.NumeroCAE;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        //nroFactura = ws.ObtieneUltimoNroCbte(puntoVta, tipoCbe, long.Parse(CUITCargas)) + 1;

                                        //NumeroCAE = ws.ObtenerCAE(1, 1, puntoVta, tipoCbe, tipoConcepto, tipoDocumento, numeroDocumento, nroFactura, nroFactura, fechaFE,
                                        //                                   total, totalConcepto, neto, exento, totalTributos, totalIva, fechaFE, fechaFE, fechaFE, "PES", 1, detalle, ref sError, ref sVencimientoCae, long.Parse(CUITCargas));
                                    }
                                }
                                else if (afip.errorCAE != string.Empty)
                                {
                                    using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogFactura.log"))
                                    {
                                        archivo.WriteLine("AnularFactura.aspx.cs linea 753-------------------------------------------------------------------------------------");
                                        archivo.WriteLine("--------------------------------------------------------------------------------------");
                                    }
                                }

                                if (NumeroCAE != null && NumeroCAE != string.Empty)
                                {
                                    ComprobanteElectronico ce = new ComprobanteElectronico();
                                    ce.PuntoVenta          = puntoVta.ToString();
                                    ce.TipoComprobanteFEID = tipoCbe;
                                    ce.TipoConceptoFEID    = tipoConcepto;
                                    ce.TipoDocumentoFEID   = tipoDocumento;
                                    ce.NumeroDocumento     = numeroDocumento.ToString();
                                    ce.NumeroFactura       = nroFactura.ToString();
                                    ce.FechaFE             = DateTime.Now;
                                    ce.Total                = total;
                                    ce.TotalConcepto        = totalConcepto;
                                    ce.Neto                 = neto;
                                    ce.Exento               = exento;
                                    ce.TotalTributos        = totalTributos;
                                    ce.TotalIVA             = totalIva;
                                    ce.FechaVencimientoCae  = afip.fechaCAE;
                                    ce.NumeroCae            = NumeroCAE;
                                    ce.EmpresaFacturacionID = int.Parse(ds.Tables[0].Rows[0]["EmpresaFacturacionID"].ToString());
                                    IoC.GetObjectDominio <IComprobanteElectronicoDominio>().Guardar(ce);
                                }

                                //datet.FechaCae = sVencimientoCae;
                                //admGuiaO.FechaVencimientoCAI = sVencimientoCae;
                                //admGuiaO.NroGuia = int.Parse(nroFactura.ToString());
                            }
                            catch (Exception ex)
                            {
                                using (System.IO.StreamWriter archivo = System.IO.File.AppendText(@"C:\log\LogFactura.log"))
                                {
                                    archivo.WriteLine("AnularFactura.aspx.cs linea 786-------------------------------------------------------------------------------------");
                                    archivo.WriteLine(ex.Message);
                                    archivo.WriteLine("--------------------------------------------------------------------------------------");
                                }
                                ex = new Exception("Error al crear la nota de credito para asociar a la factura. " + ex.Message);
                                throw ex;
                            }

                            //Session["AdmGuia"] = admGuiaO;

                            //this.txtNroGuia.Text = admGuiaO.NroGuia.ToString();
                            // GuardarFactura(agencia.TipoImpresionGuiaId, (int)NegociosSisPackInterface.SisPack.TipoValidacionEmision.CAE);
                        }
                        catch (Exception ex)
                        {
                            oAgencia = null;
                            ex       = new Exception("Error al crear la nota de credito para asociar a la factura. No se puede conectar con el WS de la AFIP" + ex.Message);
                            throw ex;
                        }
                    }

                    /////////************************************************************************************************************************//////
                    factura  = null;
                    oAgencia = null;
                    return(bOk);
                }
                else
                {
                    oAgencia = null;
                    Exception ex = new Exception("Solo la agencia emisora puede anular la factura.");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #17
0
        private DsFactura BuscarPorTipo()
        {
            IFactura factura = FacturaFactory.GetFactura();

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

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

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

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

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

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

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

                DsFactura dsFactura = factura.GetFacturaONE();

                this.txtTipoGuia.Text = factura.TipoGuia;

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

            try
            {
                BaseValidator bv;

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

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

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

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

                    DsFactura dsFactura = factura.GetFacturaONE();

                    this.txtTipoGuia.Text = factura.TipoGuia;
                    return(dsFactura);
                }
                else
                {
                    throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Errores.Invalidos.CodigoBarrasLongitud");
            }
            finally
            {
                factura = null;
            }
        }
Beispiel #19
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");
                }
            }
        }
        //DsOrdenRetiroImprimir.DatosRow dsoRdenes;
        #region Page_Load
        private void Page_Load(object sender, System.EventArgs e)
        {
            //TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput2.log", "myListener");
            //myListener.WriteLine("Inicia Load de Imprimirguiablanco.aspx.");

            DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"];
            //DsOrdenRetiroImprimir dsoRdenes = (DsOrdenRetiroImprimir)Session["imprimirOrden"];

            DsHojaRutaRepartidor dsoRdenes = (DsHojaRutaRepartidor)Session["imprimirOrden"];

            DsOrdenRetiroImprimir.DatosRow dsOrdenR;
            int    cantCopias    = 0;
            string nombreArchivo = "";
            //SFE. Codigo barras AFIP
            string  nombreArchivoCBAFIP          = "";
            Boolean EsReImpresion                = false;
            bool    esFacturaRemito              = false;
            Boolean EsFacturaConceptoFacturacion = false;
            string  textoDorso      = "";
            bool    esGuiaRendicion = false;
            string  tipoGuia        = "";

            // Obtengo el texto del dorso de la guía
            //IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso();
            //guiaDorso.UnidadNegocioID = UnidadNegocioID;
            //guiaDorso.Consultar();
            //string textoDorso = guiaDorso.Texto;

            // Obtengo el texto del dorso de la guía por la empresa de facturacion
            IGuia guia = GuiaFactory.GetGuia();

            if (ds != null)
            {
                double pesototal50  = ds.Datos[0].PesoTotal != null ? ds.Datos[0].PesoTotal : 0; // ds.Datos[0].;
                double pesoButlos50 = ds.Datos[0].PesoBulto != null ? ds.Datos[0].PesoBulto : 0;
                string canBul       = ds.Datos[0].IsCantidadBultosTotalNull()?"0": ds.Datos[0].CantidadBultosTotal.ToString();
                string remito       = ds.Datos[0].IsRemitoClienteNroNull() ? "0" : ds.Datos[0].RemitoClienteNro.ToString();
                string DomicilioRem = ds.Datos[0].IsDireccionRemitenteNull()?"N/A": ds.Datos[0].DireccionRemitente.ToString();
                string remi         = ds.Datos[0].IsNombreRemitenteNull() ? "" : ds.Datos[0].NombreRemitente.ToString();
                if (remi == "")
                {
                    remi = ds.Datos[0].IsNombreEmpresaRemitenteNull() ? "" : ds.Datos[0].NombreEmpresaRemitente.ToString();
                }
                string doc = ds.Datos[0].IsCUITEmpresaNull() ? "" : ds.Datos[0].CUITEmpresa.ToString();
                if (pesototal50 > 50 || pesoButlos50 > 50)//mayor a 50
                {
                    System.Web.UI.Control impresion;
                    impresion = Page.LoadControl("uc/ImprimirDeclaracionJuradaEV.ascx");

                    GuiaDominio gd   = new GuiaDominio();
                    string      text = gd.getTextoDorso(0).ToString();
                    textoDorso = text;

                    /* inicio declaracion jurada*/
                    //string existeDJ = gd.GetDeclaracionJurada(ds.Datos[0].GuiaID).ToString();

                    //if (existeDJ == "")//es para que no re imprima la declaracion jurada que se emitio
                    //    //FQuiroga 26/11
                    //{
                    //    //declaracion jurada
                    //    if (ds.Datos[0].EsFleteCobrar == true && remito == "0")
                    //    {//si es un fpd y pesa mas de 50 y no tiene remito
                    //     //tiene que gaurda el numero de declaracion jurada

                    //        string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString();
                    //        LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ);
                    //        phImpresion.Controls.Add(impresion);

                    //        // hago un salto de página
                    //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    //        // no hace salto de página para la última hoja...
                    //        phImpresion.Controls.Add(lt);

                    //    }
                    //    if ((ds.Datos[0].TipoGuia == "B" || ds.Datos[0].TipoGuia == "A") && remito == "0")
                    //    {//eventuales sin remito
                    //        string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString();                                                                 //tiene que guardar declaracion
                    //        LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ);
                    //        phImpresion.Controls.Add(impresion);

                    //        // hago un salto de página
                    //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    //        // no hace salto de página para la última hoja...
                    //        phImpresion.Controls.Add(lt);
                    //    }
                    //}
                    /* fin declaracion jurada*/
                }
                else
                {
                    //34 y35 bultos
                    IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion();
                    try
                    {
                        empresa.EmpresaFacturacionID = ds.Datos[0].EmpresaFacturacionID;
                    }
                    catch (Exception)
                    {
                        throw new Exception("No se configuró la empresa de facturacion para la agencia emisora de la guia.");
                    }
                    empresa.Consultar();
                    textoDorso = empresa.Texto;
                }

                // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
                // IGuia guia = GuiaFactory.GetGuia();
                guia.GuiaID = ds.Datos[0].GuiaID;
                guia.ConsultarCompletoByGuiaID();
                //if (ds.Datos.Rows[0].IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion

                //if (|| (ds.Datos.Rows[0].IsNull("EsFacturaConceptoFacturacion") == false && Convert.ToBoolean( ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]
                Boolean _esFacturaConceptoFacturacion = false;

                try
                {
                    _esFacturaConceptoFacturacion = Convert.ToBoolean(ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]);
                }
                catch
                {
                    _esFacturaConceptoFacturacion = false;
                }

                esGuiaRendicion = false;
                string nroRendicionGuia = "";

                if (_esFacturaConceptoFacturacion == false)
                {
                    guia.GuiaID = ds.Datos[0].GuiaID;
                    guia.ConsultarCompletoByGuiaID();
                    if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion)
                    {
                        esGuiaRendicion  = true;
                        nroRendicionGuia = guia.GetNroRendicionGuia();
                        if (nroRendicionGuia != "")
                        {
                            nroRendicionGuia = "Nro de Rendición: " + nroRendicionGuia;
                        }

                        ds.Datos[0].Observaciones = nroRendicionGuia;
                    }
                    // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
                }
            }
            if (dsoRdenes != null)
            {
                IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion();
                empresa.EmpresaFacturacionID = 1;// Convert.ToInt32(dsoRdenes.Ordenes.Rows.Datos[0].EmpresaFacturacion.ToString());
                empresa.Consultar();
                textoDorso = empresa.Texto;
                //cargo las ordenes de retiro
                DsOrdenRetiroImprimir dsOrdenes2 = new DsOrdenRetiroImprimir();
                IOrdenRetiro          ordenes    = OrdenRetiroFactory.GetOrdenRetiroFactory();
                string todas = "";
                foreach (DsHojaRutaRepartidor.OrdenesRow dsss in dsoRdenes.Ordenes.Rows)
                {
                    if (todas == "")
                    {
                        todas = dsss.OrdenRetiroID;
                    }
                    else
                    {
                        todas = todas + "," + dsss.OrdenRetiroID;
                    }
                }
                dsOrdenes2 = ordenes.GetOrdenRetiroPrint(todas);
                foreach (DsOrdenRetiroImprimir.DatosRow drOrd in dsOrdenes2.Datos)
                {
                    System.Web.UI.Control impresion;
                    impresion = Page.LoadControl("uc/ImprimirOrdenRetiro.ascx");
                    LlenarControlOrdenes(drOrd, impresion, nombreArchivo);

                    phImpresion.Controls.Add(impresion);

                    // hago un salto de página
                    LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    // no hace salto de página para la última hoja...
                    phImpresion.Controls.Add(lt);
                }
            }

            //if (dsConcepto != null) {
            //    try
            //    {
            //        _esFacturaConceptoFacturacion = Convert.ToBoolean(dsoRdenes.Datos.Rows[0]["EsFacturaConceptoFacturacion"]);
            //    }
            //    catch
            //    {
            //        _esFacturaConceptoFacturacion = false;
            //    }

            //    foreach (DsGuiaFacturaImpresion.DatosRow drCon in dsConcepto.Datos.Rows)
            //    {
            //        System.Web.UI.Control impresion;
            //        impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx");

            //        LlenarControl(drCon, impresion, nombreArchivo);

            //        phImpresion.Controls.Add(impresion);

            //        // hago un salto de página
            //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
            //        // no hace salto de página para la última hoja...
            //        phImpresion.Controls.Add(lt);

            //        if (drCon.IsEsFacturaConceptoFacturacionNull() == false && drCon.EsFacturaConceptoFacturacion)
            //        {
            //            EsFacturaConceptoFacturacion = true;
            //            // Se trata de una factura de un concepto de facturación.
            //            // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion.
            //            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
            //            concepto.GetOne(148);
            //            if (concepto.CantCuerposImprGuia > 0)
            //            {
            //                cantCopias = concepto.CantCuerposImprGuia ?? 0;
            //            }
            //            else
            //            {
            //                IFactura factura = FacturaFactory.GetFactura();
            //                cantCopias = factura.GetCantCuerposImprFacturaRemito();
            //                factura = null;
            //            }
            //        }
            //    }

            //}
            // }Cargo los comprobantes
            if (ds != null)
            {
                int ComprobanteActual = 1;
                foreach (DsGuiaFacturaImpresion.DatosRow dr in ds.Datos.Rows)
                {
                    // Reviso si se paso la cantidad de copias a imprimir o hay que obtenerlo de los parametros
                    if (Request.QueryString["CantCopias"] == "" || Request.QueryString["CantCopias"] == null)
                    {
                        // No se paso la cantidad de copias a imprimir.
                        // Obtengo de los parámetros generales cuántas copias del cuerpo se deben imprimir en la agencia origen

                        /* VSA 01-09-2009 Permitir parametrizar la cantidad de copias a imprimir para la guía */
                        // Reviso si se trata de una guía o factura
                        if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            EsFacturaConceptoFacturacion = true;
                            // Se trata de una factura de un concepto de facturación.
                            // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion.
                            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                            concepto.GetOne(dr.ConceptoFacturacionID);
                            if (concepto.CantCuerposImprGuia > 0)
                            {
                                cantCopias = concepto.CantCuerposImprGuia ?? 0;
                            }
                            else
                            {
                                IFactura factura = FacturaFactory.GetFactura();
                                cantCopias = factura.GetCantCuerposImprFacturaRemito();
                                factura    = null;
                            }
                        }
                        else if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false)
                        {
                            // Se trata de una guía
                            // Verifico si en el campo "CantidadCopiasImprimir" viene asignada la cantidad de copias, si es asi, es porque se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo
                            // Si no se debe buscar en la base la cantidad de copias a imprimir.
                            if (((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).IsCantidadCopiasImprimirNull())
                            {
                                // Debo buscar en la base la cantidad de copias a imprimir.
                                IGuia cantAImprGuia = GuiaFactory.GetGuia();
                                cantAImprGuia.GuiaID          = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).GuiaID;
                                cantAImprGuia.UnidadNegocioID = UnidadNegocioID;
                                cantCopias    = cantAImprGuia.GetCantCuerposImprGuia();
                                cantAImprGuia = null;
                            }
                            else
                            {
                                //Viene asignada la cantidad de copias, se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo
                                try
                                {
                                    cantCopias = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).CantidadCopiasImprimir;
                                }
                                catch { cantCopias = 1; }
                            }
                            esFacturaRemito = false;
                        }
                        else
                        {
                            // Se trata de una factura
                            IFactura factura = FacturaFactory.GetFactura();
                            cantCopias      = factura.GetCantCuerposImprFacturaRemito();
                            factura         = null;
                            esFacturaRemito = true;
                        }
                    }
                    else
                    {
                        // Si se paso la cantidad de copias a imprimir
                        cantCopias    = Utiles.Validaciones.obtieneEntero(Request.QueryString["CantCopias"]);
                        EsReImpresion = true;

                        // Reviso si se trata de una guía o factura
                        if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false)
                        {
                            esFacturaRemito = false;
                        }
                        else if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            // Se trata de una factura de un concepto de facturación
                            EsFacturaConceptoFacturacion = true;
                        }
                        else
                        {
                            esFacturaRemito = true;
                        }
                        if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            // Se trata de una factura de un concepto de facturación
                            EsFacturaConceptoFacturacion = true;
                        }
                    }

                    //}
                    // Cargo las copias del comprobante que se esta procesando
                    for (int i = 0; i < cantCopias; i++)
                    {
                        System.Web.UI.Control impresion;
                        if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica)
                        {
                            impresion = Page.LoadControl("uc/ImprimirGuiaUnidadLogistica.ascx");
                        }
                        else
                        {
                            impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx");
                        }
                        LlenarControl(dr, impresion, nombreArchivo);
                        // cargo el control de impresión...
                        impresion.ID = "ImpreBlanco" + i.ToString();

                        // Creo la imagen del CB
                        if (i == 0)
                        {
                            nombreArchivo = CrearImagenCB(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NroGuia);

                            // SFE: Codigo Barras AFIP
                            nombreArchivoCBAFIP = CrearImagenCBAFIP(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NumeroCAI, ((IGuiaImpresion)impresion).FechaVencimientoCAI);
                        }
                        // Termino de cargar los datos
                        ((IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo + "-" + this.AgenciaConectadaID.ToString();

                        // SFE: Codigo Barras AFIP.
                        ((IGuiaImpresion)impresion).RutaCodigoBarrasAFIP = nombreArchivoCBAFIP + "-" + this.AgenciaConectadaID.ToString();

                        if (EsReImpresion == false)
                        {
                            ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1, EsFacturaConceptoFacturacion);
                            ((IGuiaImpresion)impresion).EsReimpresion         = false;
                        }
                        else
                        {
                            ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3, EsFacturaConceptoFacturacion);
                            ((IGuiaImpresion)impresion).EsReimpresion         = true;
                        }
                        ((IGuiaImpresion)impresion).TextoDorso      = textoDorso;
                        ((IGuiaImpresion)impresion).EsGuiaRendicion = esGuiaRendicion;
                        ((IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito;
                        ((IGuiaImpresion)impresion).EsFacturaConceptoFacturacion = EsFacturaConceptoFacturacion;
                        phImpresion.Controls.Add(impresion);

                        // hago un salto de página
                        //tipoGuia = dr.IsTipoGuiaNull() ? "" : dr.TipoGuia;
                        //System.Web.HttpBrowserCapabilities browser = Request.Browser;
                        //string name = browser.Browser;
                        //float version = (float)(browser.MajorVersion + browser.MinorVersion);
                        //if ((name != "Chrome" && version >= 8) && (name != "Firefox" && version >= 8) && (name == "IE" && version > 8) && (tipoGuia == "R"))
                        //{
                        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                        // no hace salto de página para la última hoja...
                        if (i + 1 < cantCopias || ComprobanteActual < ds.Datos.Rows.Count)
                        {
                            phImpresion.Controls.Add(lt);
                        }
                        //}
                    }
                    ComprobanteActual++;
                }

                //myListener.WriteLine("Finaliza Load de Imprimirguiablanco.aspx.");
                //myListener.Flush();
            }
        }