diff --git a/Acumuladores/CatFoliosGarantia.aspx b/Acumuladores/CatFoliosGarantia.aspx index 59790d940..a6b8a70b9 100644 --- a/Acumuladores/CatFoliosGarantia.aspx +++ b/Acumuladores/CatFoliosGarantia.aspx @@ -82,7 +82,7 @@ + + + +   + + @@ -195,7 +201,18 @@ + +
+ +
+ + + + + +
+
  diff --git a/Acumuladores/CatFoliosGarantia.aspx.vb b/Acumuladores/CatFoliosGarantia.aspx.vb index a22e0cabb..ef5209ca0 100644 --- a/Acumuladores/CatFoliosGarantia.aspx.vb +++ b/Acumuladores/CatFoliosGarantia.aspx.vb @@ -37,6 +37,7 @@ Partial Class Acumuladores_CatFoliosGarantia Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then + CargaSubProyectos() CargadatosGvFolioGarantia() End If @@ -45,6 +46,12 @@ Partial Class Acumuladores_CatFoliosGarantia #Region "Folios Garantía" + Private Sub CargaSubProyectos() + DdlSubProyectos.Items.Clear() + DdlSubProyectos.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) + DdlSubProyectos.DataBind() + DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub Private Sub CargadatosGvFolioGarantia() @@ -88,6 +95,7 @@ Partial Class Acumuladores_CatFoliosGarantia TxtFolioGarantia.Text = "" ChkEstatus.Checked = True + DdlSubProyectos.SelectedValueExist("-1") Actualizar = False UpGral.Update() @@ -108,7 +116,7 @@ Partial Class Acumuladores_CatFoliosGarantia If Not Actualizar Then - If ObjAcum.FoliosGarantiaAdd(TxtFolioGarantia.Text, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + If ObjAcum.FoliosGarantiaAdd(TxtFolioGarantia.Text, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlSubProyectos.SelectedValue.ToEntero) Then TxtFolioGarantia.Text = "" ChkEstatus.Checked = True @@ -127,7 +135,7 @@ Partial Class Acumuladores_CatFoliosGarantia Alert("Ocurrió un error al guardar el Folio de Garantía", TipoMensaje.MsgError) End If Else - If ObjAcum.FoliosGarantiaUpdate(CveFolioGarantia, TxtFolioGarantia.Text, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario) Then + If ObjAcum.FoliosGarantiaUpdate(CveFolioGarantia, TxtFolioGarantia.Text, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario, DdlSubProyectos.SelectedValue.ToEntero) Then TxtFolioGarantia.Text = "" ChkEstatus.Checked = True @@ -195,10 +203,11 @@ Partial Class Acumuladores_CatFoliosGarantia 'TxtCompra.Text = GvRow.DataKey("Compra").ToDecimal.ToString("###,###,###.00") 'TxtPuntos.Text = GvRow.DataKey("Puntos").ToDecimal.ToString("###,###,###.00") - 'DdlPS.Items.Clear() - 'DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) - 'DdlPS.DataBind() - 'DdlPS.SelectedValueExist(GvRow.DataKey("CvePSCargo").ToEntero) + DdlSubProyectos.Items.Clear() + DdlSubProyectos.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) + DdlSubProyectos.DataBind() + DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1")) + DdlSubProyectos.SelectedValueExist(GvRow.DataKey("CveSubProyecto").ToEntero) BtnAgregarFolioGarantiaModal.Text = "Actualizar" diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb index 1d8d3ddcc..3762fb841 100644 --- a/App_Code/ClsAcumuladores.vb +++ b/App_Code/ClsAcumuladores.vb @@ -480,7 +480,7 @@ Public Class ClsAcumuladores Return Retorno End Function - Public Function FoliosGarantiaAdd(FolioGarantia As String, Estatus As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Public Function FoliosGarantiaAdd(FolioGarantia As String, Estatus As Integer, CveUsuario As Integer, CveEmpresa As Integer, CveSubProyecto As Integer) As Boolean Dim Retorno As Boolean = False 'Data = New DataTable @@ -492,6 +492,7 @@ Public Class ClsAcumuladores .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto End With @@ -507,7 +508,7 @@ Public Class ClsAcumuladores Return Retorno End Function - Public Function FoliosGarantiaUpdate(CveFolioGarantia As Integer, FolioGarantia As String, Estatus As Integer, CveUsuario As Integer) As Boolean + Public Function FoliosGarantiaUpdate(CveFolioGarantia As Integer, FolioGarantia As String, Estatus As Integer, CveUsuario As Integer, CveSubProyecto As Integer) As Boolean Dim Retorno As Boolean = False 'Data = New DataTable @@ -519,6 +520,7 @@ Public Class ClsAcumuladores .Add("@FolioGarantia", SqlDbType.VarChar).Value = FolioGarantia .Add("@Estatus", SqlDbType.Bit).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto End With diff --git a/Bancos/PagoDeudor.aspx b/Bancos/PagoDeudor.aspx index b85dc3acc..1e15b6086 100644 --- a/Bancos/PagoDeudor.aspx +++ b/Bancos/PagoDeudor.aspx @@ -374,7 +374,7 @@
