private string PrintComprobante(string EmpresaID, string CbteId, TipoDeCopia tipoDeCopia) { var sqlEngine = new FacturaElectronica.DBEngine.SQLEngine(); var oEmpresa = new Empresa(EmpresaID); var oSettings = new Settings(EmpresaID); var strResult = string.Empty; var cbteCodigo = 0; var puntoVenta = string.Empty; var nroComprobante = string.Empty; var fileName = "{0}_{1}_{2}_{3}_{4}.pdf"; //EmprCod_TipoDoc_PtoVta_NroDoc_Copia.pdf var codigoDocFileName = string.Empty; DataTable dtHeader = null; DataTable dtDetails = null; DataTable dtImpuestos = null; try { //Obtengo el comprobante de la DB. dtHeader = Common.GetComprobanteDataTable(CbteId); dtDetails = Common.GetComprobanteDetailDataTable(CbteId); dtImpuestos = Common.GetComprobanteImpuestoDataTable(CbteId); var newPdf = new PrintEngine.Documento(); if (ComprobanteEncontrado(dtHeader, dtDetails, dtImpuestos)) { cbteCodigo = Convert.ToInt32(dtHeader.Rows[0]["TipoComprobante"]); puntoVenta = Convert.ToString(dtHeader.Rows[0]["PuntoVenta"]); nroComprobante = Utils.Utils.FillWithCeros(Convert.ToString(dtHeader.Rows[0]["NroComprobanteDesde"]), 8); //Lleno el objeto del reporte, con todos los datos necesarios. newPdf.FillPdfProperties(Convert.ToString(cbteCodigo), tipoDeCopia, oEmpresa, oSettings, dtHeader); //Preparo el nombre del Archivo, con el Nro de Comprobante y el Pto. de Venta. GetTipoDocByAfipCode(cbteCodigo, out codigoDocFileName); fileName = oSettings.PathTemporales + "\\" + string.Format(fileName, EmpresaID, codigoDocFileName, puntoVenta, nroComprobante, tipoDeCopia.ToString()); //Llamo al metodo de newPdf que corresponde, segun el tipo de Doc y si es Local o Extranjero. ImprimirComprobanteCorrespondiente(cbteCodigo, fileName, dtDetails, dtImpuestos, tipoDeCopia, newPdf); } else { fileName = string.Empty; } } catch (Exception ex) { strResult = ex.Message + "FechaComprobante: " + dtHeader.Rows[0]["FechaComprobante"].ToString() + " | FechaVencimiento: " + dtHeader.Rows[0]["FechaVencimiento"].ToString(); sqlEngine.LogError(dtHeader.Rows[0]["SQLID"].ToString(), "0", "Imprimiendo Factura", "Error: " + ex.Message); } return fileName; }
private void PrintComprobante(string EmpresaID, string CbteId, TipoDeCopia tipoDeCopia, string FilePath) { var sqlEngine = new FacturaElectronica.DBEngine.SQLEngine(); var oEmpresa = new Empresa(EmpresaID); var oSettings = new Settings(EmpresaID); var strResult = string.Empty; var cbteCodigo = 0; var puntoVenta = string.Empty; var nroComprobante = string.Empty; var fileName = "{0}_{1}_{2}_{3}_{4}.pdf"; //EmprCod_TipoDoc_PtoVta_NroDoc_Copia.pdf var codigoDocFileName = string.Empty; DataTable dtHeader = null; DataTable dtDetails = null; DataTable dtImpuestos= null; try { //Obtengo el comprobante de la DB. dtHeader = Common.GetComprobanteDataTable(CbteId); dtDetails = Common.GetComprobanteDetailDataTable(CbteId); dtImpuestos = Common.GetComprobanteImpuestoDataTable(CbteId); ////ToDo: Quitar. //dtDetails.TableName = "Detalle"; //dtHeader.TableName = "Cabecera"; //dtHeader.WriteXml(FilePath + "\\dtHeader_" + CbteId.ToString() + ".xml"); //dtDetails.WriteXml(FilePath + "\\dtDetails_" + CbteId.ToString() + ".xml"); var newPdf = new PrintEngine.Documento(); if (ComprobanteEncontrado(dtHeader, dtDetails, dtImpuestos)) { cbteCodigo = Convert.ToInt32(dtHeader.Rows[0]["TipoComprobante"]); puntoVenta = Convert.ToString(dtHeader.Rows[0]["PuntoVenta"]); nroComprobante = Utils.Utils.FillWithCeros(Convert.ToString(dtHeader.Rows[0]["NroComprobanteDesde"]), 8); //Lleno el objeto del reporte, con todos los datos necesarios. newPdf.FillPdfProperties(Convert.ToString(cbteCodigo), tipoDeCopia, oEmpresa, oSettings, dtHeader); //Solo si se envio un path al WS. if (FilePath != null && FilePath != string.Empty) { //Si falta la ultima '\' al path, la agrego. if (!FilePath.EndsWith(@"\")) FilePath += @"\"; //Preparo el nombre del Archivo, con el Nro de Comprobante y el Pto. de Venta. GetTipoDocByAfipCode(cbteCodigo, out codigoDocFileName); fileName = FilePath + string.Format(fileName, EmpresaID, codigoDocFileName, puntoVenta, nroComprobante, tipoDeCopia.ToString()); } else fileName = string.Empty; //Llamo al metodo de newPdf que corresponde, segun el tipo de Doc y si es Local o Extranjero. ImprimirComprobanteCorrespondiente(cbteCodigo, fileName, dtDetails, dtImpuestos, tipoDeCopia, newPdf); } } catch (Exception ex) { strResult = ex.Message + "FechaComprobante: " + dtHeader.Rows[0]["FechaComprobante"].ToString() + " | FechaVencimiento: " + dtHeader.Rows[0]["FechaVencimiento"].ToString(); sqlEngine.LogError(dtHeader.Rows[0]["SQLID"].ToString(), "0", "Imprimiendo Factura", "Error: " + ex.Message); } }