From 85872034b084c4a2ac4719ca79e475b335e2d4b1 Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Fri, 30 Sep 2022 08:45:11 -0700 Subject: [PATCH 1/9] Lineas adicionales, Cat Empresas Visible para usuarios --- App_Code/ClsPaginas.vb | 3 +- App_Code/ClsSisEmpresas.vb | 3 +- App_Code/ClsVentas.vb | 20 +- General/SaldosIniciales.aspx.vb | 4 - Sistemas/CatEmpresas.aspx.vb | 20 +- Sistemas/Empresa.aspx | 11 +- Sistemas/Empresa.aspx.vb | 273 ++++++++++++++-------------- Ventas/Clientes.aspx | 29 ++- Ventas/Clientes.aspx.vb | 26 ++- Ventas/RepLineasAdicionales.aspx | 13 +- Ventas/RepLineasAdicionales.aspx.cs | 12 +- 11 files changed, 226 insertions(+), 188 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 0b868c51a..c58eec105 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5400,7 +5400,8 @@ Public Class ClsPaginas #End Region #Region "Sistema" 'Cargo las páginas que deben tener restricción - PaginaDict.Add("/Sistemas/CatEmpresas.aspx".ToUpper(), 2) + 'PaginaDict.Add("/Sistemas/CatEmpresas.aspx".ToUpper(), 2) + PaginaDict.Add("/Sistemas/CatEmpresas.aspx".ToUpper(), 24) PaginaDict.Add("/Sistemas/Empresa.aspx".ToUpper(), 2) PaginaDict.Add("/Sistemas/CatUsuarios.aspx".ToUpper(), 20) PaginaDict.Add("/Sistemas/Usuarios.aspx".ToUpper(), 20) diff --git a/App_Code/ClsSisEmpresas.vb b/App_Code/ClsSisEmpresas.vb index 852ef415a..179c07d60 100644 --- a/App_Code/ClsSisEmpresas.vb +++ b/App_Code/ClsSisEmpresas.vb @@ -312,7 +312,7 @@ Public Class ClsSisEmpresas End Try Return Retorno End Function - Public Function GetEmpresas(CveEmpresa As Integer, Empresa As String, RFC As String, Telefono As String, Contacto As String) As Boolean + Public Function GetEmpresas(CveEmpresa As Integer, Empresa As String, RFC As String, Telefono As String, Contacto As String, Optional CveUsuarioEmpresas As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Sis_EmpresasGet") @@ -323,6 +323,7 @@ Public Class ClsSisEmpresas .Add("@RFC", SqlDbType.VarChar).Value = RFC .Add("@Telefono", SqlDbType.VarChar).Value = Telefono .Add("@Contacto", SqlDbType.VarChar).Value = Contacto + .Add("@CveUsuarioEmpresas", SqlDbType.Int).Value = CveUsuarioEmpresas End With Try SqlAdapter.Fill(Data) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 6af729f4c..79ceebdd3 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -5576,7 +5576,7 @@ Public Class ClsVentas Public Function GetLineasAdicionales(CveLineaAdicional As Integer, CveCliente As Integer, CveProveedor As Integer, TipoLinea As Integer, CveMoneda As Integer, - FechaI As Date, FechaF As Date, CveEstatus As Integer, CveEmpresa As Integer) As Boolean + FechaI As Date, FechaF As Date, CveLineaAdicionalEstatus As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_LineasAdicionalesGet") @@ -5589,7 +5589,7 @@ Public Class ClsVentas .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@FechaI", SqlDbType.Date).Value = FechaI .Add("@FechaF", SqlDbType.Date).Value = FechaF - .Add("@CveEstatus", SqlDbType.Int).Value = CveEstatus + .Add("@CveLineaAdicionalEstatus", SqlDbType.Int).Value = CveLineaAdicionalEstatus .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa End With Try @@ -5648,7 +5648,8 @@ Public Class ClsVentas End Function Public Function AddLineasAdicionales(LineaAdicional As String, CveCliente As Integer, CveProveedor As Integer, TipoLinea As Integer, Importe As Decimal, - CveMoneda As Integer, FechaVencimiento As Date, CveUsuario As Integer, CveClasificacionPS As Integer, CveEstatus As Integer) As Boolean + CveMoneda As Integer, FechaVencimiento As Date, CveUsuario As Integer, CveCategoria As Integer, + Optional DiasVencimiento As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_LineasAdicionalesAdd") @@ -5663,8 +5664,8 @@ Public Class ClsVentas .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@FechaVencimiento", SqlDbType.Date).Value = FechaVencimiento .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveClasificacionPS", SqlDbType.Int).Value = CveClasificacionPS - .Add("@CveEstatus", SqlDbType.Int).Value = CveEstatus + .Add("@CveCategoria", SqlDbType.Int).Value = CveCategoria + .Add("@DiasVencimiento", SqlDbType.VarChar).Value = DiasVencimiento End With @@ -5681,7 +5682,8 @@ Public Class ClsVentas Public Function UpdateLineasAdicionales(CveLineaAdicional As Integer, LineaAdicional As String, CveCliente As Integer, CveProveedor As Integer, TipoLinea As Integer, Importe As Decimal, - CveMoneda As Integer, FechaVencimiento As Date, CveUsuario As Integer, CveClasificacionPS As Integer, CveEstatus As Integer, CveEmpresa As Integer, Optional Comprobante As String = "-1") As Boolean + CveMoneda As Integer, FechaVencimiento As Date, CveUsuario As Integer, CveCategoria As Integer, CveEmpresa As Integer, + Optional Comprobante As String = "-1", Optional DiasVencimiento As Integer = -1, Optional CveVenta As Integer = -1, Optional CveLineaAdicionalEstatus As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_LineasAdicionalesUpdate") @@ -5696,10 +5698,12 @@ Public Class ClsVentas .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@FechaVencimiento", SqlDbType.Date).Value = FechaVencimiento .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveClasificacionPS", SqlDbType.Int).Value = CveClasificacionPS - .Add("@CveEstatus", SqlDbType.Int).Value = CveEstatus + .Add("@CveCategoria", SqlDbType.Int).Value = CveCategoria .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@Comprobante", SqlDbType.VarChar).Value = Comprobante + .Add("@DiasVencimiento", SqlDbType.VarChar).Value = DiasVencimiento + .Add("@CveVenta", SqlDbType.VarChar).Value = CveVenta + .Add("@CveLineaAdicionalEstatus", SqlDbType.Int).Value = CveLineaAdicionalEstatus End With diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 71ad7a0f1..ccd7582a3 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -655,10 +655,6 @@ Partial Class General_SaldosIniciales Exit Sub End If - - - - End If diff --git a/Sistemas/CatEmpresas.aspx.vb b/Sistemas/CatEmpresas.aspx.vb index 62b3d0dca..d60e791ed 100644 --- a/Sistemas/CatEmpresas.aspx.vb +++ b/Sistemas/CatEmpresas.aspx.vb @@ -45,7 +45,7 @@ Partial Class Sistemas_CatEmpresas #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then - If UsuarioActual.CveRol <> 1 Then Response.Redirect("/Inicio.aspx") + 'If UsuarioActual.CveRol <> 1 Then Response.Redirect("/Inicio.aspx") ViewState("Orden") = "CveEmpresa ASC" ViewState("CveRol") = -1 @@ -117,16 +117,20 @@ Partial Class Sistemas_CatEmpresas End Sub Private Sub CargaGrid(Orden As String) - If Orden <> String.Empty Then - Dim DV As New DataView(GlobalDTEmpresas, "", Orden, DataViewRowState.CurrentRows) - GvDatos.DataSource = DV.ToTable() - DV.Dispose() - Else - GvDatos.DataSource = GlobalDTEmpresas - End If + + Using ObjEmpresas As New ClsSisEmpresas() + + If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1", UsuarioActual.CveUsuario) Then + GvDatos.DataSource = ObjEmpresas.DtResultados + Else + GvDatos.DataSource = Nothing + End If + + End Using GvDatos.DataBind() UpDatos.Update() + End Sub #End Region End Class diff --git a/Sistemas/Empresa.aspx b/Sistemas/Empresa.aspx index c0bf14666..73c79e8ff 100644 --- a/Sistemas/Empresa.aspx +++ b/Sistemas/Empresa.aspx @@ -948,6 +948,7 @@
+ @@ -1048,7 +1049,8 @@ - + + <%-- @@ -1146,8 +1148,13 @@
-
+
--%> + + +
+ +
diff --git a/Sistemas/Empresa.aspx.vb b/Sistemas/Empresa.aspx.vb index 51c58ba61..0e19d9054 100644 --- a/Sistemas/Empresa.aspx.vb +++ b/Sistemas/Empresa.aspx.vb @@ -426,30 +426,30 @@ Partial Class Sistemas_Empresa CargaFuncionalidad(221, DdlActivoFijo) - CargaFuncionalidad(232, DdlProveedoresSIG) - CargaFuncionalidad(233, DdlClientesSIG) - CargaFuncionalidad(234, DdlDeudoresSIG) - CargaFuncionalidad(235, DdlAcreedoresSIG) - CargaFuncionalidad(236, DdlDocxPagarSIG) - CargaFuncionalidad(237, DdlAnticipoClienteSIG) - CargaFuncionalidad(238, DdlAnticipoProveedoresSIG) - CargaFuncionalidad(239, DdlInventarioSIG) - CargaFuncionalidad(240, DdlGastoSIG) - CargaFuncionalidad(241, DdlBancosSIG) - CargaFuncionalidad(242, DdlCajaSIG) - CargaFuncionalidad(243, DdlFyESIG) - CargaFuncionalidad(244, DdlActivoFijoSIG) + 'CargaFuncionalidad(232, DdlProveedoresSIG) + 'CargaFuncionalidad(233, DdlClientesSIG) + 'CargaFuncionalidad(234, DdlDeudoresSIG) + 'CargaFuncionalidad(235, DdlAcreedoresSIG) + 'CargaFuncionalidad(236, DdlDocxPagarSIG) + 'CargaFuncionalidad(237, DdlAnticipoClienteSIG) + 'CargaFuncionalidad(238, DdlAnticipoProveedoresSIG) + 'CargaFuncionalidad(239, DdlInventarioSIG) + 'CargaFuncionalidad(240, DdlGastoSIG) + 'CargaFuncionalidad(241, DdlBancosSIG) + 'CargaFuncionalidad(242, DdlCajaSIG) + 'CargaFuncionalidad(243, DdlFyESIG) + 'CargaFuncionalidad(244, DdlActivoFijoSIG) LbBannerDescarga.OnClientClick = "javascript:AbrirVentana('/Banners/" & .Banner & "', 500, 500, 'N', 'Banner Empresa');" Session("FileUpload") = .Banner - 'LbArchivoKeyDescarga.OnClientClick = "javascript:AbrirVentana('/Key/" & .ArchivoKey & "', 500, 500, 'N', 'ArchivoKey Empresa');" + Session("FileUpload") = .ArchivoKey LbBannerDescarga.OnClientClick = "javascript:AbrirVentana('/Cer/" & .ArchivoCer & "', 500, 500, 'N', 'ArchivoCer Empresa');" Session("FileUpload") = .ArchivoCer - 'LbArchivoPfxDescarga.OnClientClick = "javascript:AbrirVentana('/Pfx/" & .ArchivoPfx & "', 500, 500, 'N', 'ArchivoPfx Empresa');" + Session("FileUpload") = .ArchivoPfx End With @@ -665,20 +665,20 @@ Partial Class Sistemas_Empresa If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 246, DdlClientes) If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 237, DdlAnticipoCliente) - 'AGREGAR FUNCIONALIDADES - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 232, DdlProveedoresSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 233, DdlClientesSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 239, DdlInventarioSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 240, DdlGastoSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 241, DdlBancosSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 234, DdlDeudoresSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 235, DdlAcreedoresSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 236, DdlDocxPagarSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 237, DdlAnticipoClienteSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 238, DdlAnticipoProveedoresSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 242, DdlCajaSIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 243, DdlFyESIG) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 244, DdlActivoFijoSIG) + ''AGREGAR FUNCIONALIDADES + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 232, DdlProveedoresSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 233, DdlClientesSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 239, DdlInventarioSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 240, DdlGastoSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 241, DdlBancosSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 234, DdlDeudoresSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 235, DdlAcreedoresSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 236, DdlDocxPagarSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 237, DdlAnticipoClienteSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 238, DdlAnticipoProveedoresSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 242, DdlCajaSIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 243, DdlFyESIG) + 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 244, DdlActivoFijoSIG) 'TRIGGER @@ -1057,85 +1057,86 @@ Partial Class Sistemas_Empresa DdlCuentaOtrosIngresos.AutoPostBack = False : DdlCuentaOtrosIngresos.Attributes.Remove("onclick") : DdlCuentaOtrosIngresos.CssClass &= " select2me" - 'PADRES SIG - Case "42" - If DdlProveedoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlProveedoresSIG.SelectedValue - DdlProveedoresSIG.Items.Clear() : DdlProveedoresSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlProveedoresSIG.DataSource = DtCuentasContablesSIG : DdlProveedoresSIG.DataBind() : DdlProveedoresSIG.SelectedValue = Seleccionado - DdlProveedoresSIG.AutoPostBack = False : DdlProveedoresSIG.Attributes.Remove("onclick") : DdlProveedoresSIG.CssClass &= " select2me" - Case "43" - If DdlClientesSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlClientesSIG.SelectedValue - DdlClientesSIG.Items.Clear() : DdlClientesSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlClientesSIG.DataSource = DtCuentasContablesSIG : DdlClientesSIG.DataBind() : DdlClientesSIG.SelectedValue = Seleccionado - DdlClientesSIG.AutoPostBack = False : DdlClientesSIG.Attributes.Remove("onclick") : DdlClientesSIG.CssClass &= " select2me" - Case "44" - If DdlInventarioSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlInventarioSIG.SelectedValue - DdlInventarioSIG.Items.Clear() : DdlInventarioSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlInventarioSIG.DataSource = DtCuentasContablesSIG : DdlInventarioSIG.DataBind() : DdlInventarioSIG.SelectedValue = Seleccionado - DdlInventarioSIG.AutoPostBack = False : DdlInventarioSIG.Attributes.Remove("onclick") : DdlInventarioSIG.CssClass &= " select2me" - Case "45" - If DdlGastoSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlGasto.SelectedValue - DdlGastoSIG.Items.Clear() : DdlGastoSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlGastoSIG.DataSource = DtCuentasContablesSIG : DdlGastoSIG.DataBind() : DdlGastoSIG.SelectedValue = Seleccionado - DdlGastoSIG.AutoPostBack = False : DdlGastoSIG.Attributes.Remove("onclick") : DdlGastoSIG.CssClass &= " select2me" - Case "46" - If DdlBancosSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlBancosSIG.SelectedValue - DdlBancosSIG.Items.Clear() : DdlBancosSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlBancosSIG.DataSource = DtCuentasContablesSIG : DdlBancosSIG.DataBind() : DdlBancosSIG.SelectedValue = Seleccionado - DdlBancosSIG.AutoPostBack = False : DdlBancosSIG.Attributes.Remove("onclick") : DdlBancosSIG.CssClass &= " select2me" - Case "47" - If DdlDeudoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlDeudoresSIG.SelectedValue - DdlDeudoresSIG.Items.Clear() : DdlDeudoresSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlDeudoresSIG.DataSource = DtCuentasContablesSIG : DdlDeudoresSIG.DataBind() : DdlDeudoresSIG.SelectedValue = Seleccionado - DdlDeudoresSIG.AutoPostBack = False : DdlDeudoresSIG.Attributes.Remove("onclick") : DdlDeudoresSIG.CssClass &= " select2me" - Case "48" - If DdlAcreedoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlAcreedoresSIG.SelectedValue - DdlAcreedoresSIG.Items.Clear() : DdlAcreedoresSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlAcreedoresSIG.DataSource = DtCuentasContablesSIG : DdlAcreedoresSIG.DataBind() : DdlAcreedoresSIG.SelectedValue = Seleccionado - DdlAcreedoresSIG.AutoPostBack = False : DdlAcreedoresSIG.Attributes.Remove("onclick") : DdlAcreedoresSIG.CssClass &= " select2me" - Case "49" - If DdlDocxPagarSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlDocxPagarSIG.SelectedValue - DdlDocxPagarSIG.Items.Clear() : DdlDocxPagarSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlDocxPagarSIG.DataSource = DtCuentasContablesSIG : DdlDocxPagarSIG.DataBind() : DdlDocxPagarSIG.SelectedValue = Seleccionado - DdlDocxPagarSIG.AutoPostBack = False : DdlDocxPagarSIG.Attributes.Remove("onclick") : DdlDocxPagarSIG.CssClass &= " select2me" - Case "50" - If DdlAnticipoClienteSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlAnticipoClienteSIG.SelectedValue - DdlAnticipoClienteSIG.Items.Clear() : DdlAnticipoClienteSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlAnticipoClienteSIG.DataSource = DtCuentasContablesSIG : DdlAnticipoClienteSIG.DataBind() : DdlAnticipoClienteSIG.SelectedValue = Seleccionado - DdlAnticipoClienteSIG.AutoPostBack = False : DdlAnticipoClienteSIG.Attributes.Remove("onclick") : DdlAnticipoClienteSIG.CssClass &= " select2me" - Case "51" - If DdlAnticipoProveedoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlAnticipoProveedoresSIG.SelectedValue - DdlAnticipoProveedoresSIG.Items.Clear() : DdlAnticipoProveedoresSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlAnticipoProveedoresSIG.DataSource = DtCuentasContablesSIG : DdlAnticipoProveedoresSIG.DataBind() : DdlAnticipoProveedoresSIG.SelectedValue = Seleccionado - DdlAnticipoProveedoresSIG.AutoPostBack = False : DdlAnticipoProveedoresSIG.Attributes.Remove("onclick") : DdlAnticipoProveedoresSIG.CssClass &= " select2me" - Case "52" - If DdlCajaSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlCajaSIG.SelectedValue - DdlCajaSIG.Items.Clear() : DdlCajaSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlCajaSIG.DataSource = DtCuentasContablesSIG : DdlCajaSIG.DataBind() : DdlCajaSIG.SelectedValue = Seleccionado - DdlCajaSIG.AutoPostBack = False : DdlCajaSIG.Attributes.Remove("onclick") : DdlCajaSIG.CssClass &= " select2me" - Case "53" - If DdlFyESIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlFyESIG.SelectedValue - DdlFyESIG.Items.Clear() : DdlFyESIG.Items.Add(New ListItem("Seleccione", "0")) - DdlFyESIG.DataSource = DtCuentasContablesSIG : DdlFyESIG.DataBind() : DdlFyESIG.SelectedValue = Seleccionado - DdlFyESIG.AutoPostBack = False : DdlFyESIG.Attributes.Remove("onclick") : DdlFyESIG.CssClass &= " select2me" - Case "54" - If DdlActivoFijoSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() - Seleccionado = DdlActivoFijoSIG.SelectedValue - DdlActivoFijoSIG.Items.Clear() : DdlActivoFijoSIG.Items.Add(New ListItem("Seleccione", "0")) - DdlActivoFijoSIG.DataSource = DtCuentasContablesSIG : DdlActivoFijoSIG.DataBind() : DdlActivoFijoSIG.SelectedValue = Seleccionado - DdlActivoFijoSIG.AutoPostBack = False : DdlActivoFijoSIG.Attributes.Remove("onclick") : DdlActivoFijoSIG.CssClass &= " select2me" + ' 'PADRES SIG + 'Case "42" + ' If DdlProveedoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlProveedoresSIG.SelectedValue + ' DdlProveedoresSIG.Items.Clear() : DdlProveedoresSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlProveedoresSIG.DataSource = DtCuentasContablesSIG : DdlProveedoresSIG.DataBind() : DdlProveedoresSIG.SelectedValue = Seleccionado + ' DdlProveedoresSIG.AutoPostBack = False : DdlProveedoresSIG.Attributes.Remove("onclick") : DdlProveedoresSIG.CssClass &= " select2me" + 'Case "43" + ' If DdlClientesSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlClientesSIG.SelectedValue + ' DdlClientesSIG.Items.Clear() : DdlClientesSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlClientesSIG.DataSource = DtCuentasContablesSIG : DdlClientesSIG.DataBind() : DdlClientesSIG.SelectedValue = Seleccionado + ' DdlClientesSIG.AutoPostBack = False : DdlClientesSIG.Attributes.Remove("onclick") : DdlClientesSIG.CssClass &= " select2me" + 'Case "44" + ' If DdlInventarioSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlInventarioSIG.SelectedValue + ' DdlInventarioSIG.Items.Clear() : DdlInventarioSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlInventarioSIG.DataSource = DtCuentasContablesSIG : DdlInventarioSIG.DataBind() : DdlInventarioSIG.SelectedValue = Seleccionado + ' DdlInventarioSIG.AutoPostBack = False : DdlInventarioSIG.Attributes.Remove("onclick") : DdlInventarioSIG.CssClass &= " select2me" + 'Case "45" + ' If DdlGastoSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlGasto.SelectedValue + ' DdlGastoSIG.Items.Clear() : DdlGastoSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlGastoSIG.DataSource = DtCuentasContablesSIG : DdlGastoSIG.DataBind() : DdlGastoSIG.SelectedValue = Seleccionado + ' DdlGastoSIG.AutoPostBack = False : DdlGastoSIG.Attributes.Remove("onclick") : DdlGastoSIG.CssClass &= " select2me" + 'Case "46" + ' If DdlBancosSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlBancosSIG.SelectedValue + ' DdlBancosSIG.Items.Clear() : DdlBancosSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlBancosSIG.DataSource = DtCuentasContablesSIG : DdlBancosSIG.DataBind() : DdlBancosSIG.SelectedValue = Seleccionado + ' DdlBancosSIG.AutoPostBack = False : DdlBancosSIG.Attributes.Remove("onclick") : DdlBancosSIG.CssClass &= " select2me" + 'Case "47" + ' If DdlDeudoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlDeudoresSIG.SelectedValue + ' DdlDeudoresSIG.Items.Clear() : DdlDeudoresSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlDeudoresSIG.DataSource = DtCuentasContablesSIG : DdlDeudoresSIG.DataBind() : DdlDeudoresSIG.SelectedValue = Seleccionado + ' DdlDeudoresSIG.AutoPostBack = False : DdlDeudoresSIG.Attributes.Remove("onclick") : DdlDeudoresSIG.CssClass &= " select2me" + 'Case "48" + ' If DdlAcreedoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlAcreedoresSIG.SelectedValue + ' DdlAcreedoresSIG.Items.Clear() : DdlAcreedoresSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlAcreedoresSIG.DataSource = DtCuentasContablesSIG : DdlAcreedoresSIG.DataBind() : DdlAcreedoresSIG.SelectedValue = Seleccionado + ' DdlAcreedoresSIG.AutoPostBack = False : DdlAcreedoresSIG.Attributes.Remove("onclick") : DdlAcreedoresSIG.CssClass &= " select2me" + 'Case "49" + ' If DdlDocxPagarSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlDocxPagarSIG.SelectedValue + ' DdlDocxPagarSIG.Items.Clear() : DdlDocxPagarSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlDocxPagarSIG.DataSource = DtCuentasContablesSIG : DdlDocxPagarSIG.DataBind() : DdlDocxPagarSIG.SelectedValue = Seleccionado + ' DdlDocxPagarSIG.AutoPostBack = False : DdlDocxPagarSIG.Attributes.Remove("onclick") : DdlDocxPagarSIG.CssClass &= " select2me" + 'Case "50" + ' If DdlAnticipoClienteSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlAnticipoClienteSIG.SelectedValue + ' DdlAnticipoClienteSIG.Items.Clear() : DdlAnticipoClienteSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlAnticipoClienteSIG.DataSource = DtCuentasContablesSIG : DdlAnticipoClienteSIG.DataBind() : DdlAnticipoClienteSIG.SelectedValue = Seleccionado + ' DdlAnticipoClienteSIG.AutoPostBack = False : DdlAnticipoClienteSIG.Attributes.Remove("onclick") : DdlAnticipoClienteSIG.CssClass &= " select2me" + 'Case "51" + ' If DdlAnticipoProveedoresSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlAnticipoProveedoresSIG.SelectedValue + ' DdlAnticipoProveedoresSIG.Items.Clear() : DdlAnticipoProveedoresSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlAnticipoProveedoresSIG.DataSource = DtCuentasContablesSIG : DdlAnticipoProveedoresSIG.DataBind() : DdlAnticipoProveedoresSIG.SelectedValue = Seleccionado + ' DdlAnticipoProveedoresSIG.AutoPostBack = False : DdlAnticipoProveedoresSIG.Attributes.Remove("onclick") : DdlAnticipoProveedoresSIG.CssClass &= " select2me" + 'Case "52" + ' If DdlCajaSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlCajaSIG.SelectedValue + ' DdlCajaSIG.Items.Clear() : DdlCajaSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlCajaSIG.DataSource = DtCuentasContablesSIG : DdlCajaSIG.DataBind() : DdlCajaSIG.SelectedValue = Seleccionado + ' DdlCajaSIG.AutoPostBack = False : DdlCajaSIG.Attributes.Remove("onclick") : DdlCajaSIG.CssClass &= " select2me" + 'Case "53" + ' If DdlFyESIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlFyESIG.SelectedValue + ' DdlFyESIG.Items.Clear() : DdlFyESIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlFyESIG.DataSource = DtCuentasContablesSIG : DdlFyESIG.DataBind() : DdlFyESIG.SelectedValue = Seleccionado + ' DdlFyESIG.AutoPostBack = False : DdlFyESIG.Attributes.Remove("onclick") : DdlFyESIG.CssClass &= " select2me" + 'Case "54" + ' If DdlActivoFijoSIG.Attributes("onclick") <> "" Then CargaCuentasContablesSIG() + ' Seleccionado = DdlActivoFijoSIG.SelectedValue + ' DdlActivoFijoSIG.Items.Clear() : DdlActivoFijoSIG.Items.Add(New ListItem("Seleccione", "0")) + ' DdlActivoFijoSIG.DataSource = DtCuentasContablesSIG : DdlActivoFijoSIG.DataBind() : DdlActivoFijoSIG.SelectedValue = Seleccionado + ' DdlActivoFijoSIG.AutoPostBack = False : DdlActivoFijoSIG.Attributes.Remove("onclick") : DdlActivoFijoSIG.CssClass &= " select2me" + End Select @@ -1171,20 +1172,20 @@ Partial Class Sistemas_Empresa DdlCuentaDescuentoVenta.AutoPostBack = True DdlCuentaOtrosIngresos.AutoPostBack = True - 'CUENTAS PADRES SIG - DdlProveedoresSIG.AutoPostBack = True - DdlClientesSIG.AutoPostBack = True - DdlInventarioSIG.AutoPostBack = True - DdlGastoSIG.AutoPostBack = True - DdlBancosSIG.AutoPostBack = True - DdlDeudoresSIG.AutoPostBack = True - DdlAcreedoresSIG.AutoPostBack = True - DdlDocxPagarSIG.AutoPostBack = True - DdlAnticipoClienteSIG.AutoPostBack = True - DdlAnticipoProveedoresSIG.AutoPostBack = True - DdlCajaSIG.AutoPostBack = True - DdlFyESIG.AutoPostBack = True - DdlActivoFijoSIG.AutoPostBack = True + ''CUENTAS PADRES SIG + 'DdlProveedoresSIG.AutoPostBack = True + 'DdlClientesSIG.AutoPostBack = True + 'DdlInventarioSIG.AutoPostBack = True + 'DdlGastoSIG.AutoPostBack = True + 'DdlBancosSIG.AutoPostBack = True + 'DdlDeudoresSIG.AutoPostBack = True + 'DdlAcreedoresSIG.AutoPostBack = True + 'DdlDocxPagarSIG.AutoPostBack = True + 'DdlAnticipoClienteSIG.AutoPostBack = True + 'DdlAnticipoProveedoresSIG.AutoPostBack = True + 'DdlCajaSIG.AutoPostBack = True + 'DdlFyESIG.AutoPostBack = True + 'DdlActivoFijoSIG.AutoPostBack = True DdlIVAxAcreditar.Attributes.Add("onclick", "CargaCuentas(1);") @@ -1217,20 +1218,20 @@ Partial Class Sistemas_Empresa DdlCuentaDescuentoVenta.Attributes.Add("onclick", "CargaCuentas(40);") DdlCuentaOtrosIngresos.Attributes.Add("onclick", "CargaCuentas(41);") - 'CUENTAS PADRES - DdlProveedoresSIG.Attributes.Add("onclick", "CargaCuentas(42);") - DdlClientesSIG.Attributes.Add("onclick", "CargaCuentas(43);") - DdlInventarioSIG.Attributes.Add("onclick", "CargaCuentas(44);") - DdlGastoSIG.Attributes.Add("onclick", "CargaCuentas(45);") - DdlBancosSIG.Attributes.Add("onclick", "CargaCuentas(46);") - DdlDeudoresSIG.Attributes.Add("onclick", "CargaCuentas(47);") - DdlAcreedoresSIG.Attributes.Add("onclick", "CargaCuentas(48);") - DdlDocxPagarSIG.Attributes.Add("onclick", "CargaCuentas(49);") - DdlAnticipoClienteSIG.Attributes.Add("onclick", "CargaCuentas(50);") - DdlAnticipoProveedoresSIG.Attributes.Add("onclick", "CargaCuentas(51);") - DdlCajaSIG.Attributes.Add("onclick", "CargaCuentas(52);") - DdlFyESIG.Attributes.Add("onclick", "CargaCuentas(53);") - DdlActivoFijoSIG.Attributes.Add("onclick", "CargaCuentas(54);") + ''CUENTAS PADRES + 'DdlProveedoresSIG.Attributes.Add("onclick", "CargaCuentas(42);") + 'DdlClientesSIG.Attributes.Add("onclick", "CargaCuentas(43);") + 'DdlInventarioSIG.Attributes.Add("onclick", "CargaCuentas(44);") + 'DdlGastoSIG.Attributes.Add("onclick", "CargaCuentas(45);") + 'DdlBancosSIG.Attributes.Add("onclick", "CargaCuentas(46);") + 'DdlDeudoresSIG.Attributes.Add("onclick", "CargaCuentas(47);") + 'DdlAcreedoresSIG.Attributes.Add("onclick", "CargaCuentas(48);") + 'DdlDocxPagarSIG.Attributes.Add("onclick", "CargaCuentas(49);") + 'DdlAnticipoClienteSIG.Attributes.Add("onclick", "CargaCuentas(50);") + 'DdlAnticipoProveedoresSIG.Attributes.Add("onclick", "CargaCuentas(51);") + 'DdlCajaSIG.Attributes.Add("onclick", "CargaCuentas(52);") + 'DdlFyESIG.Attributes.Add("onclick", "CargaCuentas(53);") + 'DdlActivoFijoSIG.Attributes.Add("onclick", "CargaCuentas(54);") UpDatos.Update() diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index c70a0433f..13c08b48b 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -4574,14 +4574,14 @@ - + @@ -6724,16 +6724,17 @@
- - + +
- + - + -
+
+
+
+
+ + + + + +
@@ -6807,9 +6818,9 @@
- + - +
diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index d2093a1c2..23c792e33 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -10359,9 +10359,9 @@ Partial Class Clientes - DdlClasificacionLienaAdicionalModal.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) - DdlClasificacionLienaAdicionalModal.DataBind() - DdlClasificacionLienaAdicionalModal.Items.Insert(0, New ListItem("-", "-1")) + DdlCategoriaLineaAdicionalModal.DataSource = GlobalDTGralCategorias(UsuarioActual.CveEmpresa) + DdlCategoriaLineaAdicionalModal.DataBind() + DdlCategoriaLineaAdicionalModal.Items.Insert(0, New ListItem("-", "-1")) @@ -10397,9 +10397,11 @@ Partial Class Clientes DdlProveedorLineaAdicionalModal.txtValue.Value = "" DdlTipoLineaAdicionalModal.SelectedValueExist(-1) TxtFechaVencimientoLineaAdicionalModal.Text = "" - DdlClasificacionLienaAdicionalModal.SelectedValueExist(-1) + DdlCategoriaLineaAdicionalModal.SelectedValueExist(-1) TxtImporteLineaAdicionalModal.Text = "" DdlMonedaLineAdicionalModal.SelectedValueExist(-1) + TxtDiasVencimientoLineaAdicionalModal.Text = "" + DdlTipoLineaAdicionalModal_SelectedIndexChanged(Nothing, Nothing) UpLineaAdicionalmodal.Update() @@ -10419,14 +10421,16 @@ Partial Class Clientes If CveLineaAdicional > 0 Then If Not ObjVentas.UpdateLineasAdicionales(CveLineaAdicional, TxtLineaAdicionalModal.Text, CveCliente, DdlProveedorLineaAdicionalModal.SelectedValue.ToEntero, DdlTipoLineaAdicionalModal.SelectedValue.ToEntero, TxtImporteLineaAdicionalModal.Text.ToDecimal, - DdlMonedaLineAdicionalModal.SelectedValue.ToEntero, TxtFechaVencimientoLineaAdicionalModal.Text.ToDate, UsuarioActual.CveUsuario, DdlClasificacionLienaAdicionalModal.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then + DdlMonedaLineAdicionalModal.SelectedValue.ToEntero, TxtFechaVencimientoLineaAdicionalModal.Text.ToDate, UsuarioActual.CveUsuario, DdlCategoriaLineaAdicionalModal.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, + DiasVencimiento:=TxtDiasVencimientoLineaAdicionalModal.Text.ToEntero) Then ErrorAgregar = True Else Alert("Linea Adicional Actualizada Correctamente") End If Else If Not ObjVentas.AddLineasAdicionales(TxtLineaAdicionalModal.Text, CveCliente, DdlProveedorLineaAdicionalModal.SelectedValue.ToEntero, DdlTipoLineaAdicionalModal.SelectedValue.ToEntero, TxtImporteLineaAdicionalModal.Text.ToDecimal, - DdlMonedaLineAdicionalModal.SelectedValue.ToEntero, TxtFechaVencimientoLineaAdicionalModal.Text.ToDate, UsuarioActual.CveUsuario, DdlClasificacionLienaAdicionalModal.SelectedValue.ToEntero, 0) Then + DdlMonedaLineAdicionalModal.SelectedValue.ToEntero, TxtFechaVencimientoLineaAdicionalModal.Text.ToDate, UsuarioActual.CveUsuario, DdlCategoriaLineaAdicionalModal.SelectedValue.ToEntero, + DiasVencimiento:=TxtDiasVencimientoLineaAdicionalModal.Text.ToEntero) Then ErrorAgregar = True Else Alert("Linea Adicional Agregada Correctamente") @@ -10455,10 +10459,11 @@ Partial Class Clientes DdlProveedorLineaAdicionalModal.txtValue.Value = GvRow.DataKey("CveProveedor") DdlTipoLineaAdicionalModal.SelectedValueExist(GvRow.DataKey("TipoLinea").ToEntero) TxtFechaVencimientoLineaAdicionalModal.Text = GvRow.DataKey("FechaVencimiento").ToDate.ToString("dd/MM/yyyy") - DdlClasificacionLienaAdicionalModal.SelectedValueExist(GvRow.DataKey("CveClasificacionPS").ToEntero) + DdlCategoriaLineaAdicionalModal.SelectedValueExist(GvRow.DataKey("CveCategoria").ToEntero) TxtImporteLineaAdicionalModal.Text = GvRow.DataKey("Importe").ToDecimal.ToString("###,###,###.00") DdlMonedaLineAdicionalModal.SelectedValueExist(GvRow.DataKey("CveMoneda").ToEntero) - + TxtDiasVencimientoLineaAdicionalModal.Text = GvRow.DataKey("DiasVencimiento").ToEntero.ToString + DdlTipoLineaAdicionalModal_SelectedIndexChanged(Nothing, Nothing) RegistraScript("$('#DVLineasAdicionales').modal('show')") UpLineaAdicionalmodal.Update() @@ -10490,8 +10495,11 @@ Partial Class Clientes + Protected Sub DdlTipoLineaAdicionalModal_SelectedIndexChanged(sender As Object, e As EventArgs) + DvLineaAdicionalDiasVenciemientoModal.Visible = If(DdlTipoLineaAdicionalModal.SelectedValue.ToEntero = 2, True, False) + UpLineaAdicionalmodal.Update() - + End Sub End Class diff --git a/Ventas/RepLineasAdicionales.aspx b/Ventas/RepLineasAdicionales.aspx index 7927edb15..4a65fdc2b 100644 --- a/Ventas/RepLineasAdicionales.aspx +++ b/Ventas/RepLineasAdicionales.aspx @@ -129,7 +129,7 @@ - + - - + <%----%> + + + + @@ -156,7 +159,7 @@
-
diff --git a/Ventas/RepLineasAdicionales.aspx.cs b/Ventas/RepLineasAdicionales.aspx.cs index 9595fcc64..f6266c005 100644 --- a/Ventas/RepLineasAdicionales.aspx.cs +++ b/Ventas/RepLineasAdicionales.aspx.cs @@ -65,7 +65,7 @@ public partial class Ventas_RepLineasAdicionales : ClsPaginas { DVProveedor1.Visible = true; DVProveedor2.Visible = true; - GvLineasAdicionales.Columns[8].Visible = true; + GvLineasAdicionales.Columns[10].Visible = true; TipoLinea = 2; LtlEncabezado.Text = "Reporte PO"; } @@ -221,7 +221,7 @@ public partial class Ventas_RepLineasAdicionales : ClsPaginas if (!errorCargaComprobante) { ClsVentas objVentas = new ClsVentas(); - if (!objVentas.UpdateLineasAdicionales(CveLineaAdicional, "-1", -1, -1, -1, -1, -1, MinFecha, 100, -1, -1, UsuarioActual.CveEmpresa, Comprobante: $@"{CveLineaAdicional}{fiNuevo.Extension}")) + if (!objVentas.UpdateLineasAdicionales(CveLineaAdicional, "-1", -1, -1, -1, -1, -1, MinFecha, 100, -1, UsuarioActual.CveEmpresa, Comprobante: $@"{CveLineaAdicional}{fiNuevo.Extension}")) { errorCargaComprobante = true; } @@ -248,11 +248,13 @@ public partial class Ventas_RepLineasAdicionales : ClsPaginas { GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer; int CveLineaAdicionalActualzarEstatus = GvRow.DataKey("CveLineaAdicional").ToString().ToEntero(); + int CveVenta = GvRow.DataKey("CveVenta").ToString().ToEntero(); + bool errorCambioEstatus = false; ClsVentas objVentas = new ClsVentas(); - if (!objVentas.UpdateLineasAdicionales(CveLineaAdicionalActualzarEstatus, "-1", -1, -1, -1, -1, -1, MinFecha, 100, -1, 3, UsuarioActual.CveEmpresa)) + if (!objVentas.UpdateLineasAdicionales(CveLineaAdicionalActualzarEstatus, "-1", -1, -1, -1, -1, -1, MinFecha, 100, -1, UsuarioActual.CveEmpresa,CveVenta:CveVenta,CveLineaAdicionalEstatus:2)) { errorCambioEstatus = true; } @@ -278,12 +280,12 @@ public partial class Ventas_RepLineasAdicionales : ClsPaginas { if(e.Row.RowType == DataControlRowType.DataRow) { - if(e.Row.DataKey("CveEstatus").ToEntero().Contiene(2)) + if(e.Row.DataKey("CveLineaAdicionalEstatus").ToEntero().Contiene(1) && e.Row.DataKey("CveVenta").ToEntero() > 0) { e.Row.FCLinkButton("LnkCambiarEstatus").Visible = true; } - if (e.Row.DataKey("CveEstatus").ToEntero() == 3) + if (e.Row.DataKey("CveLineaAdicionalEstatus").ToEntero() == 2) { e.Row.FCLinkButton("LnkCargarComprobante").Visible = false; } From bbe0ea663cdb75126cf8f532c68ef13ec37ba1ed Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Fri, 30 Sep 2022 09:42:56 -0700 Subject: [PATCH 2/9] Bloquear acceso a empersa por url cuando no se es administrador --- Sistemas/Empresa.aspx.vb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Sistemas/Empresa.aspx.vb b/Sistemas/Empresa.aspx.vb index 0e19d9054..b095f668a 100644 --- a/Sistemas/Empresa.aspx.vb +++ b/Sistemas/Empresa.aspx.vb @@ -6,6 +6,7 @@ Imports Extensiones Imports System.Runtime.InteropServices Imports System.IO Imports Microsoft.Reporting.WebForms +Imports Microsoft.Owin.Security.Provider Partial Class Sistemas_Empresa Inherits ClsPaginas @@ -152,6 +153,18 @@ Partial Class Sistemas_Empresa Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then + + If UsuarioActual.CveRol <> 1 AndAlso (Request("CveEmpresa") IsNot Nothing AndAlso Request("CveEmpresa").ToEntero > 0) Then + + If Not ValidaCveEmpresaUsaurio(UsuarioActual.CveUsuario, Request("CveEmpresa").ToEntero) Then + 'Response.Redirect("../Inicio.aspx") + Alert("No tiene acceso a esta empresa.", TipoMensaje.MsgAdvertencia, "document.location.href = ""../Inicio.aspx""") + Exit Sub + End If + + + End If + CargaDdlPac() CargaRegimenFiscal() CargaGridIndicadores() @@ -159,6 +172,7 @@ Partial Class Sistemas_Empresa DtFuncionalidades = Nothing DtCuentas = Nothing CveClasificacionPorcentaje = 0 + If (Request("CveEmpresa") IsNot Nothing AndAlso IsNumeric(Request("CveEmpresa")) AndAlso Request("CveEmpresa").ToEntero > 0 AndAlso UsuarioActual.CveRol = 1) OrElse UsuarioActual.CveRol <> 1 Then ViewState("CveEmpresa") = If(UsuarioActual.CveRol <> 1, UsuarioActual.Empresa.CveEmpresa.ToString, Request("CveEmpresa")) ' Request("CveEmpresa") ' Session("FileUpload") = CveEmpresa @@ -207,6 +221,22 @@ Partial Class Sistemas_Empresa End If End Sub + Private Function ValidaCveEmpresaUsaurio(CveUsuario As Integer, CveEmpresaValidar As Integer) As Boolean + + Dim Respuesta As Boolean = False + Using ObjEmpresas As New ClsSisEmpresas() + If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1", UsuarioActual.CveUsuario) Then + If ObjEmpresas.DtResultados.FiltraParametros($"CveEmpresa = {CveEmpresaValidar}").Rows.Count = 1 Then + Respuesta = True + End If + End If + End Using + Return Respuesta + + End Function + + + Private Sub CargaDatos() Dim ObjEmpresas As New ClsSisEmpresas() From 6acac06ed772f99625ee4d7a7cbca8f6f1b442e0 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 30 Sep 2022 18:40:17 -0700 Subject: [PATCH 3/9] Cambios en lineas adicionales en ventas --- App_Code/ClsVentas.vb | 3 ++- Ventas/Ventas.aspx | 36 +++++++++++++------------ Ventas/Ventas.aspx.vb | 62 ++++++++++++++++++++++++++++--------------- 3 files changed, 62 insertions(+), 39 deletions(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 6af729f4c..916f8d655 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -5603,7 +5603,7 @@ Public Class ClsVentas End Function - Public Function GetLineasAdicionalesSaldo(CveLineaAdicional As Integer, CveCliente As Integer, CveProveedor As Integer, CveMoneda As Integer, CveEmpresa As Integer, Optional ConSaldo As Integer = -1) As Boolean + Public Function GetLineasAdicionalesSaldo(CveLineaAdicional As Integer, CveCliente As Integer, CveProveedor As Integer, CveMoneda As Integer, CveEmpresa As Integer, Optional ConSaldo As Integer = -1, Optional FechaVencimientoConsulta As DateTime = MaxFecha) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_LineasAdicionalesSaldoGet") @@ -5615,6 +5615,7 @@ Public Class ClsVentas .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@ConSaldo", SqlDbType.Int).Value = ConSaldo + .Add("@FechaVencimientoConsulta", SqlDbType.Date).Value = FechaVencimientoConsulta End With Try SqlAdapter.Fill(Data) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 180aa01e7..4f54a399f 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -713,6 +713,17 @@ + + Linea Adicional: + + + + + + + + + @@ -2406,7 +2417,8 @@
- + +
@@ -2417,12 +2429,12 @@
-
- Emitir + Emitir +
@@ -2431,8 +2443,8 @@
- - <%--
+ + <%--
@@ -3443,17 +3455,7 @@
- - - - - +
Linea Adicional: - - - - - -
Forma de entrega: @@ -7825,7 +7827,7 @@
- <%-- --%> + <%-- --%>
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index de40d3115..7df6471b7 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -2249,12 +2249,12 @@ Partial Class Ventas End Set End Property - Private Property CveClasificacionLineaAdicional As Integer + Private Property CveCategoriaLineaAdicional As Integer Get - Return IfNull(ViewState("CveClasificacionLineaAdicional"), "-1", ViewState("CveClasificacionLineaAdicional")).ToString().ToEntero() + Return IfNull(ViewState("CveCategoriaLineaAdicional"), "-1", ViewState("CveCategoriaLineaAdicional")).ToString().ToEntero() End Get Set(value As Integer) - ViewState("CveClasificacionLineaAdicional") = value + ViewState("CveCategoriaLineaAdicional") = value End Set End Property @@ -8844,11 +8844,21 @@ Partial Class Ventas 'VALIDAR LINEAS ADICIONALES If UsuarioActual.Empresa.Funcionalidad(705) = "1" AndAlso DdlLineaAdicional.SelectedValue.ToEntero() > 0 Then - 'VERIFICA QUE LA CLASIFICACION DE LOS PRODUCTOS DEBE SER LA MISMA DE LA LINEA ADICIONAL - If TmpDT IsNot Nothing AndAlso Me.CveClasificacionLineaAdicional > 0 Then - For Each Row As DataRow In TmpDT.FiltraParametros("", DistinctColumns:={"CveClasificacion", "Clasificacion"}).Rows - If Me.CveClasificacionLineaAdicional <> Row("CveClasificacion").ToString().ToEntero() Then - Alert($"La clasificación '{Row("Clasificacion")}' no pertenece a la linea adicional.", TipoMensaje.MsgAdvertencia) + 'VERIFICA QUE LA CATEGORIA DE LOS PRODUCTOS DEBE SER LA MISMA DE LA LINEA ADICIONAL + If TmpDT IsNot Nothing AndAlso Me.CveCategoriaLineaAdicional > 0 Then + For Each Row As DataRow In TmpDT.FiltraParametros("", DistinctColumns:={"CveClasificacion"}).Rows + Dim RowClasificacion = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=Row("CveClasificacion").ToString().ToEntero()).FiltroPrimero("") + + If RowClasificacion IsNot Nothing Then + Dim CveCategoria As Integer = Row("CveCategoria").ToString().ToEntero() + Dim Categoria As String = Row("Categoria").ToString() + + If Me.CveCategoriaLineaAdicional <> CveCategoria Then + Alert($"La categoría '{Categoria}' no pertenece a la linea adicional.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Else + Alert($"No se encontro la clasificación.", TipoMensaje.MsgAdvertencia) Exit Sub End If Next @@ -14683,12 +14693,12 @@ Partial Class Ventas End If 'Factura - If Not ObjEventos.AddEventoBitacora($"Remisión facturada : {ObjFactura.Folio}", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=ObjFactura.CveVenta) Then + If Not ObjEventos.AddEventoBitacora($"Venta facturada de Remisión: {ObjFactura.Folio}", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=ObjFactura.CveVenta) Then ErrorPrepoliza = True End If 'Remision - If Not ObjEventos.AddEventoBitacora($"Facturación de remisión en: {ObjFactura.Folio}", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveRemision) Then + If Not ObjEventos.AddEventoBitacora($"Remisión facturada en Venta: {ObjFactura.Folio}", "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveRemision) Then ErrorPrepoliza = True End If Next @@ -18079,11 +18089,11 @@ Partial Class Ventas If ObjVentas.GetLineasAdicionalesSaldo(-1, CveCliente, -1, DdlMoneda.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, ConSaldo:=-1) Then If ObjVentas.DtResultados.Rows.Count > 0 Then TrLineaAdicional.Visible = True - DdlLineaAdicional.DataSource = ObjVentas.DtResultados.FiltraParametros($"Saldo > 0 OR CveLineaAdicional = {Me.CveLineaAdicionalVenta}") + DdlLineaAdicional.DataSource = ObjVentas.DtResultados.FiltraParametros($"(Saldo > 0 AND FechaVencimiento <= {Now.ToString("dd/MM/yyyy")}) OR CveLineaAdicional = {Me.CveLineaAdicionalVenta}") End If End If Else - If ObjVentas.GetLineasAdicionalesSaldo(-1, CveCliente, -1, DdlMoneda.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, ConSaldo:=1) Then + If ObjVentas.GetLineasAdicionalesSaldo(-1, CveCliente, -1, DdlMoneda.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, ConSaldo:=1, FechaVencimientoConsulta:=Now) Then If ObjVentas.DtResultados.Rows.Count > 0 Then TrLineaAdicional.Visible = True DdlLineaAdicional.DataSource = ObjVentas.DtResultados @@ -18104,7 +18114,7 @@ Partial Class Ventas End If - UPCondicionesPago.Update() + UpParametros.Update() End Sub @@ -35302,26 +35312,36 @@ Partial Class Ventas If ObjVentas.DtResultados.Rows.Count > 0 Then TxtFechaPago.Text = ObjVentas.DtResultados.Rows(0)("FechaVencimiento").ToString().ToDateTime().ToString("dd/MM/yyyy") Me.SaldoLineaAdicional = ObjVentas.DtResultados.Rows(0)("Saldo").ToString().ToDecimal() - Me.CveClasificacionLineaAdicional = ObjVentas.DtResultados.Rows(0)("CveClasificacionPS").ToString().ToEntero() + Me.CveCategoriaLineaAdicional = ObjVentas.DtResultados.Rows(0)("CveCategoria").ToString().ToEntero() Me.CveMonedaLineaAdicional = ObjVentas.DtResultados.Rows(0)("CveMoneda").ToString().ToEntero() End If End If End Using Else Me.SaldoLineaAdicional = 0 - Me.CveClasificacionLineaAdicional = 0 + Me.CveCategoriaLineaAdicional = 0 End If - UPCondicionesPago.Update() + UpParametros.Update() End Sub Protected Sub LnkUpdateLineaAdicional_Click(sender As Object, e As EventArgs) 'VALIDAR LINEAS ADICIONALES If UsuarioActual.Empresa.Funcionalidad(705) = "1" AndAlso DdlLineaAdicional.SelectedValue.ToEntero() > 0 Then - 'VERIFICA QUE LA CLASIFICACION DE LOS PRODUCTOS DEBE SER LA MISMA DE LA LINEA ADICIONAL - If TmpDT IsNot Nothing AndAlso Me.CveClasificacionLineaAdicional > 0 Then - For Each Row As DataRow In TmpDT.FiltraParametros("", DistinctColumns:={"CveClasificacion", "Clasificacion"}).Rows - If Me.CveClasificacionLineaAdicional <> Row("CveClasificacion").ToString().ToEntero() Then - Alert($"La clasificación '{Row("Clasificacion")}' no pertenece a la linea adicional.", TipoMensaje.MsgAdvertencia) + 'VERIFICA QUE LA CATEGORIA DE LOS PRODUCTOS DEBE SER LA MISMA DE LA LINEA ADICIONAL + If TmpDT IsNot Nothing AndAlso Me.CveCategoriaLineaAdicional > 0 Then + For Each Row As DataRow In TmpDT.FiltraParametros("", DistinctColumns:={"CveClasificacion"}).Rows + Dim RowClasificacion = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=Row("CveClasificacion").ToString().ToEntero()).FiltroPrimero("") + + If RowClasificacion IsNot Nothing Then + Dim CveCategoria As Integer = Row("CveCategoria").ToString().ToEntero() + Dim Categoria As String = Row("Categoria").ToString() + + If Me.CveCategoriaLineaAdicional <> CveCategoria Then + Alert($"La categoría '{Categoria}' no pertenece a la linea adicional.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Else + Alert($"No se encontro la clasificación.", TipoMensaje.MsgAdvertencia) Exit Sub End If Next From 58c42f142997185ae1b30a2c5d8a2b452a938314 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 30 Sep 2022 18:42:25 -0700 Subject: [PATCH 4/9] Iniciar con foco en folio al buscar factura --- Ventas/PopUpBuscarFolio.aspx | 2 +- Ventas/PopUpBuscarFolio.aspx.vb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Ventas/PopUpBuscarFolio.aspx b/Ventas/PopUpBuscarFolio.aspx index 0345bb706..90f60f9a4 100644 --- a/Ventas/PopUpBuscarFolio.aspx +++ b/Ventas/PopUpBuscarFolio.aspx @@ -59,7 +59,7 @@
Folio: - + Folio Fiscal (UUID): diff --git a/Ventas/PopUpBuscarFolio.aspx.vb b/Ventas/PopUpBuscarFolio.aspx.vb index bdc26edb0..cabab782b 100644 --- a/Ventas/PopUpBuscarFolio.aspx.vb +++ b/Ventas/PopUpBuscarFolio.aspx.vb @@ -26,6 +26,8 @@ Partial Class PopUpBuscarFolio CargaClasificaciones() CargaPS(-1) 'CargaCodigoCliente() + + RegistraScript($"$('#{TxtFolio.ClientID}').focus();", "A1") End If End Sub From a08c401d09dee4a0a318bc3df8d8813f5a11cfb2 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 30 Sep 2022 18:44:48 -0700 Subject: [PATCH 5/9] Validacion de fecha de ajuste --- Ventas/PV.aspx | 3 ++- Ventas/PV.aspx.vb | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Ventas/PV.aspx b/Ventas/PV.aspx index 5cfaa7423..0e383970e 100644 --- a/Ventas/PV.aspx +++ b/Ventas/PV.aspx @@ -2959,7 +2959,7 @@
- +
@@ -3174,6 +3174,7 @@ +
diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index ef79851d5..c9c50c886 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -7130,12 +7130,22 @@ Partial Class PV 'End Sub Private Function CalculaMesesUso() As Boolean - Dim FechaI As Date = TxtFechaAjuste.Text.ToDate.AddDays(1) + Dim FechaI As Date = Now + + If IsDate(TxtFechaAjuste.Text) Then + FechaI = TxtFechaAjuste.Text.ToDate.AddDays(1) + Else + TxtMesesUso.Text = "" + Alert("La fecha de ajuste no tiene el formato correcto", TipoMensaje.MsgAdvertencia) + Return False + End If + Dim FechaF As Date = Now If FechaI.AddDays(-1) > FechaF Then + TxtMesesUso.Text = "" TxtFechaAjuste.Text = FechaF.ToString("dd/MM/yyyy") - Alert("La fecha de ajuste debe ser menor a la fecha actual", TipoMensaje.ToastAdventencia) + Alert("La fecha de ajuste debe ser menor a la fecha actual", TipoMensaje.MsgAdvertencia) Return False End If From c15c18a64563974a6c88149874947e6b81177497 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 30 Sep 2022 18:45:13 -0700 Subject: [PATCH 6/9] Correcion de reporte de entradas y salidas de usados --- Empresas/140/Formatos/RepEntradasUsados.rdlc | 35 ++++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/Empresas/140/Formatos/RepEntradasUsados.rdlc b/Empresas/140/Formatos/RepEntradasUsados.rdlc index 535e4b852..9ff9577d8 100644 --- a/Empresas/140/Formatos/RepEntradasUsados.rdlc +++ b/Empresas/140/Formatos/RepEntradasUsados.rdlc @@ -25,10 +25,18 @@ CodigoPS System.String + + Inicial + System.String + E_Almacen System.String + + E_Pub + System.String + E_Traspaso System.String @@ -37,6 +45,10 @@ E_Compra System.String + + E_Otros + System.String + S_Almacen System.String @@ -537,17 +549,18 @@ - + true true - 0 + =Fields!Inicial.Value @@ -556,7 +569,7 @@ - TipoAgrupador + Inicial @@ -630,7 +643,7 @@ - Paqueteria1 + E_Pub @@ -741,7 +754,7 @@ - Fecha + E_Otros + + + + + + Textbox3 + 0.90692in + 5.67236in + 0.5cm + 2.23561in + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.67236in + 0.5cm + 2.23561in + 1 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.67236in + 0.60856cm + 2.23561in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!TipoDocumento.Value + + + + + + + Textbox3 + 0.0412cm + 5.67236in + 0.5cm + 2.23561in + 3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + COYOTIRE + + + + + + + + + R.F.C. COYO010101AAA + + + + 0cm + 0cm + + + + + + Olivares 466 Col. Santa Isabe C.P. 83130 + + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)1890411 + + + + 0cm + 0cm + + + + Textbox4 + 0.0635cm + 1.41912in + 1.04333in + 4.18732in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.67236in + 0.25114in + 2.23561in + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.67236in + 0.25635in + 2.23561in + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.12527cm + + + 2.02474cm + + + 10.17786cm + + + 2.52862cm + + + 3.15415cm + + + + + 0.6cm + + + + + true + true + + + + + Cantidad + + + + + + + Textbox34 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Textbox53 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox79 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P. Unitario + + + + + + + Textbox84 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " &Fields!Obs.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.16344cm + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.5569cm + 0.11468cm + 1.25761cm + 20.01064cm + 13 + + + + + + true + + + + + RFC: + + + + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.81609in + + + 0.69462in + + + 0.72263in + + + + + 0.19645in + + + + + true + true + + + + + Impuesto + + + + + + + Textbox22 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa + + + + + + + Textbox15 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox29 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.65189in + 5.68499in + 0.34081in + 2.23334in + 15 + + + + + + + + + 3.11466cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.48915cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + + ImpuestoLocal + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 5.83876cm + 14.4684cm + 0.6cm + 5.60381cm + 16 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84979cm + 0.14053cm + 1.2cm + 14.32787cm + 17 + + + + + + Embedded + Logo1 + FitProportional + 2.71356cm + 3.49873cm + 18 + + + + + + true + true + + + + + Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 8.06008cm + + + + + + + + =CDate(Today).ToString("dd/MM/yyyy") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + + + + + + + Textbox3 + 0.90692in + 5.67236in + 0.5cm + 2.23561in + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.67236in + 0.5cm + 2.23561in + 1 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.67236in + 0.60856cm + 2.23561in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!TipoDocumento.Value + + + + + + + Textbox3 + 0.0412cm + 5.67236in + 0.5cm + 2.23561in + 3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + COYOTIRE + + + + + + + + + R.F.C. COYO010101AAA + + + + 0cm + 0cm + + + + + + Olivares 466 Col. Santa Isabe C.P. 83130 + + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)1890411 + + + + 0cm + 0cm + + + + Textbox4 + 0.0635cm + 1.41912in + 1.04333in + 4.18732in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!CadenaOriginal.Value + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!QR.Value + FitProportional + 5.47055in + 0.04026in + 1.3497in + 1.5531in + 6 + + + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.67236in + 0.25114in + 2.23561in + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.67236in + 0.25635in + 2.23561in + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio Fiscal: + + + + + + + Textbox54 + 5.47132in + 1.6628in + 0.18056in + 4.02473in + 15 + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + No. Serie del Certificado del SAT: + + + + + + + Textbox54 + 5.66577in + 1.6628in + 0.21105in + 4.02473in + 16 + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha y Hora de certificación: + + + + + + + Textbox54 + 5.87682in + 1.6628in + 0.19444in + 4.01804in + 17 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Certificado del Contribuyente: + + + + + + + Textbox54 + 6.08243in + 1.6628in + 0.19445in + 4.02473in + 18 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FechaCertificacion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!CertificadoContribuyente.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Régimen: Régimen General de Ley Personas Morales; Condiciones de pago: + + + + =IIF(Parameters!CondicionPago.Value.ToString="","No Identificado",Parameters!CondicionPago.Value) + + + + ; Método de Pago: + + + + =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) + + + + ; Num. Cta Pago: + + + + =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Éste documento es una representacion impresa de un CFDi + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.12527cm + + + 2.02474cm + + + 10.17786cm + + + 2.52862cm + + + 3.15415cm + + + + + 0.6cm + + + + + true + true + + + + + Cantidad + + + + + + + Textbox34 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Textbox53 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox79 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P. Unitario + + + + + + + Textbox84 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " &Fields!Obs.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.16344cm + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.5569cm + 0.11468cm + 1.25761cm + 20.01064cm + 25 + + + + + + true + + + + + RFC: + + + + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.81609in + + + 0.69462in + + + 0.72263in + + + + + 0.19645in + + + + + true + true + + + + + Impuesto + + + + + + + Textbox22 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa + + + + + + + Textbox15 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox29 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.65189in + 5.68499in + 0.34081in + 2.23334in + 27 + + + + + + + + + 3.11466cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.48915cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + + ImpuestoLocal + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 5.83876cm + 14.4684cm + 0.6cm + 5.60381cm + 28 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + Forma de pago: + + + + + + + Textbox130 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FormaPago.Value + + + + + + + Textbox131 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + Uso CFDI: + + + + + + + Textbox2 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!UsoCFDI.Value + + + + + + + Textbox44 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.8cm + + + + + true + true + + + + + Sello digital del CFDI: + + + + + + + Textbox132 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SelloCFDI.Value + + + + + + + Textbox133 + + + Top + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.2cm + + + + + true + true + + + + + Sello del SAT: + + + + + + + Textbox134 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SelloSAT.Value + + + + + + + Textbox135 + + + Top + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84979cm + 0.14053cm + 5.4cm + 14.32787cm + 29 + + + + + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 0.11382cm + 0.05336cm + 0.54004cm + 20.00281cm + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox29 + 0.83025cm + 4.33636cm + 0.41981cm + 5.31841cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!TipoRelacionTexto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.42456cm + + + 2.05585cm + + + 3.03631cm + + + 7.7847cm + + + + + 0.44125cm + + + + + true + true + + + + + Folio + + + + + + + Textbox10 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox21 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox11 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.41479cm + + + + + true + true + + + + + =Fields!SerieFolio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Fecha.Value + + + + + + + Fecha + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet4 + 1.39643cm + 2.83462cm + 0.85604cm + 15.30142cm + 3 + + + + + + true + 17.40531cm + 0.04112cm + 2.25247cm + 20.1554cm + 30 + + =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) + + + + + + + true + true + + + + + Cadena original del complemento de certificación digital del SAT: + + + + + + + Textbox1 + 11.26418cm + 0.14053cm + 0.6cm + 19.93168cm + 31 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + VERSION + + + + =Parameters!CFDIVersion.Value + + + + + + + Textbox5 + 19.75983cm + 15.68372cm + 0.56043cm + 4.49042cm + 32 + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo1 + FitProportional + 2.71356cm + 3.49873cm + 33 + + + + + + true + true + + + + + Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 20.32026cm + + + + + + + + =CDate(Today).ToString("dd/MM/yyyy") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + + + + + + + Textbox3 + 0.90692in + 5.67236in + 0.5cm + 2.23561in + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.67236in + 0.5cm + 2.23561in + 1 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.67236in + 0.60856cm + 2.23561in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!TipoDocumento.Value + + + + + + + Textbox3 + 0.0412cm + 5.67236in + 0.5cm + 2.23561in + 3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + COYOTIRE + + + + + + + + + R.F.C. COYO010101AAA + + + + 0cm + 0cm + + + + + + Olivares 466 Col. Santa Isabe C.P. 83130 + + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)1890411 + + + + 0cm + 0cm + + + + Textbox4 + 0.0635cm + 1.41912in + 1.04333in + 4.18732in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.67236in + 0.25114in + 2.23561in + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.67236in + 0.25635in + 2.23561in + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.12527cm + + + 2.02474cm + + + 10.17786cm + + + 2.52862cm + + + 3.15415cm + + + + + 0.6cm + + + + + true + true + + + + + Cantidad + + + + + + + Textbox34 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Textbox53 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox79 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P. Unitario + + + + + + + Textbox84 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " &Fields!Obs.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.16344cm + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.5569cm + 0.11468cm + 1.25761cm + 20.01064cm + 13 + + + + + + true + + + + + RFC: + + + + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.81609in + + + 0.69462in + + + 0.72263in + + + + + 0.19645in + + + + + true + true + + + + + Impuesto + + + + + + + Textbox22 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa + + + + + + + Textbox15 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox29 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.65189in + 5.68499in + 0.34081in + 2.23334in + 15 + + + + + + + + + 3.11466cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.48915cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + + ImpuestoLocal + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 5.83876cm + 14.4684cm + 0.6cm + 5.60381cm + 16 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84979cm + 0.14053cm + 1.2cm + 14.32787cm + 17 + + + + + + Embedded + Logo1 + FitProportional + 2.71356cm + 3.49873cm + 18 + + + + + + true + true + + + + + Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 8.06008cm + + + + + + + + =CDate(Today).ToString("dd/MM/yyyy") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + + + + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + CLAVE + + + + + + + Textbox29 + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + DESCRIPCIÓN + + + + + + + Textbox17 + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + OBSERVACIÓN + + + + + + + Textbox46 + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P/U + + + + + + + Textbox23 + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + DESC. + + + + + + + Textbox2 + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + IMPORTE + + + + + + + Textbox1 + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.19644in + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!CodPS.Value + + + + + + + CodPS + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Producto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Obs.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Descuento.Value + + + + + + + Descuento + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Total.Value + + + + + + + Total + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsOC + 0.04788in + 0.41372in + 8.15357in + + + + + + + + true + true + + + + + I.V.A. + + + + + + + Textbox20 + 1.87711cm + 15.76748cm + 0.45183cm + 2.5cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + TOTAL: + + + + + + + Textbox20 + 3.97642cm + 15.77277cm + 0.45183cm + 2.5cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!IVA.Value + + + + + + + Textbox20 + 1.87711cm + 18.26748cm + 0.45183cm + 2.4365cm + 2 + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + =Parameters!Total.Value + + + + + + + Textbox20 + 3.97642cm + 18.27277cm + 0.45183cm + 2.43121cm + 3 + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + SUB-TOTAL + + + + + + + Textbox20 + 0.40195cm + 15.76748cm + 0.45183cm + 2.5cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SubTotal.Value + + + + + + + Textbox20 + 0.40195cm + 18.26748cm + 0.45183cm + 2.4365cm + 5 + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + =UCase(Parameters!ImporteLetra.Value) + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #0e2455 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Descripcion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ret I.V.A + + + + + + + Textbox20 + 2.32894cm + 15.76669cm + 0.45183cm + 2.5cm + 11 + + =IIF(Parameters!RetIVA.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!RetIVA.Value + + + + + + + Textbox20 + 2.32894cm + 18.26669cm + 0.45183cm + 2.4365cm + 12 + + =IIF(Parameters!RetIVA.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + Ret I.S.R + + + + + + + Textbox20 + 2.78077cm + 15.76669cm + 0.45183cm + 2.5cm + 13 + + =IIF(Parameters!RetISR.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!RetISR.Value + + + + + + + Textbox20 + 2.78077cm + 18.26669cm + 0.45183cm + 2.4365cm + 14 + + =IIF(Parameters!RetISR.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + I.E.P.S + + + + + + + Textbox20 + 3.2326cm + 15.76669cm + 0.45183cm + 2.5cm + 15 + + =IIF(Sum(Fields!IEPS.Value, "DsOC") > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Sum(Fields!IEPS.Value, "DsOC") + + + + + + + Textbox20 + 3.2326cm + 18.26669cm + 0.45183cm + 2.4365cm + 16 + + =IIF(Sum(Fields!IEPS.Value, "DsOC") > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + DESCUENTO + + + + + + + Textbox20 + 0.88906cm + 15.77355cm + 0.45183cm + 2.5cm + 17 + + =IIF(Parameters!Descuento.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Descuento.Value + + + + + + + Textbox20 + 0.88906cm + 18.27355cm + 0.45183cm + 2.4365cm + 18 + + =IIF(Parameters!Descuento.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + true + + + + + SUB-TOTAL2 + + + + + + + Textbox20 + 1.34089cm + 15.77355cm + 0.45183cm + 2.5cm + 19 + + =IIF(Parameters!Descuento.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SubTotal2.Value + + + + + + + Textbox20 + 1.34089cm + 18.27355cm + 0.45183cm + 2.4365cm + 20 + + =IIF(Parameters!Descuento.Value > 0,FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + true + 1.12516cm + 0.12849cm + 5.34083cm + 20.74271cm + 1 + + + + + + 2.58039in + + + + + + true + true + + + + + Proveedor + + + + : + + + + + + + + + Nombre + + + + : + + + + + + + + =Parameters!ProveedorNombre.Value + + + + + + + + + RFC: + + + + + + + + =Parameters!ProveedorRFC.Value + + + + + + + + + Direccion: + + + + =Parameters!ProveedorDireccion.Value + + + + + + + + + Teléfono: + + + + =Parameters!ProveedorTel.Value + + + + + + + + + Contacto: + + + + =Parameters!ProveedorContacto.Value + + + + + + + + + + + Textbox2 + 1.60003in + 0.12161cm + 1.20291in + 3.07995in + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Enviar a: + + + + + + + + + Nombre: + + + + =Parameters!EnvioContacto.Value + + + + + + + + + + + + + Departamento: + + + + =Parameters!EnvioDepartamento.Value + + + + + + + + + Calle: + + + + + + + + =Parameters!EnvioDireccion.Value + + + + + + + + + Colonia: + + + + + + + + =Parameters!EnvioColonia.Value + + + + + + + + + Ciudad: + + + + + + + + =Parameters!EnvioCiudad.Value + + + + + + + + Estado: + + + + + + + + =Parameters!EnvioEstado.Value + + + + + + + + + Municipio y/o Delegación: + + + + =Parameters!EnvioCiudad.Value + + + + + + + + + + + + + Pais: + + + + + + + + =Parameters!ProveedorPais.Value + + + + + + + + + + + + + + + + CP: + + + + + + + + =Parameters!EnvioCP.Value + + + + + + + + + Teléfono: + + + + + + + + =Parameters!EnvioTel.Value + + + + + + + + + + + + + Pedido/Contrato: + + + + =Parameters!PedidoContrato.Value + + + + + + + Textbox36 + 4.06406cm + 7.94469cm + 4.25633cm + 8.32364cm + 2 + + =IIF(String.IsNullOrEmpty(Parameters!LugarEntrega.Value),False,True) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Facturar a: + + + + + + + + + Compuproveedores, S.A. de C.V. + + + + + + + + + =Parameters!DomicilioSucursal.Value + + + + + + + + + COM890602EE8 + + + + + + + + + ="(" & Parameters!Telefono.Value.ToString().Substring(0,3) & ") " & Parameters!Telefono.Value.ToString().Substring(3) + + + + + + + + + + + + + + + + + + CFDI 3.3: + + + + + + + + + =Parameters!UsoCFDI.Value + + + + + + + Textbox40 + 4.06406cm + 16.26833cm + 4.25633cm + 4.55726cm + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Envío Directo al Cliente" + + + + + + + EstatusEntrega + 1.27043cm + 4.61876cm + 0.6cm + 5.51419cm + 4 + + =IIF(Parameters!EntregaDirecta.Value <> "False",FALSE,TRUE) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + + + + + + =Parameters!TipoOC.Value + + + + + + + + + Folio: + + + + =Parameters!Folio.Value + + + + + + + + + Almacen: + + + + =Parameters!Proyecto.Value + + + + + + + + + Fecha de ElaboracIón: + + + + =Parameters!FechaSolicitud.Value + + + + + + + + + Fecha Estimada de Recepción: + + + + =iif(Parameters!FechaEntrega.Value="01/01/0001","",Parameters!FechaEntrega.Value) + + + + + + + + + + + + + Folio Pedido Proveedor: + + + + =Parameters!FolioAdicional.Value + + + + + + + + + Asignado a: + + + + =Parameters!Comprador.Value + + + + + + + + + Coordinador Empresarial: + + + + + + + + =Parameters!Vendedor.Value + + + + + + + Textbox40 + 0.16794cm + 12.50129cm + 3.79029cm + 8.3243cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Enviar a: + + + + + + + + + Dirección: + + + + =Parameters!LugarEntrega.Value + + + + + + + + + + + + + + + + + + + + Textbox36 + 4.09934cm + 7.94469cm + 4.25633cm + 8.32364cm + 7 + + =IIF(String.IsNullOrEmpty(Parameters!LugarEntrega.Value),True,False) + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + 0.84696cm + true + true + + + true + true + + + + + Usuario: + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + =Parameters!FechaImpresion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox35 + 0.25252cm + 18.19908cm + 0.41981cm + 2.5cm + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0cm + 0cm + 0cm + 0.5cm + 0.13cm + @@ -179,7 +178,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -200,7 +199,6 @@ CLAVE @@ -216,7 +214,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -237,7 +235,6 @@ DESCRIPCIÓN @@ -253,7 +250,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -274,7 +271,6 @@ OBSERVACIÓN @@ -290,7 +286,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -311,7 +307,6 @@ P/U @@ -327,7 +322,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -348,7 +343,6 @@ DESC. @@ -364,7 +358,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -385,7 +379,6 @@ IMPORTE @@ -401,7 +394,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -413,7 +406,7 @@ - 0.19644in + 0.15024in @@ -690,7 +683,7 @@ DsOC 0.04788in - 0.41372in + 0.36752in 8.15357in @@ -719,9 +713,9 @@ Textbox20 - 1.87711cm + 1.36911cm 15.76748cm - 0.45183cm + 0.346cm 2.5cm @@ -752,9 +747,9 @@ Textbox20 - 3.97642cm + 3.11917cm 15.77277cm - 0.45183cm + 0.31777cm 2.5cm 1 @@ -860,7 +858,7 @@ Textbox20 - 0.40195cm + 0.08445cm 15.76748cm 0.45183cm 2.5cm @@ -884,6 +882,7 @@ =Parameters!SubTotal.Value @@ -929,7 +929,7 @@ Textbox46 - 4.85549cm + 3.77599cm 0.00001cm 0.45183cm 19.46272cm @@ -959,7 +959,6 @@ Textbox5 - 0.11768cm 0.14316cm 20.70398cm 7 @@ -967,7 +966,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -982,14 +981,16 @@ - - #0e2455 + Orange 2pt 2pt 2pt @@ -1013,14 +1014,16 @@ - - #0e2455 + Orange 2pt 2pt 2pt @@ -1054,7 +1057,7 @@ Textbox1 - 0.43723cm + 0.11973cm 0.00001cm 0.41479cm 14.67376cm @@ -1078,6 +1081,7 @@ Ret I.V.A @@ -1088,9 +1092,9 @@ Textbox20 - 2.32894cm + 1.75744cm 15.76669cm - 0.45183cm + 0.346cm 2.5cm 11 @@ -1115,6 +1119,7 @@ =Parameters!RetIVA.Value @@ -1165,9 +1171,9 @@ Textbox20 - 2.78077cm + 2.14577cm 15.76669cm - 0.45183cm + 0.346cm 2.5cm 13 @@ -1192,6 +1198,7 @@ =Parameters!RetISR.Value @@ -1242,9 +1250,9 @@ Textbox20 - 3.2326cm + 2.5341cm 15.76669cm - 0.45183cm + 0.33368cm 2.5cm 15 @@ -1269,6 +1277,7 @@ =Sum(Fields!IEPS.Value, "DsOC") @@ -1319,9 +1329,9 @@ Textbox20 - 0.88906cm + 0.57156cm 15.77355cm - 0.45183cm + 0.346cm 2.5cm 17 @@ -1346,6 +1356,7 @@ =Parameters!Descuento.Value @@ -1396,9 +1408,9 @@ Textbox20 - 1.34089cm + 0.95989cm 15.77355cm - 0.45183cm + 0.35983cm 2.5cm 19 @@ -1423,6 +1435,7 @@ =Parameters!SubTotal2.Value - 2.58039in + 2.10747in - - - true true @@ -1669,399 +1668,8 @@ Textbox2 1.60003in 0.12161cm - 1.20291in - 3.07995in - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Enviar a: - - - - - - - - - Nombre: - - - - =Parameters!EnvioContacto.Value - - - - - - - - - - - - - Departamento: - - - - =Parameters!EnvioDepartamento.Value - - - - - - - - - Calle: - - - - - - - - =Parameters!EnvioDireccion.Value - - - - - - - - - Colonia: - - - - - - - - =Parameters!EnvioColonia.Value - - - - - - - - - Ciudad: - - - - - - - - =Parameters!EnvioCiudad.Value - - - - - - - - Estado: - - - - - - - - =Parameters!EnvioEstado.Value - - - - - - - - - Municipio y/o Delegación: - - - - =Parameters!EnvioCiudad.Value - - - - - - - - - - - - - Pais: - - - - - - - - =Parameters!ProveedorPais.Value - - - - - - - - - - - - - - - - CP: - - - - - - - - =Parameters!EnvioCP.Value - - - - - - - - - Teléfono: - - - - - - - - =Parameters!EnvioTel.Value - - - - - - - - - - - - - Pedido/Contrato: - - - - =Parameters!PedidoContrato.Value - - - - - - - Textbox36 - 4.06406cm - 7.94469cm - 4.25633cm - 8.32364cm - 2 - - =IIF(String.IsNullOrEmpty(Parameters!LugarEntrega.Value),False,True) - + 1.06583in + 3.72333in @@ -2081,7 +1689,7 @@ Facturar a: @@ -2094,7 +1702,7 @@ - Compuproveedores, S.A. de C.V. + Citrus Game, S.A. de C.V. - - - - - - - - =Parameters!UsoCFDI.Value + @@ -2199,10 +1792,10 @@ Textbox40 4.06406cm - 16.26833cm - 4.25633cm - 4.55726cm - 3 + 12.50129cm + 2.70722cm + 8.3243cm + 1 @@ -2213,46 +1806,6 @@ 2pt - - true - true - - - - - ="Envío Directo al Cliente" - - - - - - - EstatusEntrega - 1.27043cm - 4.61876cm - 0.6cm - 5.51419cm - 4 - - =IIF(Parameters!EntregaDirecta.Value <> "False",FALSE,TRUE) - - - - 2pt - 2pt - 2pt - 2pt - - true true @@ -2302,6 +1855,7 @@ =Parameters!Folio.Value @@ -2468,7 +2022,7 @@ 12.50129cm 3.79029cm 8.3243cm - 5 + 2 @@ -2479,121 +2033,21 @@ 2pt - - true - true - - - - - - - 2pt - 2pt - 2pt - 2pt - - - true - true - - - - - Enviar a: - - - - - - - - - Dirección: - - - - =Parameters!LugarEntrega.Value - - - - - - - - - - - - - - - - - - - - Textbox36 - 4.09934cm - 7.94469cm - 4.25633cm - 8.32364cm - 7 - - =IIF(String.IsNullOrEmpty(Parameters!LugarEntrega.Value),True,False) - - - - 2pt - 2pt - 2pt - 2pt - - + - - - Conciliacion Emitidas Sat - - - - - - - - - - - - - -
-
-
- - -
-
-
- - -
- - - - - - - -
-
- Fecha Inicio: -
-
-
- - - - -
- - - - - - -
-
- Fecha Fin: -
-
-
- - - - -
- - - - - - -
-
-
-
- -
-
-
- -
-
-
- - Facturas emitidas en el sat sin registrar de -
-
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- --%> - XML - - - - - r - - - - - - -
-
- - - -
-
- -
- - - - diff --git a/Ventas/RepConciliacionEmitidosSat.aspx.cs b/Ventas/RepConciliacionEmitidosSat.aspx.cs deleted file mode 100644 index 7cf8cc869..000000000 --- a/Ventas/RepConciliacionEmitidosSat.aspx.cs +++ /dev/null @@ -1,1808 +0,0 @@ -using Microsoft.Reporting.WebForms; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Xml; -using Extensiones; -using System.Data; -using System.Text; -using ADSistemaLibrary2.SatXml; - -//using ADS_CFDI_SAT; - -public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas -{ - #region "Propiedades" - const string rqFechaInicio = "FechaInicio"; - const string rqFechaFin = "FechaFin"; - const string rqRegistroEn = "RegistroEn"; - - public string RfechaI - { - get - { - return ViewState["RfechaI"].ToString(); - } - set { ViewState["RfechaI"] = value; } - } - public string RfechaF - { - get - { - return ViewState["RfechaF"].ToString(); - } - set { ViewState["RfechaF"] = value; } - } - public object CurrentRow - { - get - { - return ViewState["CurrentRow"]; - } - set { ViewState["CurrentRow"] = value; } - } - public int RegistroEn - { - get - { - if (ViewState["RegistroEn"] != null) - { - return ViewState["RegistroEn"].ToString().ToEntero(); - } - else - { - return 0; - } - } - set { ViewState["RegistroEn"] = value; } - } - private StringBuilder strErrores; - #endregion - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - string path; - if (Request["op"] != null && Request["op"].ToString().Length > 0) - { - try - { - - if (System.IO.File.Exists((path = string.Format("{0}\\{1}", UsuarioActual.Empresa.Ruta.Trim(), Extensiones.ModExtensiones.Decripta(Request["op"].ToString()).Trim()).Replace("/", "\\")))) - { - - System.IO.FileInfo archivo = new System.IO.FileInfo(path); - - HttpContext.Current.Response.Clear(); - HttpContext.Current.Response.ClearContent(); - HttpContext.Current.Response.ContentType = "text/plain"; - HttpContext.Current.Response.AppendHeader("Content-disposition", string.Format("attachment; filename={0}", archivo.Name)); - HttpContext.Current.Response.AddHeader("Content-Length", archivo.Length.ToString()); - HttpContext.Current.Response.TransmitFile(path); - HttpContext.Current.Response.End(); - } - else - { - RegistraScript("window.close()"); - } - } - catch (Exception ex) - { - Extensiones.ModExtensiones.GuardaLog(ex.ToString()); - RegistraScript("window.close()"); - - } - - } - - fillrequestfields(); - DdlSubProyectoDatos.DataSource = get_GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros("EsSucursal = True "); - DdlSubProyectoDatos.DataBind(); - DdlClasificacion.DataSource = get_GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion: 1).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby: "Clasificacion"); - - DdlClasificacion.DataBind(); - - - CargaConciliacionemitidasSATGet(); - int CveClasificacion = DdlClasificacion.SelectedValue.ToEntero(); - if (UsuarioActual.Empresa.Funcionalidad(141).ToString() == "1") - { - - DdlPS.setEsWebService(true); - DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString()); - DdlPS.ddlWS.Attributes.Add("data-pagina", "ventas/ventas"); - DdlPS.ddlWS.Attributes.Add("data-Estatus", "1"); - } - else - { - - DdlPS.setEsWebService(false); - DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: CveClasificacion, Estatus: 1, AplicaParaVenta: 1); - DdlPS.ddl.DataBind(); - } - } - } - private void downfile(string path) - { - - } - public void fillrequestfields() - { - - DateTime fecha; - DateTime fechaInicio = DateTime.Now; - DateTime fechaFin = DateTime.Now; - RegistroEn = -1; - if (fechaInicio.Day < 5) { fechaInicio = fechaInicio.AddMonths(-1); } - fechaInicio = fechaInicio.AddDays(1 - fechaInicio.Day); - fechaFin = fechaInicio.AddYears(1).AddDays(-1); - if (Request[rqRegistroEn] != null) { RegistroEn = Request[rqRegistroEn].ToEntero(); } - if (Request[rqFechaInicio] != null) { DateTime.TryParse(Request[rqFechaInicio], out fecha); fechaInicio = fecha.Year > 1900 ? fecha : fechaInicio; } - if (Request[rqFechaFin] != null) { DateTime.TryParse(Request[rqFechaFin], out fecha); fechaFin = fecha.Year > 1900 ? fecha : fechaFin; } - txtFechaI.Text = string.Format("{0:dd/MM/yyyy}", fechaInicio); - txtFechaF.Text = string.Format("{0:dd/MM/yyyy}", fechaFin); - ddlRegistroen.SelectedValueExist(RegistroEn); - } - - protected void CargaRepConciliacionSatGET() - { - string RtipoDocto; - RtipoDocto = "I"; - RfechaI = txtFechaI.Text.Length > 0 ? txtFechaI.Text.ToDateTime().ToString("yyyy/MM/dd") : ""; - RfechaF = txtFechaF.Text.Length > 0 ? string.Format("{0:yyyy/MM/dd}", txtFechaF.Text.ToDateTime()) : ""; - RegistroEn = ddlRegistroen.SelectedValue.ToEntero(); - using (ClsGenerales ObjRepC = new ClsGenerales()) - { - if (ObjRepC.RepConciliacionSatDetalleGET(UsuarioActual.CveEmpresa, RtipoDocto, RfechaI, RfechaF, RegistroEn)) - { - Ltlsinregistrar.Text = $"{ObjRepC.DtResultados.COUNT("FolioFiscal", "CveVenta IS NULL")}"; - ltlTotal.Text = $"{ObjRepC.DtResultados.Rows.Count}"; - - } - GVConciliacionemitidasSAT.DataSource = ObjRepC.DtResultados; - ObjRepC.Dispose(); - - } - GVConciliacionemitidasSAT.DataBind(); - UpDatosReporte.Update(); - } - protected void CargaConciliacionemitidasSATGet() - { - CargaRepConciliacionSatGET(); - //ClsVentas ObjV = new ClsVentas(); - //ObjV.ConciliacionemitidasSATGet(UsuarioActual.CveEmpresa); - //GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados.FiltraParametros("", "CveVenta"); - //Ltlsinregistrar.Text = $"{ObjV.DtResultados.COUNT("FolioFiscal","CveVenta IS NULL")}"; - //ltlTotal.Text = $"{ObjV.DtResultados.Rows.Count}"; - //ObjV.Dispose(); - //GVConciliacionemitidasSAT.DataBind(); - //UpDatosReporte.Update(); - - } - private void registrarventa(GridViewRow gvrow) - { - - { - string rutaempresa = UsuarioActual.Empresa.Ruta.Trim().Replace("/", "\\"); - string rutafile = gvrow.DataKey("RutaXml").Trim().Replace("/", "\\"); - rutaempresa = rutaempresa.Substring(rutaempresa.Length - 1, 1) == "\\" ? rutaempresa.Substring(0, rutaempresa.Length - 1): rutaempresa; - rutafile = rutafile.Substring(0, 1) == "\\" ? rutafile.Substring(1): rutafile; - string ruta = string.Format("{0}\\{1}", rutaempresa, rutafile); //gvrow.DataKey("RutaXml"); - //Alert(ruta); - - //return false; - strErrores = new StringBuilder(); - XmlSatCFDI objxml = null; - Modelos.Factura objfact = null; - bool continuar = true; - objxml = XmlSatCFDI.readXML(ruta); - continuar = continuar && (objxml != null); - if (continuar) - { - - objfact = GetFacturaFromXML(objxml); - } - continuar = continuar && (objfact != null); - if (continuar) - { - - // Dim As New (ObjVentas.IniciaTransacSQL()) - // Dim As = Nothing - // Dim MensajeAlert = New StringBuilder - ClsVentas ObjVentas = new ClsVentas(); - ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); - ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); - ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); - ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); - ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); - ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); - ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); - ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); - ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); - ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); - ClsContPAQi ObjContPaq = null; - //StringBuilder MensajeAlert = new StringBuilder() ; - Modelos.Factura.MMensajeFactura Resp = new Modelos.Factura.MMensajeFactura(); - DataTable DtDetalle = objfact.DtDetalle; - try - { - objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, - ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, false, ObjAcum,ref Resp); - - } - catch (Exception e) - { - objfact.CveVenta = -1; - e.ToString().GuardaLog(); - strErrores.AppendLine("
"); - strErrores.AppendLine(e.ToString()); - } - if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) - if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) - { - ObjVentas.Commit(); - } - else - { - foreach (string item in objfact.ErrorList) - { - strErrores.AppendLine("
"); - strErrores.AppendLine(item); - } - objfact.CveVenta = -1; - ObjVentas.RollBack(); - } - ObjVentas.Dispose(); - ObjConta.Dispose(); - ObjInventario.Dispose(); - ObjCGame.Dispose(); - ObjContr.Dispose(); - ObjDocCliente.Dispose(); - ObjClientes.Dispose(); - ObjAcum.Dispose(); - - } - if (objfact != null && objfact.CveVenta > 0) - { - CargaConciliacionemitidasSATGet(); - Alert($"se ha agregado la factura correctamente.
Ver Factura ", ModExtensiones.TipoMensaje.ToastInformacion, timeout: 25); - } - else { continuar = false; } - if (!continuar) - { - Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); - } - } - - } - - protected void LnkRegistrar_Click(object sender, EventArgs e) - { - GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer); - CurrentRow = gvrow; - RegistraScript("$('#DModalDefaults').modal();"); - //registrarventa(gvrow); - //string ruta = gvrow.DataKey("RutaXml"); - //strErrores = new StringBuilder(); - //XmlSatCFDI objxml = null; - //Modelos.Factura objfact = null; - //bool continuar = true; - //objxml = XmlSatCFDI.readXML(ruta); - //continuar = continuar && (objxml != null); - //if (continuar) - //{ - - // objfact = GetFacturaFromXML(objxml); - //} - //continuar = continuar && (objfact != null); - //if (continuar) - //{ - - // // Dim As New (ObjVentas.IniciaTransacSQL()) - // // Dim As = Nothing - // // Dim MensajeAlert = New StringBuilder - // ClsVentas ObjVentas = new ClsVentas(); - // ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); - // ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); - // ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); - // ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); - // ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); - // ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); - // ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); - // ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); - // ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); - // ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); - // ClsContPAQi ObjContPaq = null; - // //StringBuilder MensajeAlert = new StringBuilder() ; - // try - // { - // objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref objfact.DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ObjAcum: ObjAcum); - - // } - // catch (Exception ) - // { - // objfact.CveVenta = -1; - // } - // if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) - // if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) - // { - // ObjVentas.Commit(); - // } - // else - // { - // foreach (string item in objfact.ErrorList) - // { - // strErrores.AppendLine("
"); - // strErrores.AppendLine(item); - // } - // objfact.CveVenta = -1; - // ObjVentas.RollBack(); - // } - // ObjVentas.Dispose(); - // ObjConta.Dispose(); - // ObjInventario.Dispose(); - // ObjCGame.Dispose(); - // ObjContr.Dispose(); - // ObjDocCliente.Dispose(); - // ObjClientes.Dispose(); - // ObjAcum.Dispose(); - - //} - //if (objfact != null && objfact.CveVenta > 0) - //{ - // CargaConciliacionemitidasSATGet(); - // Alert($"se ha agregado la factura correctamente.
Ver Factura ", ModExtensiones.TipoMensaje.ToastInformacion,timeout:25); - //} - //else { continuar = false; } - //if (!continuar) - //{ - // Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); - //} - } - - protected Modelos.Factura GetFacturaFromXML(XmlSatCFDI objxml) - { - int CvePsReconstruccion = DdlPS.SelectedValue.ToEntero(); - int CveSubProyectoReconstruccion = DdlSubProyectoDatos.SelectedValue.ToEntero(); - //Modelos.Factura.MMensajeFactura resp; - - string Moneda = objxml.comprobante.Moneda; - if (objxml.comprobante.Version == "3.2") - { - switch (Moneda) - { - case "Peso Mexicano": Moneda = "MXN"; break; - case "Dolar Americano": Moneda = "USD"; break; - } - - } - string formadepago = objxml.comprobante.FormaPago; - string metododepago = objxml.comprobante.MetodoPago; - if (objxml.comprobante.Version == "3.2") - { - switch (objxml.comprobante.MetodoPago)//si es correcto estan invertidos - { - case "TRANSFERENCIA ELECTRONICA": formadepago = "03"; break; - default: formadepago = objxml.comprobante.MetodoPago; break; - } - - } - if (objxml.comprobante.Version == "3.2") - { - switch (objxml.comprobante.FormaPago)//si es correcto estan invertidos - { - case "PAGO EN UNA SOLA EXHIBICION": metododepago = "PUE"; break; - default: metododepago = objxml.comprobante.FormaPago; break; - } - - } - - - Modelos.Factura objfact = new Modelos.Factura(UsuarioActual) - { - TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.TextoLimpio,//?que es esto - CveUsuario = UsuarioActual.CveUsuario, - CveEmpresa = UsuarioActual.CveEmpresa, - - FolioFiscal = objxml.complemento.UUID, - Serie = objxml.comprobante.Serie, - Folio = objxml.comprobante.Folio.ToEntero(),//Nota en el sat puede ser un string - Version = objxml.comprobante.Version, - TipoCambio = objxml.comprobante.TipoCambio, - //ConvertirPesos =false,//?para que sirve - MonedaSAT = objxml.comprobante.Moneda, - CveMoneda = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT= '{Moneda}' ").ToEntero(), - Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $" AbreviaturaSAT= '{Moneda}' "), - TipoDocto = objxml.comprobante.TipoDeComprobanteSIG, - RefDocto = "", - CveMesa = -1, - Fecha = DateTime.ParseExact(objxml.comprobante.Fecha, "yyyy-MM-ddTHH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), - CvePrePoliza = -1, - FechaPago = DateTime.Now, - MotivoDescuento = "", - FechaEjecucion = DateTime.Now, - UsuarioCreo = UsuarioActual.Usuario, - CveCondicionEntrega = -1, - CondicionEntrega = "", - NumeroCuenta = "", - CondicionesPago = 0, - FormaPago = 0, - PedidoContrato = "", - NumeroContrato = "", - DescripcionContrato = "", - CveCorte = -1, - TipoDocumento = objxml.comprobante.TipoDeComprobanteTexto, - Alfa1 = "", - Alfa2 = "", - Alfa3 = "", - CveContrato = -1 - }; - DataRow dr = get_GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1).FiltroPrimero(string.Format("Serie='{0}'", objfact.Serie)); - if (dr == null) { dr = get_GlobalDTSubProyectos(-1, CveSubProyectoReconstruccion, UsuarioActual.CveEmpresa, 1).Rows[0]; } - if (dr != null) - { - objfact.CveSubProyecto = dr["CveSubProyecto"].ToString().ToEntero(); - objfact.CveSubProyectoCobranza = dr["CveSubProyecto"].ToString().ToEntero(); - objfact.CveSubProyectoEjecucion = dr["CveSubProyecto"].ToString().ToEntero(); - objfact.SubProyecto = new Modelos.SubProyectoModel(dr); - objfact.SubProyectoMatriz = new Modelos.SubProyectoModel(get_GlobalDTSubProyectos(-1, CveSubProyecto: -1, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")); - - } - using (ClsClientes objClientes = new ClsClientes()) - { - if (objClientes.GetClientes(-1, "-1", "-1", "-1", objxml.receptor.Rfc, "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente: -1) && objClientes.DtResultados.Rows.Count > 0) - { - DataRow drCliente = objClientes.DtResultados.Rows[0]; - objfact.CveCliente = drCliente["CveCliente"].ToString().ToEntero(); - objfact.SetCliente(); - - - } - } - - objfact.CveAlmacen = -1; - objfact.CveFormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("CveFormaPago", $"ClaveFormaPagoSAT = '{formadepago}'").ToEntero(); - objfact.FormaPagoSAT33 = objxml.comprobante.FormaPago; - objfact.FormaPago33 = objxml.comprobante.FormaPagoTexto; - objfact.CveMetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero(); - objfact.CveMetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero(); - objfact.ClaveMetodoPagoSAT = objxml.comprobante.MetodoPago; - objfact.MetodoPago33 = objxml.comprobante.MetodoPagoTexto; - objfact.CveUsoCFDI = get_GlobalDTSATUsosCFDI(-1).FiltroPrimeroValor("CveUsoCFDI", $"UsoCFDI = '{objxml.receptor.UsoCFDI}'").ToEntero(); - objfact.UsoCFDI = objxml.receptor.UsoCFDITexto; - objfact.ClaveUsoCFDI = objxml.receptor.UsoCFDI; - objfact.CveClienteSucursal = -1; - - objfact.DtDetalle = CreaDTDetalle(UsuarioActual, objxml.conceptos, objfact.CveSubProyecto, CvePsReconstruccion, objxml); - - objfact.TipoCambioDolares = objxml.comprobante.TipoCambio; - objfact.SubTotal = objxml.comprobante.SubTotal; - objfact.Descuento = objxml.comprobante.Descuento; - objfact.Amortizacion = 0; - objfact.IVA = objxml.Impuestos.Where(x => (x.Impuesto == "002" || x.Impuesto == "IVA") && x.Tipo == "Traslados").Sum(item => item.Importe); - objfact.RetIVA = objxml.Impuestos.Where(x => (x.Impuesto == "002" || x.Impuesto == "IVA") && x.Tipo == "Retenciones").Sum(item => item.Importe); - objfact.RetISR = objxml.Impuestos.Where(x => (x.Impuesto == "001" || x.Impuesto == "ISR") && x.Tipo == "Retenciones").Sum(item => item.Importe); - objfact.IEPS = objxml.Impuestos.Where(x => (x.Impuesto == "003" || x.Impuesto == "IEPS")).Sum(item => item.Importe); - objfact.Total = objxml.comprobante.Total; - objfact.TotalOtrosConceptos = 0; - - - objfact.Observaciones = ""; - objfact.OrdenCompra = ""; - objfact.PedidoContrato = ""; - objfact.ObservacionesAlmacen = ""; - if (strErrores.Length > 0) - { - objfact = null; - } - return objfact; - } - private DataTable CreaDTDetalle(Usuario UsuarioActual, List conceptos, int CveSubProyecto, int CvePsReconstruccion, XmlSatCFDI objxml) - { - bool continuar = true; - var TmpDT = new DataTable(); - #region TmpDT Fields - TmpDT.Columns.Add("CveVenta", typeof(int)); - TmpDT.Columns.Add("Consec", typeof(int)); - TmpDT.Columns.Add("Cantidad", typeof(decimal)); - TmpDT.Columns.Add("Codigo", typeof(string)); - TmpDT.Columns.Add("CveUM", typeof(int)); - TmpDT.Columns.Add("UM", typeof(string)); - TmpDT.Columns.Add("SATClaveUM", typeof(string)); - TmpDT.Columns.Add("CveClasificacion", typeof(int)); - TmpDT.Columns.Add("Clasificacion", typeof(string)); - TmpDT.Columns.Add("CvePS", typeof(int)); - TmpDT.Columns.Add("PS", typeof(string)); - TmpDT.Columns.Add("CodigoPS", typeof(string)); - TmpDT.Columns.Add("SATClaveProdServ", typeof(string)); - TmpDT.Columns.Add("NoIdentificacion", typeof(string)); - TmpDT.Columns.Add("CveTipoPS", typeof(int)); - TmpDT.Columns.Add("CveTipoInvPS", typeof(int)); - TmpDT.Columns.Add("Serie", typeof(string)); - TmpDT.Columns.Add("CuentaPredial", typeof(string)); - TmpDT.Columns.Add("Obs", typeof(string)); - TmpDT.Columns.Add("TiempoEntrega", typeof(string)); - TmpDT.Columns.Add("PU", typeof(decimal)); - TmpDT.Columns.Add("IVA", typeof(decimal)); - TmpDT.Columns.Add("ImporteIVA", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeIVA", typeof(decimal)); - TmpDT.Columns.Add("ImporteRetIVA", typeof(decimal)); - TmpDT.Columns.Add("ImporteRetISR", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeRetIVA", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeRetISR", typeof(decimal)); - TmpDT.Columns.Add("ImporteIEPS", typeof(decimal)); - TmpDT.Columns.Add("IEPS", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeIEPS", typeof(decimal)); - TmpDT.Columns.Add("Descuento", typeof(decimal)); - TmpDT.Columns.Add("TipoDescuento", typeof(int)); - TmpDT.Columns.Add("TotalImporte", typeof(decimal)); - TmpDT.Columns.Add("Total", typeof(decimal)); - // Para uso del módulo contable - TmpDT.Columns.Add("AsientoContableVentas", typeof(int)); - TmpDT.Columns.Add("IdCtaContVentas", typeof(int)); - TmpDT.Columns.Add("AplicaParaConcepto", typeof(bool)); - TmpDT.Columns.Add("CveProyecto", typeof(int)); - TmpDT.Columns.Add("Proyecto", typeof(string)); - TmpDT.Columns.Add("CveSubProyecto", typeof(int)); - TmpDT.Columns.Add("SubProyecto", typeof(string)); - // TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto - TmpDT.Columns.Add("CvePresupuestoIngreso", typeof(int)); - TmpDT.Columns.Add("CveFuenteRecaudacion", typeof(int)); - // Contratos - TmpDT.Columns.Add("CveContratoDetalle", typeof(int)); - // Remisiones a Facturas - TmpDT.Columns.Add("CveVentaDetalle", typeof(int)); - TmpDT.Columns.Add("CveVentaDetalleRemision", typeof(int)); - TmpDT.Columns.Add("CveVentaDetalleCotizacion", typeof(int)); - // Pedido2 a Facturas - TmpDT.Columns.Add("CveVentaDetallePedido2", typeof(int)); - TmpDT.Columns.Add("Origen", typeof(int)); - // Ordenes Servicio - TmpDT.Columns.Add("CveOS", typeof(int)); - TmpDT.Columns.Add("CveOSDetalle", typeof(int)); - TmpDT.Columns.Add("SeFacturara", typeof(int)); - TmpDT.Columns.Add("Folio", typeof(int)); - TmpDT.Columns.Add("Estatus", typeof(string)); - // Ordenamiento - TmpDT.Columns.Add("Orden", typeof(int)); - TmpDT.Columns.Add("TipoDocto", typeof(string)); - // OC - TmpDT.Columns.Add("CveOrdenCompraDetalle", typeof(int)); - TmpDT.Columns.Add("EntregaDirecta", typeof(int)); - TmpDT.Columns.Add("CveMovimientoDetallePedido", typeof(int)); - TmpDT.Columns.Add("CantidadFacturadaRem", typeof(decimal)); - TmpDT.Columns.Add("CantidadFacturadaCot", typeof(decimal)); - TmpDT.Columns.Add("CantidadInventario", typeof(decimal)); - TmpDT.Columns.Add("ClaveSATFraccionArancelaria", typeof(string)); - TmpDT.Columns.Add("ClaveSATUnidadAduana", typeof(string)); - TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", typeof(string)); - TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", typeof(string)); - TmpDT.Columns.Add("CveTamaño", typeof(int)); - #endregion - foreach (CFDIConcepto item in conceptos) - { - DataRow DrPS = null;// get_GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("PS ={0}",item.Descripcion)); - - DataRow DrSubProyecto = null; - DataRow DrUmSat = null; - DataRow DrUm = null; - if (continuar) - { - using (ClsProductosServicios obj = new ClsProductosServicios()) - { - if (obj.GetPS(-1, -1, UsuarioActual.CveEmpresa, PS: item.Descripcion) && obj.DtResultados.Rows.Count > 0) - { - DrPS = obj.DtResultados.Rows[0]; - } - else if (obj.GetPS(CvePsReconstruccion, -1, UsuarioActual.CveEmpresa) && obj.DtResultados.Rows.Count > 0) - { - - DrPS = obj.DtResultados.Rows[0]; - } - - } - DrSubProyecto = get_GlobalDTSubProyectos(-1, CveSubProyecto, UsuarioActual.CveEmpresa).Rows[0]; - - - if (objxml.comprobante.Version == "3.2") - { - item.ClaveUnidad = item.Unidad; - switch (item.ClaveUnidad) - { - case "TON": item.ClaveUnidad = "A75"; break; - case "No aplica": item.ClaveUnidad = "ACT"; break; - case "LITROS": item.ClaveUnidad = "E32"; break; - case "M3-KM": item.ClaveUnidad = "M73"; break; - } - - } - - DrUmSat = GlobalDTPSATUM.FiltroPrimero(string.Format("SATClaveUnidadMedida='{0}'", item.ClaveUnidad)); - } - if (continuar && DrUmSat == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida en el catalogo del sat '{item.ClaveUnidad}', favor de contactar a soporte tecnico."); } - if (continuar) - { - DrUm = get_GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("CveUnidadMedidaSAT={0}", DrUmSat["CveUnidadMedidaSAT"])); - } - if (continuar && DrUm == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida relacionada a la clave del sat '{item.ClaveUnidad}', favor de asignarla en el catalogo de unidad de medida."); } - if (continuar) - { - //no se encontro una undidad de medida para - DataRow Row = TmpDT.NewRow(); - Row["CveProyecto"] = DrSubProyecto["CveProyecto"].ToString().ToEntero(); - Row["Proyecto"] = DrSubProyecto["Proyecto"].ToString(); - Row["CveSubProyecto"] = CveSubProyecto; - Row["SubProyecto"] = DrSubProyecto["SubProyecto"].ToString(); - Row["Serie"] = ""; - Row["TiempoEntrega"] = ""; - Row["Orden"] = TmpDT.Rows.Count + 1; - Row["Cantidad"] = item.Cantidad; - Row["CveUM"] = DrUm["CveUnidadMedida"]; - Row["UM"] = DrUm["UnidadMedida"]; - Row["CveClasificacion"] = DrPS["CveClasificacion"]; - Row["Clasificacion"] = DrPS["Clasificacion"]; - Row["CvePS"] = DrPS["CvePS"]; - Row["Obs"] = item.Descripcion; - - //TotalCalculableImpuestos = (Cantidad * PU) - Descuento; - - Row["PU"] = item.ValorUnitario; - Row["Codigo"] = DrPS["Codigo"]; - Row["NoIdentificacion"] = DrPS["Codigo"]; - Row["ClaveSATFraccionArancelaria"] = DrPS["ClaveSATFraccionArancelaria"]; - Row["ClaveSATUnidadAduana"] = DrPS["ClaveSATUnidadAduana"]; - Row["ClaveSATFraccionArancelariaDescripcion"] = DrPS["ClaveSATFraccionArancelariaDescripcion"]; - Row["ClaveSATUnidadAduanaDescripcion"] = DrPS["ClaveSATUnidadAduanaDescripcion"]; - Row["Consec"] = TmpDT.Rows.Count + 1; - Row["PS"] = item.Descripcion; - Row["CodigoPS"] = DrPS["PSCodigo"].ToString(); - Row["CveTipoPS"] = DrPS["CveTipoPS"]; - Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"]; - Row["CveTamaño"] = DrPS["CveTamaño"]; - CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado"); - decimal sumaimpuesto = 0; - decimal PorcentajeIVA = 0; - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - PorcentajeIVA = decimpuesto / 100; - Row["PorcentajeIVA"] = PorcentajeIVA; - Row["ImporteIVA"] = impuesto.Importe;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2); - sumaimpuesto += impuesto.Importe; - } - else - { - Row["PorcentajeIVA"] = 0; - Row["ImporteIVA"] = 0; - if (objxml.comprobante.Version == "3.2") - { - if (item.Importe > 0) - { - PorcentajeIVA = .16M; - Row["PorcentajeIVA"] = PorcentajeIVA; - Row["ImporteIVA"] = item.Importe * PorcentajeIVA;//Math.Round(((item.Importe / (1 + PorcentajeIVA))*.16M),2); - - } - } - } - Row["IVA"] = Row["ImporteIVA"]; - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Tipo == "Traslado"); - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - Row["PorcentajeIEPS"] = decimpuesto / 100; - Row["ImporteIEPS"] = impuesto.Importe; - Row["IEPS"] = impuesto.Importe; - sumaimpuesto += impuesto.Importe; - } - else - { - Row["PorcentajeIEPS"] = 0; - Row["ImporteIEPS"] = 0; - Row["IEPS"] = 0; - } - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "001" && x.Tipo == "Retencion"); - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - Row["PorcentajeRetISR"] = decimpuesto / 100; - Row["ImporteRetISR"] = impuesto.Importe; - sumaimpuesto -= impuesto.Importe; - } - else - { - Row["ImporteRetISR"] = 0; - Row["PorcentajeRetISR"] = 0; - } - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Retencion"); - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - Row["PorcentajeRetIVA"] = decimpuesto / 100; - Row["ImporteRetIVA"] = impuesto.Importe; - sumaimpuesto -= impuesto.Importe; - } - else - { - Row["ImporteRetIVA"] = 0; - Row["PorcentajeRetIVA"] = 0; - } - Row["Descuento"] = item.Descuento; - Row["TipoDescuento"] = "2"; - - //Row["Total"] = item.Importe - sumaimpuesto; - Row["Total"] = item.Importe / (1 + PorcentajeIVA); - Row["TotalImporte"] = item.Importe; - - Row["SATClaveProdServ"] = item.ClaveProdServ; - Row["SATClaveUM"] = item.ClaveUnidad; - - Row["EntregaDirecta"] = "-1"; - // Contratos - Row["CveContratoDetalle"] = -1; - Row["CveVentaDetalle"] = -1; - Row["CveMovimientoDetallePedido"] = -1; - Row["CveOrdenCompraDetalle"] = -1; - Row["CveVentaDetalleRemision"] = -1; - Row["CveVentaDetalleCotizacion"] = -1; - Row["CveVentaDetallePedido2"] = -1; - Row["CuentaPredial"] = item.CuentaPredial; - - TmpDT.Rows.Add(Row); - } - } - - - return TmpDT; - } - - - - protected void LnkAceptarDefault_Click(object sender, EventArgs e) - { - RegistraScript("$('#DModalDefaults').modal('hide');"); - registrarventa((GridViewRow)CurrentRow); - //foreach (GridViewRow gvrow in GVConciliacionemitidasSAT.Rows) - //{ - - // registrarventa(gvrow); - //} - } - - protected void BtnConsultar_Click(object sender, EventArgs e) - { - CargaRepConciliacionSatGET(); - } - - protected void GVConciliacionemitidasSAT_RowDataBound(object sender, GridViewRowEventArgs e) - { - if (e.Row.RowType == DataControlRowType.DataRow) - { - string navurl = ""; - if (e.Row.DBCampo("Tipo") == "1") - { - string RutaXml = e.Row.DBCampo("RutaXml"); - //if (RutaXml.IndexOf("Empresas")>0) - //{ - // RutaXml = RutaXml.Substring(RutaXml.IndexOf("Empresas")); - //} - navurl = string.Format("RepConciliacionEmitidosSat.aspx?op={0}", Extensiones.ModExtensiones.Encripta(e.Row.DataKey("RutaXml"))); - } - else - { - navurl = string.Format("/Compras/PopUpVerFactura.aspx?P={0}", Extensiones.ModExtensiones.Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", e.Row.DBCampo("CveVenta"), "XML", e.Row.DBCampo("SerieFolio"), e.Row.DBCampo("TipoDocto")))); - } - e.Row.FCHyperLink("HypXml").NavigateUrl = navurl; - } - //String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", DbRowVenta("SerieFolio"), DbRowVenta("TipoDocto")))) - } - - protected void DdlClasificacion_SelectedIndexChanged(object sender, EventArgs e) - { - - int CveClasificacion = DdlClasificacion.SelectedValue.ToEntero(); - if (UsuarioActual.Empresa.Funcionalidad(141).ToString() == "1") - { - - DdlPS.setEsWebService(true); - DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString()); - DdlPS.ddlWS.Attributes.Add("data-pagina", "ventas/ventas"); - DdlPS.ddlWS.Attributes.Add("data-Estatus", "1"); - } - else - { - - DdlPS.setEsWebService(false); - DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: CveClasificacion, Estatus: 1, AplicaParaVenta: 1); - DdlPS.ddl.DataBind(); - } - UpModalDefaults.Update(); - } -} -namespace ADSistemaLibrary2.SatXml -{ - public class XmlSatCFDI - { - public XmlSatCFDI() - { - comprobante = new CFDIComprobante(); - emisor = new CFDIEmisor(); - receptor = new CFDIReceptor(); - complemento = new CFDIComplemento(); - cFDIRelacionados = new List(); - conceptos = new List(); - Impuestos = new List(); - } - public CFDIComprobante comprobante; - public CFDIEmisor emisor; - public CFDIReceptor receptor; - public CFDIComplemento complemento; - public List cFDIRelacionados; - public List conceptos; - public List Impuestos; - public List GetConceptosforpdf() - { - List lcon = new List(); - if (conceptos != null) - { - int _orden = 0; - foreach (CFDIConcepto item in conceptos) - { - _orden += 1; - CFDIConcepto_I con = new CFDIConcepto_I - { - tipo = 1, - orden = _orden, - ClaveProdServ = item.ClaveProdServ, - NoIdentificacion = item.NoIdentificacion, - Cantidad = item.Cantidad, - ClaveUnidad = item.ClaveUnidad, - Unidad = item.Unidad, - ValorUnitario = item.ValorUnitario, - Importe = item.Importe, - Descuento = item.Descuento, - NumeroPedimento = item.NumeroPedimento, - CuentaPredial = item.CuentaPredial, - Descripcion = item.Descripcion - }; - int index = 0; - foreach (CFDIConceptoImpuesto Imp in item.Impuestos) - { - index++; - if (index > 1) - { - lcon.Add(con); - con = new CFDIConcepto_I - { - tipo = 2, - orden = _orden, - }; - - } - - con.Impuesto = Imp.ImpuestoTexto; - con.Impuesto_Tipo = Imp.Tipo; - con.Impuesto_Base = Imp.Base; - con.Impuesto_TipoFactor = Imp.TipoFactor; - con.Impuesto_TasaOCuota = Imp.TasaOCuota; - con.Impuesto_Importe = Imp.Importe; - } - lcon.Add(con); - } - } - - return lcon; - } - - public static XmlSatCFDI readXML(string fileUrl) - { - XmlSatCFDI xmlCFDI = new XmlSatCFDI(); - bool canread = true; - //keys - string keyComprobante = "Comprobante"; - string keyCfdiRelacionados = "CfdiRelacionados"; - string keyEmisor = "Emisor"; - string keyReceptor = "Receptor"; - string keyConceptos = "Conceptos"; - string keyImpuestos = "Impuestos"; - string keyComplemento = "Complemento"; - //endkeys - string[] PrimerNivel = new string[] { keyCfdiRelacionados, keyEmisor, keyReceptor, keyConceptos, keyImpuestos, keyComplemento }; - //(canread = xtr.Read()) para evitar ciclos infinitos, todos los .Read() los guardo en la variable Canread y en los while reviso primero esta variable - if (File.Exists(fileUrl)) - { - XmlReaderSettings settings = new XmlReaderSettings(); - settings.ConformanceLevel = ConformanceLevel.Fragment; - settings.IgnoreWhitespace = true; - settings.IgnoreComments = true; - using (XmlReader xtr = XmlReader.Create(fileUrl, settings)) - { - - while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:","") == keyComprobante)) - { - //if (xtr.NodeType != XmlNodeType.Element) { while (xtr.Read() && xtr.NodeType != XmlNodeType.Element) { } } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComprobante) - { - int Nivel = xtr.Depth; - bool cont = xtr.MoveToFirstAttribute(); - while (cont) - { - - switch (xtr.Name.ToUpper()) - { - case "XMLNS:CFDI": xmlCFDI.comprobante.xmlns_cfdi = xtr.Value; break; - case "XMLNS:XSI": xmlCFDI.comprobante.xmlns_xsi = xtr.Value; break; - case "XSI:SCHEMALOCATION": xmlCFDI.comprobante.xsi_schemaLocation = xtr.Value; break; - case "VERSION": xmlCFDI.comprobante.Version = xtr.Value; break; - case "SERIE": xmlCFDI.comprobante.Serie = xtr.Value; break; - case "FOLIO": xmlCFDI.comprobante.Folio = xtr.Value; break; - case "FECHA": xmlCFDI.comprobante.Fecha = xtr.Value; break; - case "MONEDA": xmlCFDI.comprobante.Moneda = xtr.Value; break; - case "SUBTOTAL": decimal SubTotal = 0; decimal.TryParse(xtr.Value, out SubTotal); xmlCFDI.comprobante.SubTotal = SubTotal; break; - case "TOTAL": decimal Total = 0; decimal.TryParse(xtr.Value, out Total); xmlCFDI.comprobante.Total = Total; break; - case "DESCUENTO": decimal Descuento = 0; decimal.TryParse(xtr.Value, out Descuento); xmlCFDI.comprobante.Descuento = Descuento; break; - case "TIPOCAMBIO": decimal TipoCambio = 0; decimal.TryParse(xtr.Value, out TipoCambio); xmlCFDI.comprobante.TipoCambio = TipoCambio; break; - case "TIPODECOMPROBANTE": xmlCFDI.comprobante.TipoDeComprobante = xtr.Value; break; - case "FORMAPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break; - case "FORMADEPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break; - case "METODOPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break; - case "METODODEPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break; - case "CONDICIONESDEPAGO": xmlCFDI.comprobante.CondicionesDePago = xtr.Value; break; - case "LUGAREXPEDICION": xmlCFDI.comprobante.LugarExpedicion = xtr.Value; break; - case "CONFIRMACION": xmlCFDI.comprobante.Confirmacion = xtr.Value; break; - case "NOCERTIFICADO": xmlCFDI.comprobante.NoCertificado = xtr.Value; break; - case "SELLO": xmlCFDI.comprobante.Sello = xtr.Value; break; - case "CERTIFICADO": xmlCFDI.comprobante.Certificado = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - cont = xtr.MoveToFirstAttribute(); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > Nivel) - { - if (PrimerNivel.Contains(xtr.Name.Replace("cfdi:", ""))) - { - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyCfdiRelacionados) - { - int cDepth = xtr.Depth; - - string TipoRelacion = null; - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "TIPORELACION": TipoRelacion = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepth) - { - if (xtr.Name.Replace("cfdi:", "") == "CfdiRelacionado") - { - CFDIRelacionado cfdir = new CFDIRelacionado(); - cfdir.TipoRelacion = TipoRelacion; - cfdir.UUID = xtr.GetAttribute("UUID"); - xmlCFDI.cFDIRelacionados.Add(cfdir); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyEmisor) - { - - - int curentNivel = xtr.Depth; - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "REGIMENFISCAL": xmlCFDI.emisor.RegimenFiscal = xtr.Value; break; - case "NOMBRE": xmlCFDI.emisor.Nombre = xtr.Value; break; - case "RFC": xmlCFDI.emisor.Rfc = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel) - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyReceptor) - { - int curentNivel = xtr.Depth; - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "RFC": xmlCFDI.receptor.Rfc = xtr.Value; break; - case "NOMBRE": xmlCFDI.receptor.Nombre = xtr.Value; break; - case "RESIDENCIAFISCAL": xmlCFDI.receptor.ResidenciaFiscal = xtr.Value; break; - case "NUMREGIDTRIB": xmlCFDI.receptor.NumRegIdTrib = xtr.Value; break; - case "USOCFDI": xmlCFDI.receptor.UsoCFDI = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - - while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel) - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyConceptos) - { - int cDepth = xtr.Depth; - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepth) - { - if (xtr.Name.Replace("cfdi:", "") == "Concepto") - { - int cDepthb = xtr.Depth; - CFDIConcepto concepto = new CFDIConcepto(); - - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "CLAVEPRODSERV": concepto.ClaveProdServ = xtr.Value; break; - case "NOIDENTIFICACION": concepto.NoIdentificacion = xtr.Value; break; - case "CANTIDAD": concepto.Cantidad = xtr.Value; break; - case "CLAVEUNIDAD": concepto.ClaveUnidad = xtr.Value; break; - case "UNIDAD": concepto.Unidad = xtr.Value; break; - case "VALORUNITARIO": decimal ValorUnitario = 0; decimal.TryParse(xtr.Value, out ValorUnitario); concepto.ValorUnitario = ValorUnitario; ; break; - case "IMPORTE": decimal Importe = 0; decimal.TryParse(xtr.Value, out Importe); concepto.Importe = Importe; ; break; - case "DESCUENTO": decimal DDescuento = 0; decimal.TryParse(xtr.Value, out DDescuento); concepto.Descuento = DDescuento; ; break; - case "DESCRIPCION": concepto.Descripcion = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - xtr.MoveToFirstAttribute(); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepthb) - { - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "Impuestos") - { - int cDepthc = xtr.Depth; - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepthc) - { - if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion") - { - CFDIConceptoImpuesto impuesto = new CFDIConceptoImpuesto(); - impuesto.Impuesto = xtr.GetAttribute("Impuesto"); - impuesto.Tipo = xtr.LocalName; - decimal Base = 0; - decimal.TryParse(xtr.GetAttribute("Base"), out Base); - impuesto.Base = Base; - impuesto.TipoFactor = xtr.GetAttribute("TipoFactor"); - decimal tasaOCuota = 0; - decimal.TryParse(xtr.GetAttribute("TasaOCuota"), out tasaOCuota); - impuesto.TasaOCuota = impuesto.TipoFactor == "Tasa" ? (tasaOCuota * 100).ToString("N4") : xtr.GetAttribute("TasaOCuota"); - decimal ImImporte = 0; - decimal.TryParse(xtr.GetAttribute("Importe"), out ImImporte); - impuesto.Importe = ImImporte; - - concepto.Impuestos.Add(impuesto); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - - } - } - else - { - bool rednew = true; - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "InformacionAduanera") - { - concepto.NumeroPedimento = xtr.GetAttribute("NumeroPedimento"); - rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "CuentaPredial") - { - concepto.CuentaPredial = xtr.GetAttribute("CuentaPredial"); - rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - if (rednew) { while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } } - - } - } - - xmlCFDI.conceptos.Add(concepto); - } - } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyImpuestos) - { - int cDepth = xtr.Depth; - - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepth) - { - CFDIImpuesto impuest = new CFDIImpuesto(); - if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion" && xmlCFDI.comprobante.Version != null) - { - impuest.Tipo = xtr.LocalName == "Traslado" ? "Traslados" : (xtr.LocalName == "Retencion" ? "Retenciones" : ""); - impuest.Impuesto = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Impuesto") : xtr.GetAttribute("impuesto"); - impuest.TipoFactor = xtr.GetAttribute("TipoFactor"); - impuest.TasaOCuota = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("TasaOCuota") : xtr.GetAttribute("tasa"); - decimal ImImporte = 0; - decimal.TryParse((xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Importe") : xtr.GetAttribute("importe")), out ImImporte); - impuest.Importe = ImImporte; - xmlCFDI.Impuestos.Add(impuest); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - - } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComplemento) - { - int cDepth = xtr.Depth; - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - { - - - - - } - - - while (canread && xtr.Depth > cDepth) - { - if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "TimbreFiscalDigital" && xmlCFDI.comprobante.Version != null) - { - xmlCFDI.complemento.xmlns_tfd = xtr.GetAttribute("xmlns:tfd"); - xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation"); - xmlCFDI.complemento.Version = xtr.GetAttribute("Version"); - xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID"); - xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado"); - xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif"); - xmlCFDI.complemento.SelloCFD = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloCFD") : xtr.GetAttribute("selloCFD"); - xmlCFDI.complemento.NoCertificadoSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("NoCertificadoSAT") : xtr.GetAttribute("noCertificadoSAT"); - xmlCFDI.complemento.SelloSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloSAT") : xtr.GetAttribute("selloSAT"); - - } else if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName.ToUpper() == "NOMINA" && xmlCFDI.comprobante.Version != null) - { - xmlCFDI.complemento.nomina12 = new CFDINomina(); - //Version="1.2" TipoNomina="E" FechaPago="2021-12-08" - //="2021-12-08" ="2021-12-08" - //="1" ="5026.31" ="254.34" - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "FECHAPAGO": xmlCFDI.complemento.nomina12.FechaPago = xtr.Value.ToDateTime(); break; - case "FECHAINICIALPAGO": xmlCFDI.complemento.nomina12.FechaInicio = xtr.Value; break; - case "FECHAFINALPAGO": xmlCFDI.complemento.nomina12.FechaFin = xtr.Value; break; - case "NUMDIASPAGADOS": xmlCFDI.complemento.nomina12.NumDiasPagados= xtr.Value.ToEntero(); break; - case "TIPONOMINA": xmlCFDI.complemento.nomina12.TipoNomina = xtr.Value; break; - case "Version": xmlCFDI.complemento.nomina12.Version = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - xtr.MoveToFirstAttribute(); - } - else if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "Pagos" && xmlCFDI.comprobante.Version != null) - { - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - xmlCFDI.complemento.Pagos = new CFDIPago(); - int depthpagos = xtr.Depth; - bool conts = xtr.MoveToFirstAttribute(); - while (conts) - { - - decimal Base = 0; - switch (xtr.Name.ToUpper()) - { - case "FECHAPAGO": xmlCFDI.complemento.Pagos.FechaPago = xtr.Value; break; - case "FORMADEPAGOP": xmlCFDI.complemento.Pagos.FormaDePagoP = xtr.Value; break; - case "FORMADEPAGOPTEXT": xmlCFDI.complemento.Pagos.FormaDePagoPText = xtr.Value; break; - case "MONEDAP": xmlCFDI.complemento.Pagos.MonedaP = xtr.Value; break; - case "MONTO": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.Monto = Base; break; - case "TIPOCAMBIOP": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.TipoCambioP = Base; break; - case "NUMOPERACION": xmlCFDI.complemento.Pagos.NumOperacion = xtr.Value; break; - case "NOMBANCOORDEXT": xmlCFDI.complemento.Pagos.NomBancoOrdExt = xtr.Value; break; - case "RFCEMISORCTAORD": xmlCFDI.complemento.Pagos.RfcEmisorCtaOrd = xtr.Value; break; - case "CTAORDENANTE": xmlCFDI.complemento.Pagos.CtaOrdenante = xtr.Value; break; - case "RFCEMISORCTABEN": xmlCFDI.complemento.Pagos.RfcEmisorCtaBen = xtr.Value; break; - case "CTABENEFICIARIO": xmlCFDI.complemento.Pagos.CtaBeneficiario = xtr.Value; break; - } - conts = xtr.MoveToNextAttribute(); - } - conts = xtr.MoveToFirstAttribute(); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > depthpagos) - { - CFDIPagoDoctoRelacionado objpago = new CFDIPagoDoctoRelacionado(); - conts = xtr.MoveToFirstAttribute(); - while (conts) - { - - decimal Basep = 0; - switch (xtr.Name.ToUpper()) - { - case "IDDOCUMENTO": objpago.IdDocumento = xtr.Value; break; - case "SERIE": objpago.Serie = xtr.Value; break; - case "FOLIO": objpago.Folio = xtr.Value; break; - case "MONEDADR": objpago.MonedaDR = xtr.Value; break; - case "METODODEPAGODR": objpago.MetodoDePagoDR = xtr.Value; break; - case "NUMPARCIALIDAD": objpago.NumParcialidad = xtr.Value; break; - case "IMPSALDOANT": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoAnt = Basep; break; - case "IMPPAGADO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpPagado = Basep; break; - case "IMPSALDOINSOLUTO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoInsoluto = Basep; break; - - } - conts = xtr.MoveToNextAttribute(); - } - conts = xtr.MoveToFirstAttribute(); - xmlCFDI.complemento.Pagos.doctosRelacionados.Add(objpago); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - } - else - { - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - - } - } - } - } - else - { - //si no entro en ninguna de los anteriores no se debe ciclar - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - } - } - - } - } - if (xmlCFDI.comprobante.Version == "3.3" || xmlCFDI.comprobante.Version == "3.2") - { - return xmlCFDI; - } - else - { - return null; - } - } - - public class utilValores - { - public utilValores(string nombre, string valor) - { - Nombre = nombre; - Valor = valor; - } - public string Nombre { get; set; } - public string Valor { get; set; } - } - public class utilImage - { - public utilImage(byte[] imagenByte) - { - ImagenByte = imagenByte; - } - public byte[] ImagenByte { get; set; } - } - } - - public class CFDIComplemento - { - - public string xmlns_tfd { get; set; } - public string xsi_schemaLocation { get; set; } - public string Version { get; set; } - public string UUID { get; set; } - public string FechaTimbrado { get; set; } - public string RfcProvCertif { get; set; } - public string SelloCFD { get; set; } - public string NoCertificadoSAT { get; set; } - public string SelloSAT { get; set; } - public CFDIPago Pagos { get; set; } - public CFDINomina nomina12 { get; set; } - public string CadenaOriginal - { - get - { - return string.Format("||{0}|{1}|{2}|{3}|{4}|{5}||", Version, UUID, FechaTimbrado, RfcProvCertif, SelloCFD, NoCertificadoSAT); - } - } - - } - public class CFDIComprobante - { - public string xmlns_cfdi { get; set; } - public string xmlns_xsi { get; set; } - public string xsi_schemaLocation { get; set; } - public string Version { get; set; } - public string Serie { get; set; } - public string Folio { get; set; } - public string Fecha { get; set; } - public string Moneda { get; set; } - public decimal SubTotal { get; set; } - public decimal Total { get; set; } - public decimal Descuento { get; set; } - public decimal TipoCambio { get; set; } - public string TipoDeComprobante { get; set; } - - public string TipoDeComprobanteSIG - { - get - { - string retorno = ""; - if (Version == "3.3") - { - switch (TipoDeComprobante) - { - case "I": - retorno = "Ing"; - break; - case "E": - retorno = "Egs"; - break; - case "P": - retorno = "PA"; - break; - //case "T": - // retorno = "Traslado"; - // break; - //case "N": - // retorno = "Nómina"; - // break; - - default: - break; - } - } - else if (Version == "3.2") - { - switch (TipoDeComprobante) - { - case "ingreso": - retorno = "Ing"; - break; - case "egreso": - retorno = "Egs"; - break; - case "P": - retorno = "PA"; - break; - //case "T": - // retorno = "Traslado"; - // break; - //case "N": - // retorno = "Nómina"; - // break; - - default: - break; - } - } - else { retorno = TipoDeComprobante; } - return retorno; - } - } - public string TipoDeComprobanteTexto - { - get - { - string retorno = ""; - - if (Version == "3.3") - { - switch (TipoDeComprobante) - { - case "I": - retorno = "Ingreso"; - break; - case "E": - retorno = "Egreso"; - break; - case "P": - retorno = "Pago"; - break; - case "T": - retorno = "Traslado"; - break; - case "N": - retorno = "Nómina"; - break; - - default: - retorno = TipoDeComprobante; - break; - } - } - else if (Version == "3.2") - { - switch (TipoDeComprobante) - { - case "ingreso": - retorno = "Ing"; - break; - case "egreso": - retorno = "Egs"; - break; - case "P": - retorno = "PA"; - break; - //case "T": - // retorno = "Traslado"; - // break; - //case "N": - // retorno = "Nómina"; - // break; - - default: - retorno = TipoDeComprobante; - break; - } - } - else { retorno = TipoDeComprobante; } - return retorno; - } - } - public string FormaPago { get; set; } - - public string FormaPagoTexto - { - get - { - string retorno = ""; - - switch (FormaPago) - { - case "01": retorno = "Efectivo"; break; - case "02": retorno = "Cheque nominativo"; break; - case "03": retorno = "Transferencia electrónica de fondos"; break; - case "04": retorno = "Tarjeta de crédito"; break; - case "05": retorno = "Monedero electrónico"; break; - case "06": retorno = "Dinero electrónico"; break; - case "08": retorno = "Vales de despensa"; break; - case "12": retorno = "Dación en pago"; break; - case "13": retorno = "Pago por subrogación"; break; - case "14": retorno = "Pago por consignación"; break; - case "15": retorno = "Condonación"; break; - case "17": retorno = "Compensación"; break; - case "23": retorno = "Novación"; break; - case "24": retorno = "Confusión"; break; - case "25": retorno = "Remisión de deuda"; break; - case "26": retorno = "Prescripción o caducidad"; break; - case "27": retorno = "A satisfacción del acreedor"; break; - case "28": retorno = "Tarjeta de débito"; break; - case "29": retorno = "Tarjeta de servicios"; break; - case "30": retorno = "Aplicación de anticipos"; break; - case "31": retorno = "Intermediario pagos"; break; - case "99": retorno = "Por definir"; break; - default: retorno = FormaPago; break; - } - return retorno; - } - } - public string MetodoPago { get; set; } - public string MetodoPagoTexto - { - get - { - string retorno = ""; - - switch (MetodoPago) - { - case "PUE": retorno = "Pago en una sola exhibición"; break; - case "PPD": retorno = "Pago en parcialidades o diferido"; break; - default: retorno = MetodoPago; break; - } - return retorno; - } - } - public string CondicionesDePago { get; set; } - public string LugarExpedicion { get; set; } - public string Confirmacion { get; set; } - public string NoCertificado { get; set; } - public string Sello { get; set; } - public string Certificado { get; set; } - - } - - public class CFDIConcepto - { - public CFDIConcepto() - { - Impuestos = new List(); - } - public string ClaveProdServ { get; set; } - public string NoIdentificacion { get; set; } - public string Cantidad { get; set; } - public string ClaveUnidad { get; set; } - public string Unidad { get; set; } - public decimal ValorUnitario { get; set; } - public decimal Importe { get; set; } - public decimal Descuento { get; set; } - public string NumeroPedimento { get; set; } - public string CuentaPredial { get; set; } - public string Descripcion { get; set; } - public List Impuestos { get; set; } - } - - public class CFDIConcepto_I - { - public int tipo { get; set; } - public int orden { get; set; } - public string ClaveProdServ { get; set; } - public string NoIdentificacion { get; set; } - public string Cantidad { get; set; } - public string ClaveUnidad { get; set; } - public string Unidad { get; set; } - public decimal ValorUnitario { get; set; } - public decimal Importe { get; set; } - public decimal Descuento { get; set; } - public string NumeroPedimento { get; set; } - public string CuentaPredial { get; set; } - public string Descripcion { get; set; } - - - public string Impuesto { get; set; } - - public string Impuesto_Tipo { get; set; } - public decimal Impuesto_Base { get; set; } - public string Impuesto_TipoFactor { get; set; } - public string Impuesto_TasaOCuota { get; set; } - public decimal Impuesto_Importe { get; set; } - } - - public class CFDIConceptoImpuesto - { - public string Impuesto { get; set; } - public string ImpuestoTexto - { - get - { - string retorno = ""; - - switch (Impuesto) - { - case "001": retorno = "ISR"; break; - case "002": retorno = "IVA"; break; - case "003": retorno = "IEPS"; break; - } - return retorno; - } - } - public string Tipo { get; set; } - public decimal Base { get; set; } - public string TipoFactor { get; set; } - public string TasaOCuota { get; set; } - public decimal Importe { get; set; } - - } - - public class CFDIEmisor - { - public string RegimenFiscal { get; set; } - - public string RegimenFiscalTexto - { - get - { - string retorno = ""; - - switch (RegimenFiscal) - { - case "601": retorno = "General de Ley Personas Morales"; break; - case "603": retorno = "Personas Morales con Fines no Lucrativos"; break; - case "605": retorno = "Sueldos y Salarios e Ingresos Asimilados a Salarios"; break; - case "606": retorno = "Arrendamiento"; break; - case "608": retorno = "Demás ingresos"; break; - case "609": retorno = "Consolidación"; break; - case "610": retorno = "Residentes en el Extranjero sin Establecimiento Permanente en México"; break; - case "611": retorno = "Ingresos por Dividendos (socios y accionistas)"; break; - case "612": retorno = "Personas Físicas con Actividades Empresariales y Profesionales"; break; - case "614": retorno = "Ingresos por intereses"; break; - case "616": retorno = "Sin obligaciones fiscales"; break; - case "620": retorno = "Sociedades Cooperativas de Producción que optan por diferir sus ingresos"; break; - case "621": retorno = "Incorporación Fiscal"; break; - case "622": retorno = "Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras"; break; - case "623": retorno = "Opcional para Grupos de Sociedades"; break; - case "624": retorno = "Coordinados"; break; - case "628": retorno = "Hidrocarburos"; break; - case "607": retorno = "Régimen de Enajenación o Adquisición de Bienes"; break; - case "629": retorno = "De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales"; break; - case "630": retorno = "Enajenación de acciones en bolsa de valores"; break; - case "615": retorno = "Régimen de los ingresos por obtención de premios"; break; - - } - return retorno; - } - } - public string Nombre { get; set; } - public string Rfc { get; set; } - - } - - public class CFDIImpuesto - { - public string Tipo { get; set; } - public string Impuesto { get; set; } - public string ImpuestoTexto - { - get - { - string retorno = ""; - - switch (Impuesto) - { - case "001": retorno = "ISR"; break; - case "002": retorno = "IVA"; break; - case "003": retorno = "IEPS"; break; - } - return retorno; - } - } - public string TipoFactor { get; set; } - public string TasaOCuota { get; set; } - public decimal Importe { get; set; } - } - - public class CFDIPago - { - public CFDIPago() - { - doctosRelacionados = new List(); - } - public string FechaPago { get; set; } - public string FormaDePagoP { get; set; } - public string FormaDePagoPText { get; set; } - public string MonedaP { get; set; } - public decimal Monto { get; set; } - public decimal TipoCambioP { get; set; } - public string NumOperacion { get; set; } - public string NomBancoOrdExt { get; set; } - public string RfcEmisorCtaOrd { get; set; } - public string CtaOrdenante { get; set; } - public string RfcEmisorCtaBen { get; set; } - public string CtaBeneficiario { get; set; } - public List doctosRelacionados { get; set; } - } - - public class CFDIPagoDoctoRelacionado - { - public string IdDocumento { get; set; } - public string Serie { get; set; } - public string Folio { get; set; } - public string MonedaDR { get; set; } - public string MetodoDePagoDR { get; set; } - public string NumParcialidad { get; set; } - public decimal ImpSaldoAnt { get; set; } - public decimal ImpPagado { get; set; } - public decimal ImpSaldoInsoluto { get; set; } - } - - public class CFDIReceptor - { - public string Rfc { get; set; } - public string Nombre { get; set; } - public string ResidenciaFiscal { get; set; } - public string NumRegIdTrib { get; set; } - public string UsoCFDI { get; set; } - public string UsoCFDITexto - { - get - { - string retorno = "N/A"; - - switch (UsoCFDI) - { - case "G01": - retorno = "Adquisición de mercancías"; - break; - case "G02": - retorno = "Devoluciones, descuentos o bonificaciones"; - break; - case "G03": - retorno = "Gastos en general"; - break; - case "I01": - retorno = "Construcciones"; - break; - case "I02": - retorno = "Mobiliario y equipo de oficina por inversiones"; - break; - case "I03": - retorno = "Equipo de transporte"; - break; - case "I04": - retorno = "Equipo de cómputo y accesorios"; - break; - case "I05": - retorno = "Dados, troqueles, moldes, matrices y herramental"; - break; - case "I06": - retorno = "Comunicaciones telefónicas"; - break; - case "I07": - retorno = "Comunicaciones satelitales"; - break; - case "I08": - retorno = "Otra maquinaria y equipo"; - break; - case "D01": - retorno = "Honorarios médicos, dentales y gastos hospitalarios."; - break; - case "D02": - retorno = "Gastos médicos por incapacidad o discapacidad"; - break; - case "D03": - retorno = "Gastos funerales."; - break; - case "D04": - retorno = "Donativos."; - break; - case "D05": - retorno = "Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación)."; - break; - case "D06": - retorno = "Aportaciones voluntarias al SAR."; - break; - case "D07": - retorno = "Primas por seguros de gastos médicos."; - break; - case "D08": - retorno = "Gastos de transportación escolar obligatoria."; - break; - case "D09": - retorno = "Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones."; - break; - case "D10": - retorno = "Pagos por servicios educativos (colegiaturas)"; - break; - case "P01": - retorno = "Por definir"; - break; - - default: - break; - } - return retorno; - } - } - - } - - public class CFDIRelacionado - { - public string TipoRelacion { get; set; } - public string TipoRelacionTexto - { - - get - { - string retorno; - - switch (TipoRelacion) - { - case "01": retorno = "Nota de crédito de los documentos relacionados"; break; - case "02": retorno = "Nota de débito de los documentos relacionados"; break; - case "03": retorno = "Devolución de mercancía sobre facturas o traslados previos"; break; - case "04": retorno = "Sustitución de los CFDI previos"; break; - case "05": retorno = "Traslados de mercancias facturados previamente"; break; - case "06": retorno = "Factura generada por los traslados previos"; break; - case "07": retorno = "CFDI por aplicación de anticipo"; break; - default: - retorno = "Por definir"; - break; - } - return retorno; - } - } - public string UUID { get; set; } - - } -} \ No newline at end of file diff --git a/vwd.webinfo b/vwd.webinfo index c139fadbc..fdbdd590d 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -566,6 +566,12 @@ + + + + + +