- + diff --git a/Bancos/PagoDeudor.aspx.cs b/Bancos/PagoDeudor.aspx.cs index 661fd2abd..e837bbdfa 100644 --- a/Bancos/PagoDeudor.aspx.cs +++ b/Bancos/PagoDeudor.aspx.cs @@ -445,7 +445,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas } bool AutoConta = UsuarioActual.Empresa.Funcionalidad(200).Equals("1"); - if (UsuarioActual.CveEmpresa == 119) AutoConta = false; + // if (UsuarioActual.CveEmpresa == 119) AutoConta = false; if (AutoConta && MsgError.Equals("")) { @@ -708,6 +708,14 @@ public partial class Bancos_PagoDeudor : ClsPaginas { if (gvr.FCCheckBox("Chk").Checked) { + + Decimal TCDoc = gvr.DataKey("TipoCambio").ToDecimal(); // tipo de cambio de IE + if (gvr.DataKey("FechaDocumento").ToDate() < TxtFechaDocumento.Text.ToDate().FirstDayOfMonth()) + { + // si la fecha del documento a pagar es menor al primer dia del mes del pago, toma el TC del mes anterior + TCDoc = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate().AddMonths(-1).LastDayOfMonth()).ToDecimal(); + } + Importe = gvr.FCTextBox("TxtAbonar").Text.ToDecimal(); ImporteMN = Importe; ImporteComplementaria = 0; @@ -722,11 +730,11 @@ public partial class Bancos_PagoDeudor : ClsPaginas if (UsaComplementaria) { ImporteMN = Importe; - ImporteComplementaria = Importe * gvr.DataKey("TipoCambio").ToDecimal() - Importe; + ImporteComplementaria = Importe * TCDoc - Importe; } else { - ImporteMN = Importe * gvr.DataKey("TipoCambio").ToDecimal(); + ImporteMN = Importe * TCDoc; ImporteComplementaria = 0; } } @@ -740,11 +748,11 @@ public partial class Bancos_PagoDeudor : ClsPaginas if (UsaComplementaria) { ImporteMN = Importe; - ImporteComplementaria = Importe * gvr.DataKey("TipoCambio").ToDecimal() - Importe; + ImporteComplementaria = Importe * TCDoc - Importe; } else { - ImporteMN = Importe * gvr.DataKey("TipoCambio").ToDecimal(); + ImporteMN = Importe * TCDoc; ImporteComplementaria = 0; } } @@ -755,32 +763,32 @@ public partial class Bancos_PagoDeudor : ClsPaginas if (tCveMoneda != 1) { - if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePago, Conc, DateTime.Now, IDCtaContableDeudor, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteMN, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: gvr.DataKey("TipoCambio").ToDecimal(), TipoCambioPago: TC,CveSubProyecto:DdlSubProyectoPago.SelectedValue.ToEntero())) + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePago, Conc, DateTime.Now, IDCtaContableDeudor, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteMN, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: TCDoc, TipoCambioPago: TC,CveSubProyecto:DdlSubProyectoPago.SelectedValue.ToEntero())) { MsgError = "No se pudo insertar concepto de pago deudor"; break; } if (UsaComplementaria) { - if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePagoComplementaria, Conc, DateTime.Now, IDCtaContableDeudorComplementaria, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), ImporteME: Importe, TipoCambio: gvr.DataKey("TipoCambio").ToDecimal(), TipoCambioPago: TC, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePagoComplementaria, Conc, DateTime.Now, IDCtaContableDeudorComplementaria, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), ImporteME: Importe, TipoCambio: TCDoc, TipoCambioPago: TC, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) { MsgError = "No se pudo insertar concepto de deudor complementaria"; } } - if (TC != gvr.DataKey("TipoCambio").ToDecimal()) + if (TC != TCDoc) { int CveConceptoDiferenciaCambiaria = 0; bool TipoMovto = false; int IdCtaContableDiferenciaCambiaria = 0; - if (TC gvr.DataKey("TipoCambio").ToDecimal()) + else if (TC > TCDoc) { CveConceptoDiferenciaCambiaria = 64; IdCtaContableDiferenciaCambiaria = UsuarioActual.Empresa.IdCuentaGananciaCambiaria; diff --git a/Bancos/PolizaCheque.aspx.vb b/Bancos/PolizaCheque.aspx.vb index e58e68f16..a1c46d03d 100644 --- a/Bancos/PolizaCheque.aspx.vb +++ b/Bancos/PolizaCheque.aspx.vb @@ -900,14 +900,14 @@ Partial Class Bancos_PolizaCheque Importe = Importe * TC End If - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=If(UsuarioActual.CveEmpresa = 119, gvr.FCDropDownList("DdlSubProyecto").ToEntero, gvr.DataKey("CveSubProyecto").ToEntero), CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(gvr.DataKey("IDCuenta").ToEntero, UsuarioActual.CveEmpresa), -1), TipoCambio:=TC) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(gvr.DataKey("IDCuenta").ToEntero, UsuarioActual.CveEmpresa), -1), TipoCambio:=TC) Then MsgError = "no se pudo insertar el detalle de la póliza2" End If If gvr.DataKey("CveConcepto").ToEntero = 30 Then If CveMoneda > 1 AndAlso UsuarioActual.CveEmpresa = 119 Then 'Agregamos complementaria - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, 0, gvr.FCTextBox("TxtConcepto").Text, 204, TxtObservaciones.Text, Now, dr("IDCtaContableComplementaria").ToString.ToEntero, -1, CveIE:=CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=If(UsuarioActual.CveEmpresa = 119, gvr.FCDropDownList("DdlSubProyecto").ToEntero, gvr.DataKey("CveSubProyecto").ToEntero), CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe * TC - Importe, ImporteME:=Importe, TipoCambio:=TC) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, 0, gvr.FCTextBox("TxtConcepto").Text, 204, TxtObservaciones.Text, Now, dr("IDCtaContableComplementaria").ToString.ToEntero, -1, CveIE:=CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe * TC - Importe, ImporteME:=Importe, TipoCambio:=TC) Then MsgError = "Ocurrió un error al registrar el asiento del ingreso." End If End If diff --git a/Bancos/ProveedoresAbonar.aspx b/Bancos/ProveedoresAbonar.aspx index 29c9eeb36..23de03c5a 100644 --- a/Bancos/ProveedoresAbonar.aspx +++ b/Bancos/ProveedoresAbonar.aspx @@ -367,7 +367,7 @@ - + Factura diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 37b1b3a67..a11c4aed8 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -1811,7 +1811,7 @@ Partial Class Bancos_ProveedoresAbonar End If End If - If ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then + If MsgError <> "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then If ObjMov.ValorPolizaDescuadre > 0 Then MsgError = ObjMov.MensajePolizaDescuadre + " " + ObjMov.ValorDiferencia GuardaLogAD($"Bancos/ProveedoresAbonar | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") diff --git a/Bin/APP_Code_CSharp.dll b/Bin/APP_Code_CSharp.dll index 7e7523cc5..becf87606 100644 Binary files a/Bin/APP_Code_CSharp.dll and b/Bin/APP_Code_CSharp.dll differ diff --git a/Bin/APP_Code_CSharp.pdb b/Bin/APP_Code_CSharp.pdb index 9f610333e..e08316fcb 100644 Binary files a/Bin/APP_Code_CSharp.pdb and b/Bin/APP_Code_CSharp.pdb differ diff --git a/Bin/ClbNegBICFDv3_2.dll b/Bin/ClbNegBICFDv3_2.dll index 8ccf14b8c..fb9e13010 100644 Binary files a/Bin/ClbNegBICFDv3_2.dll and b/Bin/ClbNegBICFDv3_2.dll differ diff --git a/Compras/eFacturas.aspx b/Compras/eFacturas.aspx index a3b6472f7..5f537d57a 100644 --- a/Compras/eFacturas.aspx +++ b/Compras/eFacturas.aspx @@ -301,7 +301,7 @@ No Recibidas - @@ -338,7 +338,7 @@ - + @@ -380,6 +380,12 @@ + + + + + + diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 683c2a728..ef2355aba 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -1017,7 +1017,7 @@ Partial Class Compras_eFacturas e.Row.FCLinkButton("LnkAgregarPagoP").Visible = True End If Else - e.Row.FCLiteral("LtlXML").Text = "N/D" + e.Row.FCLiteral("LtlXML").Text = "N/D" ' String.Format("{0}{1}\{2}", Destino, e.Row.DBCampo("RFCDe"), e.Row.DBCampo("XML")) ' If e.Row.DBCampo("TipoComprobante") = "P" Then e.Row.FCLinkButton("LnkAgregarPagoP").Visible = False End If @@ -1026,7 +1026,7 @@ Partial Class Compras_eFacturas If File.Exists(String.Format("{0}{1}/{2}", Destino, e.Row.DBCampo("RFCDe"), e.Row.DBCampo("PDF"))) Then e.Row.FCLiteral("LtlPDF").Text = String.Format("Ver", HttpUtility.UrlEncode(e.Row.DBCampo("RFCDe")), HttpUtility.UrlEncode(e.Row.DBCampo("PDF"))) Else - e.Row.FCLiteral("LtlPDF").Text = "N/D" + e.Row.FCLiteral("LtlPDF").Text = "N/D" ' String.Format("{0}{1}/{2}", Destino, e.Row.DBCampo("RFCDe"), e.Row.DBCampo("PDF")) End If If e.Row.DBCampo("FueValidado").Contiene("1", "2", "3") Then @@ -3142,4 +3142,134 @@ Partial Class Compras_eFacturas Response.End() End If End Sub + Protected Sub LnkRegenerarPdfnew_Click(sender As Object, e As EventArgs) + Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("XML"))) + If Not IsNothing(objxml) Then + Dim rutaReporte As String = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3.rdlc") + If Not IsNothing(objxml.complemento.Pagos) Then + rutaReporte = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3Pago.rdlc") + End If + Dim NombreArchivo As String = String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("PDF")) + + + Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar() + Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, If(IsNothing(objxml.complemento.Pagos), objxml.comprobante.Total, objxml.complemento.Pagos.Monto), objxml.complemento.UUID) + Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() + parametros.Add(New ReportParameter("comprobante_Certificado", objxml.comprobante.Certificado)) + parametros.Add(New ReportParameter("comprobante_CondicionesDePago", objxml.comprobante.CondicionesDePago)) + parametros.Add(New ReportParameter("comprobante_Confirmacion", objxml.comprobante.Confirmacion)) + parametros.Add(New ReportParameter("comprobante_Fecha", objxml.comprobante.Fecha)) + parametros.Add(New ReportParameter("comprobante_Serie", objxml.comprobante.Serie)) + parametros.Add(New ReportParameter("comprobante_Folio", objxml.comprobante.Folio)) + parametros.Add(New ReportParameter("comprobante_Descuento", objxml.comprobante.Descuento.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_SubTotal", objxml.comprobante.SubTotal.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_Total", objxml.comprobante.Total.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_Version", objxml.comprobante.Version)) + parametros.Add(New ReportParameter("comprobante_TipoDeComprobante", objxml.comprobante.TipoDeComprobanteTexto)) + parametros.Add(New ReportParameter("comprobante_FormaPago", objxml.comprobante.FormaPagoTexto)) + parametros.Add(New ReportParameter("comprobante_LugarExpedicion", objxml.comprobante.LugarExpedicion)) + parametros.Add(New ReportParameter("comprobante_NoCertificado", objxml.comprobante.NoCertificado)) + parametros.Add(New ReportParameter("comprobante_Sello", objxml.comprobante.Sello)) + parametros.Add(New ReportParameter("comprobante_Moneda", objxml.comprobante.Moneda)) + parametros.Add(New ReportParameter("comprobante_TipoCambio", objxml.comprobante.TipoCambio.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_MetodoPago", objxml.comprobante.MetodoPagoTexto)) + parametros.Add(New ReportParameter("emisor_Rfc", objxml.emisor.Rfc)) + parametros.Add(New ReportParameter("emisor_Nombre", objxml.emisor.Nombre)) + parametros.Add(New ReportParameter("emisor_RegimenFiscal", objxml.emisor.RegimenFiscalTexto)) + parametros.Add(New ReportParameter("receptor_Rfc", objxml.receptor.Rfc)) + parametros.Add(New ReportParameter("receptor_Nombre", objxml.receptor.Nombre)) + parametros.Add(New ReportParameter("receptor_NumRegIdTrib", objxml.receptor.NumRegIdTrib)) + parametros.Add(New ReportParameter("receptor_ResidenciaFiscal", objxml.receptor.ResidenciaFiscal)) + parametros.Add(New ReportParameter("receptor_UsoCFDI", objxml.receptor.UsoCFDITexto)) + parametros.Add(New ReportParameter("complemento_FechaTimbrado", objxml.complemento.FechaTimbrado)) + parametros.Add(New ReportParameter("complemento_NoCertificadoSAT", objxml.complemento.NoCertificadoSAT)) + parametros.Add(New ReportParameter("complemento_RfcProvCertif", objxml.complemento.RfcProvCertif)) + parametros.Add(New ReportParameter("complemento_SelloCFD", objxml.complemento.SelloCFD)) + parametros.Add(New ReportParameter("complemento_SelloSAT", objxml.complemento.SelloSAT)) + parametros.Add(New ReportParameter("complemento_UUID", objxml.complemento.UUID)) + parametros.Add(New ReportParameter("complemento_CadenaOriginal", objxml.complemento.CadenaOriginal)) + If Not IsNothing(objxml.complemento.Pagos) Then + parametros.Add(New ReportParameter("CPFechaPago", objxml.complemento.Pagos.FechaPago)) + parametros.Add(New ReportParameter("CPFormaDePagoP", objxml.complemento.Pagos.FormaDePagoP)) + parametros.Add(New ReportParameter("CPFormaDePagoPText", objxml.complemento.Pagos.FormaDePagoPText)) + parametros.Add(New ReportParameter("CPMonedaP", objxml.complemento.Pagos.MonedaP)) + parametros.Add(New ReportParameter("CPMonto", objxml.complemento.Pagos.Monto.ToString())) + parametros.Add(New ReportParameter("CPTipoCambioP", objxml.complemento.Pagos.TipoCambioP.ToString())) + parametros.Add(New ReportParameter("CPNumOperacion", objxml.complemento.Pagos.NumOperacion)) + parametros.Add(New ReportParameter("CPNomBancoOrdExt", objxml.complemento.Pagos.NomBancoOrdExt)) + parametros.Add(New ReportParameter("CPRfcEmisorCtaOrd", objxml.complemento.Pagos.RfcEmisorCtaOrd)) + parametros.Add(New ReportParameter("CPCtaOrdenante", objxml.complemento.Pagos.CtaOrdenante)) + parametros.Add(New ReportParameter("CPRfcEmisorCtaBen", objxml.complemento.Pagos.RfcEmisorCtaBen)) + parametros.Add(New ReportParameter("CPCtaBeneficiario", objxml.complemento.Pagos.CtaBeneficiario)) + + End If + Using MR As ReportViewer = New ReportViewer() + Dim rdsTotales As ReportDataSource = New ReportDataSource() + Dim ltotales As List(Of utilValores) = New List(Of utilValores)() + ltotales.Add(New utilValores("Subtotal", objxml.comprobante.SubTotal.ToString("N2"))) + + If objxml.comprobante.Descuento > 0 Then + ltotales.Add(New utilValores("Descuento", objxml.comprobante.Descuento.ToString("N2"))) + End If + + For Each item As CFDIImpuesto In objxml.Impuestos + + If item.Importe > 0 Then + Dim TasaOCuota As Decimal = 0 + Decimal.TryParse(item.TasaOCuota, TasaOCuota) + ltotales.Add(New utilValores($"Impuestos {item.Tipo} {item.ImpuestoTexto} {(If(item.TipoFactor = "Tasa", (TasaOCuota * 100).ToString("N4"), item.TasaOCuota))} {(If(item.TipoFactor = "Tasa", "%", ""))}", item.Importe.ToString("N2"))) + End If + Next + + ltotales.Add(New utilValores("Total", objxml.comprobante.Total.ToString("N2"))) + rdsTotales.Name = "dsTotales" + rdsTotales.Value = ltotales + MR.LocalReport.DataSources.Add(rdsTotales) + Dim rds2 As ReportDataSource = New ReportDataSource() + Dim limagenes As List(Of utilImage) = New List(Of utilImage)() + limagenes.Add(New utilImage(cQr)) + rds2.Name = "dsImagenes" + rds2.Value = limagenes + MR.LocalReport.DataSources.Add(rds2) + Dim rdsrelacionados As ReportDataSource = New ReportDataSource() + rdsrelacionados.Name = "dsRelacionados" + rdsrelacionados.Value = objxml.cFDIRelacionados + MR.LocalReport.DataSources.Add(rdsrelacionados) + Dim rds1 As ReportDataSource = New ReportDataSource() + rds1.Name = "dsConceptos" + rds1.Value = objxml.GetConceptosforpdf() + MR.LocalReport.DataSources.Add(rds1) + + If Not IsNothing(objxml.complemento.Pagos) Then + + Dim rdsp As ReportDataSource = New ReportDataSource() + rdsp.Name = "dsPagos" + rdsp.Value = objxml.complemento.Pagos.doctosRelacionados + MR.LocalReport.DataSources.Add(rdsp) + End If + + MR.LocalReport.ReportPath = rutaReporte + MR.ProcessingMode = ProcessingMode.Local + MR.LocalReport.EnableExternalImages = True + MR.LocalReport.SetParameters(parametros) + MR.LocalReport.Refresh() + Dim warnings As Warning() = Nothing + Dim streamids As String() = Nothing + Dim mimeType As String = Nothing + Dim encoding As String = Nothing + Dim extension As String = Nothing + Dim bytes As Byte() = Nothing + bytes = MR.LocalReport.Render("PDF", Nothing, mimeType, encoding, extension, streamids, warnings) + + Using fs As FileStream = New FileStream(NombreArchivo, FileMode.Create) + fs.Write(bytes, 0, bytes.Length) + fs.Close() + End Using + End Using + Alert("PDF Generado!") + Else + Alert("no se pudo procesar el archivo xml") + End If + End Sub End Class \ No newline at end of file diff --git a/Empresas/Grales/Formatos/Ajuste.rdlc b/Empresas/Grales/Formatos/Ajuste.rdlc index 8ffdfc413..79d6d2dcf 100644 --- a/Empresas/Grales/Formatos/Ajuste.rdlc +++ b/Empresas/Grales/Formatos/Ajuste.rdlc @@ -976,11 +976,13 @@ - + =Parameters!CodEnsamble.Value Textbox3 @@ -1011,11 +1013,13 @@ - + =Parameters!CodInspeccion.Value Textbox3 @@ -1046,11 +1050,13 @@ - + =Parameters!CodLinea.Value Textbox3 @@ -1431,7 +1437,11 @@ - Nombre del consumidor: + Nombre del consumidor: +