Exemplo n.º 1
0
        public DsOrdenRetiroImprimir GetOrdenRetiroPrint(string Ordenes)
        {
            try
            {
                DsOrdenRetiroImprimir ds  = new DsOrdenRetiroImprimir();
                SqlParameter          sol = new SqlParameter("@OrdenRetiroID", Ordenes);


                Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure,
                                                  "OrdenImprimir", sol);
                return(ds);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        //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();
            }
        }