private void ImprimirGuiaBlanco() { DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"]; int cantCopias = 1; string nombreArchivo = ""; //SFE. Codigo barras AFIP string nombreArchivoCBAFIP = ""; Boolean EsReImpresion = false; bool esFacturaRemito = false; Boolean EsFacturaConceptoFacturacion = false; // Obtengo el texto del dorso de la guía IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso(); guiaDorso.UnidadNegocioID = UnidadNegocioID; guiaDorso.Consultar(); string textoDorso = guiaDorso.Texto; // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion //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; } bool esGuiaRendicion = false; string nroRendicionGuia = ""; if (_esFacturaConceptoFacturacion == false) { IGuia guia = GuiaFactory.GetGuia(); 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 } // Cargo los comprobantes 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) // { // // Se trata de una factura de un concepto de facturación // IFactura factura = FacturaFactory.GetFactura(); // cantCopias = factura.GetCantCuerposImprFacturaRemito(); // factura = null; // EsFacturaConceptoFacturacion = true; // } // 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 = 1; 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 = 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(((SisPacK.IGuiaImpresion)impresion).TipoGuia, ((SisPacK.IGuiaImpresion)impresion).NroSucursal, ((SisPacK.IGuiaImpresion)impresion).NroGuia); // SFE: Codigo Barras AFIP nombreArchivoCBAFIP = CrearImagenCBAFIP(((SisPacK.IGuiaImpresion)impresion).TipoGuia, ((SisPacK.IGuiaImpresion)impresion).NroSucursal, ((SisPacK.IGuiaImpresion)impresion).NumeroCAI, ((SisPacK.IGuiaImpresion)impresion).FechaVencimientoCAI); } // Termino de cargar los datos ((SisPacK.IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo + "-" + this.AgenciaConectadaID.ToString(); // SFE: Codigo Barras AFIP. ((SisPacK.IGuiaImpresion)impresion).RutaCodigoBarrasAFIP = nombreArchivoCBAFIP + "-" + this.AgenciaConectadaID.ToString(); if (EsReImpresion == false) { ((SisPacK.IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1); ((SisPacK.IGuiaImpresion)impresion).EsReimpresion = false; } else { ((SisPacK.IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3); ((SisPacK.IGuiaImpresion)impresion).EsReimpresion = true; } ((SisPacK.IGuiaImpresion)impresion).TextoDorso = textoDorso; ((SisPacK.IGuiaImpresion)impresion).EsGuiaRendicion = esGuiaRendicion; ((SisPacK.IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito; ((SisPacK.IGuiaImpresion)impresion).EsFacturaConceptoFacturacion = EsFacturaConceptoFacturacion; 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 || ComprobanteActual < ds.Datos.Rows.Count) { phImpresion.Controls.Add(lt); } } ComprobanteActual++; } }
//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(); } }