From aaa3b42399a52c13bcb5e37a01056f7864ffd48a Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 26 Jul 2022 09:04:52 -0700 Subject: [PATCH 1/9] Cambios solicitudesIngresos SAT, mensajes efacturas descarga de facturas --- Compras/eFacturas.aspx.vb | 14 +- SAT/SolicitudesIngresoSat.aspx | 64 +++++++-- SAT/SolicitudesIngresoSat.aspx.cs | 227 +++++++++++++++++++----------- 3 files changed, 204 insertions(+), 101 deletions(-) diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 85d745c64..b7a4ef535 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -2645,10 +2645,10 @@ Partial Class Compras_eFacturas sbResultado.Append($"{resultSolicitud(1)}
") Else sbResultado.Append($"Solicitud Generada Correctamente") - sbResultado.Append($"Se presento un error al verificar las solicitudes
{resultSolicitud(2)}
") + sbResultado.Append($"Se presento un error al verificar las solicitudes
{resultSolicitud(1)}
") End If Else - sbResultado.Append($"{resultSolicitud(2)}") + sbResultado.Append($"{resultSolicitud(1)}") TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia End If Else @@ -2675,7 +2675,7 @@ Partial Class Compras_eFacturas If Continuar Then txtFechaIAdd.Text = "" txtFechaFAdd.Text = "" - Me.RegistraScript("$('#ModalAgregarSolicitud').modal('hide');") + Me.RegistraScript("$('#ModalViewSolicitudes').modal('hide');") cargasolicitudes() End If @@ -2723,10 +2723,10 @@ Partial Class Compras_eFacturas sbResultado.Append($"{resultSolicitud(2)}
") Else sbResultado.Append($"Solicitud Generada Correctamente") - sbResultado.Append($"Se presento un error al verificar las solicitudes
{resultSolicitud(2)}
") + sbResultado.Append($"Se presento un error al verificar las solicitudes
{resultSolicitud(1)}
") End If Else - sbResultado.Append($"{resultSolicitud(2)}") + sbResultado.Append($"{resultSolicitud(1)}") TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia End If Else @@ -2737,9 +2737,9 @@ Partial Class Compras_eFacturas If SeVerifico AndAlso resultVerificacion.Count = 4 Then If ResultadoVerificaionOK Then - sbResultado.Append($"{resultVerificacion(2)}
") + sbResultado.Append($"{resultVerificacion(1)}
") Else - sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion(2)}
") + sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion(1)}
") TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia End If Else diff --git a/SAT/SolicitudesIngresoSat.aspx b/SAT/SolicitudesIngresoSat.aspx index a8b5ff7e0..f7319dad0 100644 --- a/SAT/SolicitudesIngresoSat.aspx +++ b/SAT/SolicitudesIngresoSat.aspx @@ -205,6 +205,9 @@ .reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(n+40) { text-align: right !important; } + + + @@ -219,7 +222,7 @@
  • - Solicitudes + Solicitudes
  • @@ -329,7 +332,7 @@
    + DataKeyNames="UUID,CountRegistros,VTotal,CBTTotal,CountRegistrosSIG,CountRegistrosSAT"> @@ -469,7 +472,7 @@
    diff --git a/SAT/SolicitudesIngresoSat.aspx.cs b/SAT/SolicitudesIngresoSat.aspx.cs index c2aef546f..13f65f1b5 100644 --- a/SAT/SolicitudesIngresoSat.aspx.cs +++ b/SAT/SolicitudesIngresoSat.aspx.cs @@ -179,6 +179,7 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas private void cargasolicitudes() { + LnkverificarSolicitudes.Visible = false; using (ClsNominas nom = new ClsNominas()) { @@ -187,6 +188,13 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas GVSolicitudesPendientes.DataSource = nom.DtResultados.FiltraParametros("Estatus =0"); GVSolicitudesPendientes.DataBind(); + + if (nom.DtResultados.FiltraParametros("Estatus =0").Rows.Count > 0) + { + LnkverificarSolicitudes.Visible = true; + } + + GVSolicitudesNominas.DataSource = nom.DtResultados.FiltraParametros("Estatus =1"); GVSolicitudesNominas.DataBind(); } @@ -271,12 +279,12 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas else { sbResultado.Append($"Solicitud Generada Correctamente"); - sbResultado.Append($"Se presento un error al verificar las solicitudes
    {resultSolicitud[2]}
    "); + sbResultado.Append($"Se presento un error al verificar las solicitudes
    {resultSolicitud[1]}
    "); } } else { - sbResultado.Append($"{resultSolicitud[2]}"); + sbResultado.Append($"{resultSolicitud[1]}"); TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; } } @@ -287,23 +295,23 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas } - if (SeVerifico && resultVerificacion.Count == 4) - { - if (ResultadoVerificaionOK) - { - sbResultado.Append($"{resultVerificacion[1]}
    "); - } - else - { - sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion[1]}
    "); - TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; - } - } - else - { - sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API)
    "); - TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; - } + //if (SeVerifico && resultVerificacion.Count == 4) + //{ + // if (ResultadoVerificaionOK) + // { + // sbResultado.Append($"{resultVerificacion[1]}
    "); + // } + // else + // { + // sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion[1]}
    "); + // TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; + // } + //} + //else + //{ + // sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API)
    "); + // TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; + //} Alert(sbResultado.ToString(), TipoMensaje); } @@ -327,95 +335,104 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas - StringBuilder sbResultado = new StringBuilder(); - var api = new GeneralesAPII(); - JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3); - List resultSolicitud = new List(); - List resultVerificacion = new List(); - var ResultadoVerificaionOK = false; - var SeVerifico = false; - var TipoMensaje = ModExtensiones.TipoMensaje.MsgInformacion; - var ResultadoSolicitudOK = false; - if (!(ObjApiSolicitud == null)) + try { - resultSolicitud = ObjApiSolicitud.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value()).ToList(); - ResultadoSolicitudOK = bool.Parse(resultSolicitud[0]); - } - else - { - TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; - } + StringBuilder sbResultado = new StringBuilder(); + var api = new GeneralesAPII(); + JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3); + List resultSolicitud = new List(); + List resultVerificacion = new List(); + var ResultadoVerificaionOK = false; + var SeVerifico = false; + var TipoMensaje = ModExtensiones.TipoMensaje.MsgInformacion; + var ResultadoSolicitudOK = false; - - if (ResultadoSolicitudOK) - { - JToken ObjApiVerificacion = (JToken)api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 3); - - - if (!(ObjApiVerificacion == null)) + if (!(ObjApiSolicitud == null)) { - resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value()).ToList(); - ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]); - SeVerifico = true; + resultSolicitud = ObjApiSolicitud.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value()).ToList(); + ResultadoSolicitudOK = bool.Parse(resultSolicitud[0]); } else { TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; } - } - if (resultSolicitud.Count == 4) - { if (ResultadoSolicitudOK) { - if (resultSolicitud[2].ToString().Trim().Length > 0) + JToken ObjApiVerificacion = (JToken)api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 3); + + + if (!(ObjApiVerificacion == null)) { - sbResultado.Append($"{resultSolicitud[2]}
    "); + resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value()).ToList(); + ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]); + SeVerifico = true; } else { - sbResultado.Append($"Solicitud Generada Correctamente"); - sbResultado.Append($"Se presento un error al verificar las solicitudes
    {resultSolicitud[2]}
    "); + TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; + } + } + + + if (resultSolicitud.Count == 4) + { + if (ResultadoSolicitudOK) + { + if (resultSolicitud[1].ToString().Trim().Length > 0) + { + //sbResultado.Append($"{resultSolicitud[1]}
    "); + } + else + { + sbResultado.Append($"Se presento un error al verificar las solicitudes
    {resultSolicitud[1]}
    "); + } + } + else + { + sbResultado.Append($"{resultSolicitud[1]}"); + TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; } } else { - sbResultado.Append($"{resultSolicitud[2]}"); + sbResultado.AppendLine("Se presento un error al generar la solicitud (API)
    "); TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; } - } - else - { - sbResultado.AppendLine("Se presento un error al generar la solicitud (API)
    "); - TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; - } - if (SeVerifico && resultVerificacion.Count == 4) - { - if (ResultadoVerificaionOK) + if (SeVerifico && resultVerificacion.Count == 4) { - sbResultado.Append($"{resultVerificacion[2]}
    "); + if (ResultadoVerificaionOK) + { + sbResultado.Append($"{resultVerificacion[1]}.
    "); + } + else + { + sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion[1]}
    "); + TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; + } } else { - sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion[2]}
    "); + sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API)
    "); TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; } + + Alert(sbResultado.ToString(), TipoMensaje); + + + + cargasolicitudes(); } - else + catch(Exception ex) { - sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API)
    "); - TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia; + Alert(ex.StackTrace); } - Alert(sbResultado.ToString(), TipoMensaje); - - - - cargasolicitudes(); + } @@ -436,8 +453,8 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas { if(e.Row.DataKey("Mes").ToString() == "") { - e.Row.Cells[0].Text = "Total"; - e.Row.Font.Bold = true; + e.Row.Cells[0].Text = "Total"; + e.Row.Attributes.Add("class", "Totales"); } } @@ -449,13 +466,12 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas if(e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.DataKey("UUID") == "Totales") - { - + { e.Row.Font.Bold = true; - e.Row.Cells[1].Text = e.Row.DataKey("VTotal").ToDecimal().ToString("###,###,###.00"); - e.Row.Cells[2].Text = e.Row.DataKey("CBTTotal").ToDecimal().ToString("###,###,###.00"); - e.Row.Cells[3].Text = e.Row.DataKey("CountRegistros"); - + e.Row.Cells[1].Text = e.Row.DataKey("CountRegistrosSIG"); + e.Row.Cells[2].Text = e.Row.DataKey("CountRegistrosSAT"); + e.Row.Cells[3].Text = e.Row.DataKey("CountRegistros"); + e.Row.Attributes.Add("class", "Totales"); } } @@ -503,6 +519,55 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas } + } + + protected void LnkDescargaXML_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer; + + var UrlDescarga = $"{UsuarioActual.Empresa.Ruta}NomXMLSAT\\Descargas\\{GvRow.DataKey("ArchivoXML")}"; + + var Archivo = new System.IO.FileInfo(UrlDescarga); + + if (Archivo.Exists) + { + Response.Clear(); + Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name); + Response.AddHeader("Content-Length", Archivo.Length.ToString()); + Response.ContentType = "text/octet-stream"; + Response.Flush(); + Response.TransmitFile(Archivo.FullName); + Response.End(); + } + + } + + protected void GVSolicitudesNominas_RowDataBound(object sender, GridViewRowEventArgs e) + { + + + + + if (e.Row.RowType == DataControlRowType.DataRow) + { + if (e.Row.DataKey("ArchivoXML").Length > 0) + { + var UrlDescarga = $"{UsuarioActual.Empresa.Ruta}NomXMLSAT\\Descargas\\{e.Row.DataKey("ArchivoXML")}"; + + if (System.IO.File.Exists(UrlDescarga)){ + LinkButton LnkDescargaXML = e.Row.FCLinkButton("LnkDescargaXML"); + ScriptManager.GetCurrent(this).RegisterPostBackControl(LnkDescargaXML); + LnkDescargaXML.Visible = true; + } + } + + + + } + + + + } } From 35be01025e15869b48de880cea37e77d8f01c61e Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 26 Jul 2022 20:52:03 -0700 Subject: [PATCH 2/9] =?UTF-8?q?Mejoras=20solictudes=20Ingresos,=20OC=20Num?= =?UTF-8?q?=20Remisi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsNominas.vb | 4 +- App_Code/ClsOC.vb | 32 +- OC/OC.aspx | 58 ++-- OC/OC.aspx.vb | 113 ++++++- SAT/SolicitudesIngresoSat.aspx | 534 +++++++++++++++--------------- SAT/SolicitudesIngresoSat.aspx.cs | 54 ++- 6 files changed, 492 insertions(+), 303 deletions(-) diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index ebb3bb10b..5a076dc1a 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -3232,12 +3232,14 @@ Public Class ClsNominas End Function #Region "CRUD_SolicitudesNominas" - Public Function SolicitudesGet(CveSolicitud As Integer, CveEmpresa As Integer, Optional CveTipoSolicitud As Integer = 1) As Boolean + Public Function SolicitudesGet(CveSolicitud As Integer, CveEmpresa As Integer, Optional CveTipoSolicitud As Integer = 1, Optional Estatus As Integer = -1, Optional Top As Integer = 100000) As Boolean Dim retorno As Boolean = False DataAdapter("PA_Gral_SAT_SolicitudesGet", CommandType.StoredProcedure) addParameters("@CveSolicitud", SqlDbType.Int, CveSolicitud) addParameters("@CveEmpresa", SqlDbType.Int, CveEmpresa) addParameters("@CveTipoSolicitud", SqlDbType.Int, CveTipoSolicitud) + addParameters("@Estatus", SqlDbType.Int, Estatus) + addParameters("@Top", SqlDbType.Int, Top) retorno = RunQuery("Ocurrió un error al obtener el SolicitudesNominas.") Return retorno End Function diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 628310288..53feb942d 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -119,6 +119,7 @@ Public Class ClsOC Public Property UsoCFDI As String Public Property Promocion As String Public Property CveProveedorContacto As Integer + Public Property NumRemision As String Public ReadOnly Property DtResultados() As DataTable Get @@ -685,6 +686,7 @@ Public Class ClsOC _UsoCFDI = dr("UsoCFDI").ToString Promocion = IfNull(dr("Promocion"), "", dr("Promocion").ToString) CveProveedorContacto = If(Not IsDBNull(dr("CveProveedorContacto")), dr("CveProveedorContacto").ToString.ToEntero, -1) + NumRemision = dr("NumRemision").ToString Retorno = True ElseIf Data.Rows.Count > 0 Then @@ -704,7 +706,7 @@ Public Class ClsOC Optional CveCliente As Integer = -1, Optional CveVendedor As Integer = -1, Optional PrioridadObservacion As String = "", Optional PorcentajeIVA As Decimal = 0.16, Optional IVA As Decimal = 0, Optional RetIVA As Decimal = 0, Optional RetISR As Decimal = 0, Optional FechaExpiracion As Date = Nothing, Optional CveCotizacion As Integer = -1, Optional FolioAdicional As String = "", Optional EntregaDirecta As Integer = -1, Optional CveDireccionEnvio As Integer = -1, Optional Guia As String = "-1", Optional IEPS As Decimal = -1, - Optional CveIEAnticipo As Integer = -1, Optional ImporteAnticipo As Decimal = 0, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1", Optional CveProveedorContacto As Integer = -1) As Boolean + Optional CveIEAnticipo As Integer = -1, Optional ImporteAnticipo As Decimal = 0, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1", Optional CveProveedorContacto As Integer = -1, Optional NumRemision As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraAdd") @@ -747,6 +749,7 @@ Public Class ClsOC .Add("@UsoCFDI", SqlDbType.Int).Value = UsoCFDI .Add("@Promocion", SqlDbType.VarChar).Value = Promocion .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto + .Add("@NumRemision", SqlDbType.VarChar).Value = NumRemision .Add("@vCveOrdenCompra", SqlDbType.Int).Direction = ParameterDirection.Output .Add("@vFolio", SqlDbType.Int).Direction = ParameterDirection.Output @@ -910,7 +913,7 @@ Public Class ClsOC pCveProveedor As Integer, pCveOrdenCompra As Integer, pCveUsuarioModifico As Integer, Optional CveCliente As Integer = -1, Optional CveVendedor As Integer = -1, Optional PrioridadObservacion As String = "", Optional IVA As Decimal = 0, Optional RetIVA As Decimal = 0, Optional RetISR As Decimal = 0, Optional IDPoliza As Integer = -1, Optional FechaExpiracion As Date = Nothing, Optional FolioAdicional As String = "", Optional EntregaDirecta As Integer = -1, Optional CveDireccionEnvio As Integer = -1, Optional Guia As String = "-1", Optional IEPS As Decimal = -1, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1", - Optional pCveProveedorSucursal As Integer = -1, Optional CveProveedorContacto As Integer = -1, Optional PorcentajeIVA As Decimal = 0.16) As Boolean + Optional pCveProveedorSucursal As Integer = -1, Optional CveProveedorContacto As Integer = -1, Optional PorcentajeIVA As Decimal = 0.16, Optional NumRemision As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraUpdate") @@ -944,6 +947,7 @@ Public Class ClsOC .Add("@CveProveedorSucursal", SqlDbType.Int).Value = pCveProveedorSucursal .Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto .Add("@PorcentajeIVA", SqlDbType.SmallMoney).Value = PorcentajeIVA + .Add("@NumRemision", SqlDbType.VarChar).Value = NumRemision End With Try @@ -2506,6 +2510,30 @@ Public Class ClsOC Return Retorno End Function + + Public Function GetVerificaNumRemision(CveProveedor As Integer, Tipo As String, NumRemision As String, CveEmpresa As Integer, CveOrdenCompraValida As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OC_OCVerificaNumRemisionGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@Tipo", SqlDbType.VarChar).Value = Tipo + .Add("@NumRemision", SqlDbType.VarChar).Value = NumRemision + .Add("@CveOrdenCompraValida", SqlDbType.Int).Value = CveOrdenCompraValida + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al consultar las remiciones", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + #Region " IDisposable Support " ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) diff --git a/OC/OC.aspx b/OC/OC.aspx index b2e5651aa..fdf713b49 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -325,20 +325,34 @@ - - -
    - -
    + + + +
    + + +
    + + 8% 16% 0% -
    -
    - - + + +
    + +
    Número Remisión
    +
    + +
    + +
    + + + <%--linea 7--%>
    <%----%> @@ -2767,7 +2781,7 @@ - + @@ -3215,20 +3229,20 @@ function ValidateCant(variable) { - - var txt = $(variable); - var max = txt.data('cantidad'); - var value = parseInt(txt.val()); + + var txt = $(variable); + var max = txt.data('cantidad'); + var value = parseInt(txt.val()); if (value > max) { txt.val(max); - } + } if (value < 0) { txt.val(0); - } - - var importe = $('.txtimporte[data-cve="' + txt.data('cve') + '"]'); - importe.val(parseFloat(txt.val()) * parseFloat(txt.data('pu'))); - + } + + var importe = $('.txtimporte[data-cve="' + txt.data('cve') + '"]'); + importe.val(parseFloat(txt.val()) * parseFloat(txt.data('pu'))); + } @@ -3244,6 +3258,10 @@ } } + + function ValidaNumRemision() { + $('#BtnValidaNumRemision').click(); + } diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 5097f2a22..83b727175 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -822,12 +822,16 @@ Partial Class OC If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then + DVCultivosCuadro.Visible = True DdlSubProyecto.AutoPostBack = True DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyecto.SelectedValue} AND Estatus =1") DdlCultivosCuadro.DataBind() DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1")) + DvNumRemision1.Visible = True + DvNumRemision2.Visible = True + End If 'SOLO SE MUESTRA CUANDO ES REGISTRO NUEVO @@ -1409,6 +1413,8 @@ Partial Class OC LblCodigo.Text = objOC.Codigo TxtFolioAdicional.Text = objOC.FolioAdicional + TxtNumRemision.Text = objOC.NumRemision + If Not IsNothing(objOC.Tipo) Then Select Case objOC.Tipo.ToUpper @@ -1750,6 +1756,10 @@ Partial Class OC UpAcciones.Update() End If + + + + uppEstatus.Update() UPPEmp.Update() @@ -2529,6 +2539,9 @@ Partial Class OC 'VALIDACIONES PARA GUARDAR If ValidaGuardar() Then Exit Sub + + + Dim MsgError As String = "Hubo un error al registrar" 'VARIABLES Dim CveProveedorSucursal As Integer = -1 @@ -2590,12 +2603,18 @@ Partial Class OC Dim CveOrdenCompraPadre As Integer = -1 If GeneraReq Then + + If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), "REQ", CveProveedor, OC.IniciaTransacSQL) Then + TieneError = True + End If + + If Not TieneError Then ' AGREGAR REQUISICION If OC.AddOrdenCompra("REQ", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CboE.SelectedValue.ToEntero, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal, RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, - IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then + IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto, NumRemision:=TxtNumRemision.Text.Trim()) Then CveOrdenCompraPadre = OC.CveOrdenCompra If CveOrdenCompraPadre > 0 Then @@ -2622,15 +2641,21 @@ Partial Class OC End If End If + + If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), If(TipoOS, "OS", TipoOC), CveProveedor, OC.IniciaTransacSQL) Then + TieneError = True + End If + If Not TieneError Then ' AGREGAR ORDEN DE COMPRA + If OC.AddOrdenCompra(If(TipoOS, "OS", TipoOC), -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusNuevo, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal, RequiereCotizacion:=ChkCotizacion.Checked, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, - Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then + Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto, NumRemision:=TxtNumRemision.Text) Then CveOrdenCompra = OC.CveOrdenCompra CveEstatus = CboE.SelectedValue.ToEntero @@ -2790,11 +2815,17 @@ Partial Class OC Proveedor = DdlProveedores.SelectedText.ToString End If + + If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), TipoOC, CveProveedor, OC.IniciaTransacSQL, CveOrdenCompra) Then + TieneError = True + End If + + If OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim), LugarEntrega, DdlMoneda.SelectedValue.ToEntero, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto, - PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2)) Then + PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), NumRemision:=TxtNumRemision.Text) Then If CveProveedorOriginal <> CveProveedor Then If Not ObjConta.UpdateProveedorPoliza(CveOrdenCompra, CveProveedor, Proveedor) Then TieneError = True @@ -3263,11 +3294,17 @@ Partial Class OC RetIVA = TxtRetIVA.Text.ToDecimal RetISR = TxtRetISR.Text.ToDecimal - If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, + If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), "OC", CveProveedor, objOrdenCompra.IniciaTransacSQL) Then + HuboError = True + End If + + + + If (Not HuboError) AndAlso objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, CveUsuario, CveEmpresaActual, 0, pCveProveedor:=CveProveedor, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=PorIVA, IVA:=IVACot, RetIVA:=RetIVA.ToString.ToDecimal, RetISR:=RetISR.ToString.ToDecimal, IDPoliza:=IdPoliza, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, - CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero) Then + CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, NumRemision:=TxtNumRemision.Text.Trim) Then 'CREA POLIZA POR CADA PROVEEDOR @@ -3331,11 +3368,19 @@ Partial Class OC Else - If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, + + + If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), "OC", DdlProveedores.SelectedValue.ToEntero, objOrdenCompra.IniciaTransacSQL) Then + HuboError = True + End If + + + + If (Not HuboError) AndAlso objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, CveUsuario, CveEmpresaActual, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero(), CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, - Promocion:=Promocion) Then + Promocion:=Promocion, NumRemision:=TxtNumRemision.Text.Trim) Then 'USA AC @@ -8677,4 +8722,58 @@ Partial Class OC Return Retorno End Function + + + + Private Function ValidaNumRemision(NumRemision As String, TipoOC As String, CveProveedor As Integer, Optional OcTranasaccion As System.Data.SqlClient.SqlTransaction = Nothing, Optional CveOrdenCompraValida As Integer = -1) As Boolean + Dim NumRemisionValida As Boolean = False + + + + If NumRemision.Trim.Length > 0 Then + If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then + + Dim ObjOC As ClsOC + + If OcTranasaccion IsNot Nothing Then + ObjOC = New ClsOC(OcTranasaccion) + Else + ObjOC = New ClsOC + End If + + + If ObjOC.GetVerificaNumRemision(CveProveedor, TipoOC, NumRemision, UsuarioActual.CveEmpresa, CveOrdenCompraValida) Then + + If ObjOC.DtResultados.Rows.Count > 0 Then + Alert($"La remision ya se encuentra asiganada a la { If(TipoOC = "OC", "Orden de compra", "Requisición")} {ObjOC.DtResultados.Rows(0)("Folio").ToString() }", TipoMensaje.MsgAdvertencia) + Else + NumRemisionValida = True + End If + + End If + + + + Else + NumRemisionValida = True + End If + Else + NumRemisionValida = True + End If + + + + + + Return NumRemisionValida + + End Function + + Protected Sub BtnValidaNumRemision_Click(sender As Object, e As EventArgs) + + ValidaNumRemision(TxtNumRemision.Text.Trim(), TipoOC, DdlProveedores.SelectedValue.ToEntero, Nothing, If(CveOrdenCompra > 0, CveOrdenCompra, -1)) + + End Sub + + End Class diff --git a/SAT/SolicitudesIngresoSat.aspx b/SAT/SolicitudesIngresoSat.aspx index f7319dad0..857960652 100644 --- a/SAT/SolicitudesIngresoSat.aspx +++ b/SAT/SolicitudesIngresoSat.aspx @@ -292,177 +292,193 @@ - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - -
    -
    - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    - +
    + + +
    +
    + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + @@ -497,54 +513,54 @@ - +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + +
    @@ -566,55 +582,57 @@ -
    + + +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    diff --git a/SAT/SolicitudesIngresoSat.aspx.cs b/SAT/SolicitudesIngresoSat.aspx.cs index 13f65f1b5..1a78ec64e 100644 --- a/SAT/SolicitudesIngresoSat.aspx.cs +++ b/SAT/SolicitudesIngresoSat.aspx.cs @@ -137,18 +137,34 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas { - GvResumen.DataSource = null; - GvDatos.DataSource = null; + //GvResumen.DataSource = null; + //GvDatos.DataSource = null; + + DvDatos1.Visible = false; + DvDatos2.Visible = false; + + DVResumen1.Visible = false; + DVResumen2.Visible = false; if (DdlReporte.SelectedValue.ToEntero() == 1) { - GvResumen.Visible = true; - GvDatos.Visible = false; + + DVResumen1.Visible = true; + DVResumen2.Visible = true; + + DvDatos1.Visible = false; + DvDatos2.Visible = false; + + } else { - GvResumen.Visible = false; - GvDatos.Visible = true; + + DVResumen1.Visible = false; + DVResumen2.Visible = false; + + DvDatos1.Visible = true; + DvDatos2.Visible = true; } @@ -168,6 +184,9 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas } } + + + GvResumen.DataBind(); GvDatos.DataBind(); @@ -183,21 +202,27 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas using (ClsNominas nom = new ClsNominas()) { - if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa, CveTipoSolicitud: 3)) + if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa, CveTipoSolicitud: 3, Estatus: 0,Top:50)) { - - GVSolicitudesPendientes.DataSource = nom.DtResultados.FiltraParametros("Estatus =0"); - GVSolicitudesPendientes.DataBind(); - - if (nom.DtResultados.FiltraParametros("Estatus =0").Rows.Count > 0) + GVSolicitudesPendientes.DataSource = nom.DtResultados; + if (nom.DtResultados.Rows.Count > 0) { LnkverificarSolicitudes.Visible = true; } + GVSolicitudesPendientes.DataBind(); + + + } - GVSolicitudesNominas.DataSource = nom.DtResultados.FiltraParametros("Estatus =1"); + if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa, CveTipoSolicitud: 3, Estatus:1,Top:50)) + { + + GVSolicitudesNominas.DataSource = nom.DtResultados; GVSolicitudesNominas.DataBind(); } + + } UPModalViewSolicitudes.Update(); } @@ -469,8 +494,7 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas { e.Row.Font.Bold = true; e.Row.Cells[1].Text = e.Row.DataKey("CountRegistrosSIG"); - e.Row.Cells[2].Text = e.Row.DataKey("CountRegistrosSAT"); - e.Row.Cells[3].Text = e.Row.DataKey("CountRegistros"); + e.Row.Cells[2].Text = e.Row.DataKey("CountRegistrosSAT"); e.Row.Attributes.Add("class", "Totales"); } From eb34fdc0b62b316be1181cf9cb7621ae4821d0a6 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 30 Jul 2022 12:33:55 -0700 Subject: [PATCH 3/9] Folio fiscal de complemento de pago al cancelar IE --- Bancos/IE.aspx.vb | 55 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 0a8ec268e..832844d53 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -4503,37 +4503,60 @@ Partial Class Bancos_IE If CveMotivoCancelacion > 0 AndAlso CveSATMotivoCancelacion > 0 Then - Dim ObjCancelacion As New Timbrado - If EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptorCancelar) Then + Dim DtComplementos As DataTable = Nothing + If CveIE > 0 AndAlso Banc.GetComplementoPagos(-1, CveIE, -1, UsuarioActual.CveEmpresa) Then + DtComplementos = Banc.DtResultados.FiltraParametros(" Estatus IN(1,3) ") + End If - If Banc.UpdateComplementoPagoCancelado(CveComplementoPagoCancelar, 2, CvePACCancelacion, UsuarioActual.CveEmpresa, Date.Now, "", 1) Then - CargaComplementosPago() - RegistraScript("$('#ModalCancelarComplemetno').modal('hide');") - ErrorCancelarComplemento = False - Alert("El complemento se cancelo correctamente.") - End If + For Each RowComplemento As DataRow In DtComplementos.Rows - Else - Dim respCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) - If respCancelacion.Verificado Then + CveComplementoPagoCancelar = RowComplemento("CveComplementoPago").ToString().ToEntero() + FolioFiscalCancelar = RowComplemento("FolioFiscal").ToString() + '' Dim RFCEmisor As String = UsuarioActual.Empresa.RFC + RFCReceptorCancelar = RowComplemento("RFCReceptor").ToString() + CvePACCancelacion = RowComplemento("CvePAC").ToString().ToEntero() - If Banc.UpdateComplementoPagoCancelado(CveComplementoPagoCancelar, 2, CvePACCancelacion, UsuarioActual.CveEmpresa, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then + Dim ObjCancelacion As New Timbrado + If EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptorCancelar) Then + + If Banc.UpdateComplementoPagoCancelado(CveComplementoPagoCancelar, 2, CvePACCancelacion, UsuarioActual.CveEmpresa, Date.Now, "", 1) Then CargaComplementosPago() RegistraScript("$('#ModalCancelarComplemetno').modal('hide');") ErrorCancelarComplemento = False Alert("El complemento se cancelo correctamente.") + Else + ErrorCancelarComplemento = True End If Else - Alert("Se presento un error al cancelar el complemento.", TipoMensaje.MsgAdvertencia) + Dim respCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) + If respCancelacion.Verificado Then + + If Banc.UpdateComplementoPagoCancelado(CveComplementoPagoCancelar, 2, CvePACCancelacion, UsuarioActual.CveEmpresa, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then + CargaComplementosPago() + RegistraScript("$('#ModalCancelarComplemetno').modal('hide');") + ErrorCancelarComplemento = False + Alert("El complemento se cancelo correctamente.") + End If + + Else + Alert("Se presento un error al cancelar el complemento.", TipoMensaje.MsgAdvertencia) + ErrorCancelarComplemento = True + End If + End If + Next + + If DtComplementos IsNot Nothing Then + DtComplementos.Dispose() + DtComplementos = Nothing End If + + Else + ErrorCancelarComplemento = True End If - - - Else ErrorCancelarComplemento = False End If From 344f2186bc4d1863aab5541aa6c119a99aa7d997 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Aug 2022 20:28:42 -0700 Subject: [PATCH 4/9] - --- App_Code/ClsVentas.vb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 13350f597..8058e13d5 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -2636,13 +2636,20 @@ Public Class ClsVentas -#Region "Firmas" - - Public Function GetVentasRelacionadas(CveVenta As Integer, CveEmpresa As Integer) As Boolean +#Region "Relacionadas" + ''' + ''' + ''' + ''' + ''' + ''' 1. Relacion de Padres, 2. Relacion sobre hijos + ''' + Public Function GetVentasRelacionadas(CveVenta As Integer, CveEmpresa As Integer, Optional TipoRelacion As Integer = 1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_VentasRelacionadasGet") With SqlAdapter.SelectCommand.Parameters .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@TipoRelacion", SqlDbType.Int).Value = TipoRelacion .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa End With Try From d3879c931864abd945bc6625cd537a943c6c5dfb Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Aug 2022 20:29:01 -0700 Subject: [PATCH 5/9] -- Aplica Pago PrePoliza de compra --- App_Code/ClsBancos.vb | 4 +- App_Code/ClsPaginas.vb | 353 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 354 insertions(+), 3 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 65340c487..551fca6ab 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -64,7 +64,7 @@ Public Class ClsBancos Public Property Importe As Double Public Property CveMoneda As Integer Public Property Moneda As String - Public Property TipoCambio As Double + Public Property TipoCambio As Decimal Public Property ClaveFormaPagoSAT As String Public Property Observaciones As String Public Property NotificarA As String @@ -762,7 +762,7 @@ Public Class ClsBancos Me.Importe = Data.Rows(0)("Importe").ToString.ToDouble Me.CveMoneda = Data.Rows(0)("CveMoneda").ToString.ToEntero Me.Moneda = Data.Rows(0)("Moneda").ToString - Me.TipoCambio = Data.Rows(0)("TipoCambio").ToString.ToDouble + Me.TipoCambio = Data.Rows(0)("TipoCambio").ToString.ToDecimal Me.Observaciones = Data.Rows(0)("Observaciones").ToString NotificarA = Data.Rows(0)("NotificarA").ToString Me.EsAbonoEnCuenta = CBool(Data.Rows(0)("EsAbonoEnCuenta").ToString) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ea843f582..4d0886e3e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5384,7 +5384,7 @@ Public Class ClsPaginas PaginaDict.Add("/RH/RepUniformes.aspx".ToUpper(), 630) PaginaDict.Add("/RH/RepUniformesResguardo.aspx".ToUpper(), 666) - PaginaDict.Add("/RH/ListaAsistenciaRH.aspx".ToUpper(), 631) + 'PaginaDict.Add("/RH/ListaAsistenciaRH.aspx".ToUpper(), 631) PaginaDict.Add("/RH/CatUniformes.aspx".ToUpper(), 632) PaginaDict.Add("/RH/CatUniformesDetalle.aspx".ToUpper(), 633) PaginaDict.Add("/RH/CatConceptosViaticos.aspx".ToUpper(), 662) @@ -9360,5 +9360,356 @@ Public Class ClsPaginas End If dtsec.Dispose() End Sub + +#Region "P A G O D E C O M P R A S " + + + Public Function AplicaPrePolizaPago(CompraActual As Compra, Pago As CompraPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean + Dim ErrorMovtos As Boolean = False + Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total + Dim ImporteMovimiento As Decimal = 0 + Dim tImportePago, tImporteCompra As Decimal + Dim CveConceptoContableComplementaria As Integer = 206 + + Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 17, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 17 + If CompraActual.CveTipoConceptoProveedor = 2 Then Pago.CveConceptoPago = 308 'cuando es acreedor + If CompraActual.CveMoneda <> 1 Then + Select Case Pago.CveConceptoPago + Case 17 : Pago.CveConceptoPago = 312 + Case 308 : Pago.CveConceptoPago = 309 : CveConceptoContableComplementaria = 310 + Case Else + End Select + End If + + Dim Concepto As String = String.Format("{0} F:{1}", CompraActual.ProveedorNombre, CompraActual.SerieFolio) + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + + Dim tFecha As Date = Pago.Fecha + Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) + + If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then + If UltimaFluctuacion.FechaFluctuacion <= tFecha Then + 'FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion + CompraActual.TC = UltimaFluctuacion.TCFluctuacion + End If + End If + + If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares + tImportePago = ((Pago.ImportePago * CompraActual.TC / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL + ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares + tImporteCompra = (Pago.ImportePago * CompraActual.TC).RoundSQL + tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteCompra = (Pago.ImportePago * CompraActual.TC).RoundSQL + tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + End If + + 'movimiento de pago proveedor + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, Pago.CveConceptoPago, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=CompraActual.TC) Then + ErrorMovtos = True + End If + + 'movimiento de pago proveedor Complementaria + If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (Pago.ImportePago * CompraActual.TC - Pago.ImportePago).RoundSQL, CveConceptoContableComplementaria, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=CompraActual.TC, ImporteME:=Pago.ImportePago) Then + ErrorMovtos = True + End If + End If + + 'si tiene iva y su proporcion + If Not ErrorMovtos AndAlso CompraActual.IVA <> 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IVA).RoundSQL + Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaIVA + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.IVA).RoundSQL * Pago.TCPago).RoundSQL + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + If CompraActual.IVANoDeducible > 0 Then + + Dim ImporteNOIVA As Decimal = CompraActual.IVANoDeducible * PorcentajePago + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteNOIVA, ImporteNOIVA, 280, CompraActual.SerieFolio, Concepto, Ret.IdCtaContIVANoAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + End If + + End If + + 'si tiene RET IVA y su proporcion + If Not ErrorMovtos AndAlso CompraActual.RetIVA > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.RetIVA).RoundSQL + Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetIVA + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.RetIVA).RoundSQL * Pago.TCPago).RoundSQL + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + End If + + 'si tiene Ret ISR y su proporcion + If Not ErrorMovtos AndAlso CompraActual.RetISR > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.RetISR).RoundSQL + Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetISR + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.RetISR).RoundSQL * Pago.TCPago).RoundSQL + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + End If + + 'si tiene IEPS y su proporcion + If Not ErrorMovtos AndAlso CompraActual.IEPS > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IEPS).RoundSQL + Dim Ret As New CompraRetenciones + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjConta.GetRetCuenta(26, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero + + If ObjConta.GetRetCuenta(25, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + + End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, 25, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.IEPS).RoundSQL * Pago.TCPago).RoundSQL + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, 26, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + + End If + + 'si tiene otros gastos/ingresos + ImporteMovimiento = Pago.OtroGastoIngreso + If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then + Dim tOtCveCon As Integer = 211 + Dim tOtTipoMovto As Boolean = False + If ImporteMovimiento < 0 Then + tOtTipoMovto = True : tOtCveCon = 78 + ImporteMovimiento = Math.Abs(ImporteMovimiento) + End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, CompraActual.SerieFolio, Concepto, 0, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + + End If + + If Not ErrorMovtos AndAlso CompraActual.TC <> Pago.TCPago Then + Dim ConceptoContable, IdCtaContable As Integer + Dim TipoMovimiento As Boolean + Dim Diferencia As Decimal = 0 + + If tImporteCompra <> tImportePago Then + If tImporteCompra > tImportePago Then + ConceptoContable = 64 : IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria + TipoMovimiento = True + Else + ConceptoContable = 65 : IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria + TipoMovimiento = False + End If + Diferencia = (tImporteCompra - tImportePago).Abs.RoundSQL + + End If + + If FuncionalidadFluctuacionImpuestos Then + Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, CompraActual.TC) + Diferencia = (Pago.ImportePago * CompraActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta + Diferencia -= ((CompraActual.IVA * PorcentajePago) * CompraActual.TC) - ((CompraActual.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA + Diferencia += ((CompraActual.RetIVA * PorcentajePago) * CompraActual.TC) - ((CompraActual.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA + Diferencia += ((CompraActual.RetISR * PorcentajePago) * CompraActual.TC) - ((CompraActual.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR + Diferencia -= ((CompraActual.IEPS * PorcentajePago) * CompraActual.TC) - ((CompraActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS + Diferencia = Diferencia.Abs.RoundSQL + End If + + If Diferencia <> 0 Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveCompra:=CompraActual.CveCompra, CveSubProyecto:=CompraActual.CveSubProyecto, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE) Then + ErrorMovtos = True + End If + End If + End If + + Return ErrorMovtos + End Function + + + Public Class CompraPago + Public Fecha As Date + Public Property CveIE As Integer = -1 + Public Property CvePersonal As Integer = -1 + Public Property ImportePago As Decimal = 0 + Public Property CveMonedaPago As Integer = 1 + Public Property TCPago As Decimal = 1 + Public Property CveCompraAmortizacion As Integer = 0 + Public Property OtroGastoIngreso As Decimal = 0 + Public Property CveConceptoPago As Integer = -1 'no definido de inicio + + End Class + + Public Class Compra + Public Property CveCompra As Integer = -1 + Public Property CveProveedor As Integer + Public Property CveTipoConceptoProveedor As Integer + Public Property CveMoneda As Integer + Public Property SerieFolio As String = "" + Public Property ProveedorNombre As String = "" + Public Property EsImportacion As Boolean = False + Public Property TC As Decimal = 1 + Public Property Total As Decimal + Public Property IVA As Decimal + Public Property IVADeducible As Decimal + Public Property IVANoDeducible As Decimal = 0 + Public Property IEPS As Decimal + Public Property RetIVA As Decimal + Public Property RetISR As Decimal + Public Property PorcentajeIVA As Decimal + Public Property CveConceptoRetIVA As Integer + Public Property CveConceptoRetISR As Integer + Public Property CveSubProyecto As Integer + Public Property UsuarioActual As Usuario + + Public Property IdCtaContableProv As Integer + Public Property IdCtaContableProvComplementaria As Integer + Public ReadOnly Property ConceptoPrePolizaIVA As CompraRetenciones + Get + Dim Ret As New CompraRetenciones + If EsImportacion Then + Ret.CveConceptoAcreditable = 288 + Ret.CveConceptoxAcreditar = 287 + Else + Ret.CveConceptoAcreditable = 19 + Ret.CveConceptoxAcreditar = 14 + End If + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + + Dim IdCtaIVAXAcreditar, IdCtaIVAAcreditable As Integer + Dim dt As DataTable = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA) + If dt.Rows.Count > 0 Then + IdCtaIVAXAcreditar = dt.Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero + IdCtaIVAAcreditable = dt.Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero + End If + + Ret.IdCtaContableAcreditable = IdCtaIVAAcreditable + Ret.IdCtaContablexAcreditar = IdCtaIVAXAcreditar + End If + + Return Ret + End Get + End Property + + Public ReadOnly Property ConceptoPrePolizaRetIVA As CompraRetenciones + Get + Dim Ret As New CompraRetenciones + Dim Funcionalidad As Integer + If CveConceptoRetIVA = 1 Then + Funcionalidad = 308 + Ret.CveConceptoAcreditable = 22 + Ret.CveConceptoxAcreditar = 15 + ElseIf CveConceptoRetIVA = 2 Then + Funcionalidad = 310 + Ret.CveConceptoAcreditable = 184 + Ret.CveConceptoxAcreditar = 183 + ElseIf CveConceptoRetIVA = 3 Then + Funcionalidad = 312 + Ret.CveConceptoAcreditable = 186 + Ret.CveConceptoxAcreditar = 185 + ElseIf CveConceptoRetIVA = 4 Then + Funcionalidad = 314 + Ret.CveConceptoAcreditable = 249 + Ret.CveConceptoxAcreditar = 248 + ElseIf CveConceptoRetIVA = 5 Then + Funcionalidad = 578 + Ret.CveConceptoAcreditable = 286 + Ret.CveConceptoxAcreditar = 285 + ElseIf CveConceptoRetIVA = 6 Then + Funcionalidad = 578 + Ret.CveConceptoAcreditable = 333 + Ret.CveConceptoxAcreditar = 334 + End If + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then + Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero + Else + Dim ObjConta As New ClsContabilidad + If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero + End If + End If + If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero + End If + End If + ObjConta.Dispose() + End If + End If + + Return Ret + End Get + End Property + Public ReadOnly Property ConceptoPrePolizaRetISR As CompraRetenciones + Get + Dim Ret As New CompraRetenciones + Dim Funcionalidad As Integer + If CveConceptoRetISR = 1 Then + Funcionalidad = 316 + Ret.CveConceptoAcreditable = 23 + Ret.CveConceptoxAcreditar = 16 + ElseIf CveConceptoRetISR = 2 Then + Funcionalidad = 318 + Ret.CveConceptoAcreditable = 244 + Ret.CveConceptoxAcreditar = 243 + ElseIf CveConceptoRetISR = 3 Then + Funcionalidad = 348 + Ret.CveConceptoAcreditable = 328 + Ret.CveConceptoxAcreditar = 327 + End If + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then + Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero + Else + Dim ObjConta As New ClsContabilidad + If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero + End If + End If + If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero + End If + End If + ObjConta.Dispose() + End If + End If + + Return Ret + End Get + + End Property + + End Class + + Public Class CompraRetenciones + Public Property CveConceptoxAcreditar As Integer + Public Property CveConceptoAcreditable As Integer + Public Property IdCtaContablexAcreditar As Integer + Public Property IdCtaContableAcreditable As Integer + Public Property IdCtaContIVANoAcreditable As Integer + + End Class + + + +#End Region + End Class From 8a84d04ed98a657dc24cb192de265cb7805c2328 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Aug 2022 20:30:26 -0700 Subject: [PATCH 6/9] - mensaje --- Bancos/IE.aspx.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 0a8ec268e..139f108c2 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -4303,6 +4303,7 @@ Partial Class Bancos_IE Dim MensajeError = "" Dim IdPolizaNueva = -1 Dim FolioPolizaNueva = -1 + Dim MensajeLog As String = "" Dim Banc As New ClsBancos Dim ObjConta As New ClsContabilidad(Banc.IniciaTransacSQL()) @@ -4427,7 +4428,7 @@ Partial Class Bancos_IE End If End If - + MensajeLog += "GeneraCancelacionEnCero:" & GeneraCancelacionEnCero Dim CvePrePolizaCancelacion As Integer = 0 If Not GeneraCancelacionEnCero Then From b43f233b17ac152718d7a4b66f717aad06bfd626 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Aug 2022 20:30:46 -0700 Subject: [PATCH 7/9] --- moneda --- Sistemas/UsuarioDetalle.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sistemas/UsuarioDetalle.aspx b/Sistemas/UsuarioDetalle.aspx index 4cba46973..5f143c8de 100644 --- a/Sistemas/UsuarioDetalle.aspx +++ b/Sistemas/UsuarioDetalle.aspx @@ -1497,7 +1497,7 @@ Porcentaje Máximo: - + From 986b21edc5dd3c9f9e2c1e1d07c6f35e963f7053 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Aug 2022 20:54:02 -0700 Subject: [PATCH 8/9] =?UTF-8?q?--=20cambio=20en=20prep=C3=B3lizas=20de=20p?= =?UTF-8?q?ago?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 340 ++------------ Compras/ReembolsosComprobaciones.aspx | 6 +- Compras/ReembolsosComprobaciones.aspx.vb | 562 ++++------------------- 3 files changed, 145 insertions(+), 763 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 5fc0f6dcc..3af2c50b1 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3081,7 +3081,7 @@ Partial Class Compras_Compras 'TIENE AMORTIZACIÓN If GvAnticiposSel.Rows.Count > 0 Then - If Not DdlTipoComprobante.SelectedValue.Contiene("NC") Then + If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then BtnCancelarCompra.Visible = False BtnEliminarCompra.Visible = False End If @@ -5861,8 +5861,6 @@ Partial Class Compras_Compras 'Dim CveIEProvisional = CveIE End If - - If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPrePoliza) Then Dim DTPlatilla As New DataTable @@ -5961,7 +5959,6 @@ Partial Class Compras_Compras If TipoCreditoInteres Then - Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador @@ -5974,7 +5971,7 @@ Partial Class Compras_Compras End If End If End If - + importeMovimiento = 0 : importeMN = 0 If TipoCambioCompra > 1 AndAlso DdlMoneda.SelectedValue.ToEntero <> 1 Then Concepto += $" TC{TipoCambioCompra} ${importeMovimiento.FormatoNumero(2)}" If TipoCambioCompra = 1 Or DdlMoneda.SelectedValue.ToEntero = 1 Then @@ -6019,6 +6016,17 @@ Partial Class Compras_Compras IdCtaContable = IdCuentaBancaria End If + If importeMovimiento <> 0 Then + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimiento + Pago.CveIE = CveIE + Pago.CveMonedaPago = 1 + Pago.CveCompraAmortizacion = -1 + 'Pago.CveConceptoPago = CveConceptoPago + + ErrorMovtosCxP = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) + End If + Case 14 'IVA X Acreditar importeMovimiento = CompraActual.IVA importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL @@ -6071,13 +6079,13 @@ Partial Class Compras_Compras End If End If - Case 224 'Otros impuestos - If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then - importeMovimiento = OtrosImpuestos - importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - IdCtaContable = If(UsuarioActual.CveEmpresa = 119, 1171, -1) - End If + 'Case 224 'Otros impuestos + ' If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then + ' importeMovimiento = OtrosImpuestos + ' importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador + ' If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + ' IdCtaContable = If(UsuarioActual.CveEmpresa = 119, 1171, -1) + ' End If Case 15 'RetIVA X Acreditar Honorarios/Serv. Prof. If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then @@ -7070,6 +7078,17 @@ Partial Class Compras_Compras End If End If + If importeMovimiento > 0 Then + Dim Pago As New CompraPago + Pago.ImportePago = importeFE + Pago.CveIE = -1 + Pago.CvePersonal = CvePersonal + + ErrorPrepoliza = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) + + End If + + Case 21 'Anticipo If ArrAnticipos.Count > 0 Then @@ -7213,12 +7232,15 @@ Partial Class Compras_Compras If Ant.TipoMovto.Contiene("Ant") Then - Dim Pago As New CompraPago - Pago.ImportePago = importeMovimientoNC - Pago.CveIE = Ant.CveIE - Pago.CveMonedaPago = 1 + If importeMovimientoNC <> 0 Then + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimientoNC + Pago.CveIE = Ant.CveIE + Pago.CveMonedaPago = 1 - ErrorMovtosCxP = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) + ErrorMovtosCxP = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) + + End If End If @@ -7456,13 +7478,16 @@ Partial Class Compras_Compras If CveIE > 0 Then - 'inserto los movimientos de la conta para abonar al saldo - Dim Pago As New CompraPago - Pago.ImportePago = ImporteCompra - Pago.CveIE = CveIE - Pago.CveMonedaPago = 1 + If ImporteCompra <> 0 Then + 'inserto los movimientos de la conta para abonar al saldo + Dim Pago As New CompraPago + Pago.ImportePago = ImporteCompra + Pago.CveIE = CveIE + Pago.CveMonedaPago = 1 - ErrorMovtosCxP = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) + ErrorMovtosCxP = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) + + End If Else ErrorMovtosIE = True @@ -20561,111 +20586,6 @@ Partial Class Compras_Compras End Sub - - Private Function AplicaPrePolizaPago(CompraActual As Compra, Pago As CompraPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean - Dim ErrorMovtos As Boolean = False - Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total - Dim ImporteMovimiento As Decimal = 0 - Dim CveConceptoContableComplementaria As Integer = 201 - - Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 17, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 17 - If CompraActual.CveTipoConceptoProveedor = 2 Then Pago.CveConceptoPago = 308 'cuando es acreedor - If CompraActual.CveMoneda <> 1 Then - Select Case Pago.CveConceptoPago - Case 17 : Pago.CveConceptoPago = 312 - Case 308 : Pago.CveConceptoPago = 309 : CveConceptoContableComplementaria = 307 - Case Else - End Select - End If - Dim Concepto As String = CompraActual.ProveedorNombre & " F:" & CompraActual.SerieFolio - - 'movimiento de pago proveedor - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, Pago.CveConceptoPago, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=CompraActual.TC) Then - ErrorMovtos = True - End If - - 'movimiento de pago proveedor Complementaria - If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (Pago.ImportePago * CompraActual.TC - Pago.ImportePago).RoundSQL, CveConceptoContableComplementaria, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=CompraActual.TC, ImporteME:=Pago.ImportePago) Then - ErrorMovtos = True - End If - End If - - 'si tiene iva y su proporcion - ImporteMovimiento = (PorcentajePago * CompraActual.IVA).RoundSQL - If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then - - Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaIVA - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - End If - - 'si tiene RET IVA y su proporcion - ImporteMovimiento = (PorcentajePago * CompraActual.RetIVA).RoundSQL - If Not ErrorMovtos AndAlso ImporteMovimiento > 0 Then - Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetIVA - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - End If - - 'si tiene Ret ISR y su proporcion - ImporteMovimiento = (PorcentajePago * CompraActual.RetISR).RoundSQL - If Not ErrorMovtos AndAlso ImporteMovimiento > 0 Then - Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetISR - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - End If - - 'si tiene IEPS y su proporcion - ImporteMovimiento = (PorcentajePago * CompraActual.IEPS).RoundSQL - If Not ErrorMovtos AndAlso ImporteMovimiento > 0 Then - Dim Ret As New CompraRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(26, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - End If - If ObjConta.GetRetCuenta(25, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - End If - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, 25, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, 26, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=CvePersonal) Then ErrorMovtos = True - - End If - - If Not ErrorMovtos AndAlso CompraActual.TC <> Pago.TCPago Then - ImporteMovimiento = (Pago.ImportePago * CompraActual.TC) - (Pago.ImportePago * Pago.TCPago) - Dim ConceptoContable, IdCtaContable As Integer - Dim TipoMovimiento As Boolean - If ImporteMovimiento > 0 Then - ConceptoContable = 64 : TipoMovimiento = True - IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria - ElseIf ImporteMovimiento < 0 Then - ConceptoContable = 65 : TipoMovimiento = False - IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria - End If - - ImporteMovimiento = ImporteMovimiento.Abs.RoundSQL() - If ImporteMovimiento <> 0 Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ImporteMovimiento, ConceptoContable, Concepto, Concepto, IdCtaContable, CveCompra:=CompraActual.CveCompra, CveSubProyecto:=CompraActual.CveSubProyecto, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE) Then - ErrorMovtos = True - End If - End If - End If - - Return ErrorMovtos - End Function - End Class Public Class MMensajeDevolucion @@ -20675,167 +20595,3 @@ Public Class MMensajeDevolucion Public Property Total As Decimal End Class -Public Class CompraPago - Public Property CveIE As Integer = -1 - Public Property CvePersonal As Integer = -1 - Public Property ImportePago As Decimal - Public Property CveMonedaPago As Integer = 1 - Public Property TCPago As Decimal = 1 - Public Property CveCompraAmortizacion As Integer - Public Property CveConceptoPago As Integer = -1 'no definido de inicio - -End Class - -Public Class Compra - Public Property CveCompra As Integer = -1 - Public Property CveProveedor As Integer - Public Property CveTipoConceptoProveedor As Integer - Public Property CveMoneda As Integer - Public Property SerieFolio As String = "" - Public Property ProveedorNombre As String = "" - Public Property EsImportacion As Boolean = False - Public Property TC As Decimal = 1 - Public Property Total As Decimal - Public Property IVA As Decimal - Public Property IEPS As Decimal - Public Property RetIVA As Decimal - Public Property RetISR As Decimal - Public Property PorcentajeIVA As Decimal - Public Property CveConceptoRetIVA As Integer - Public Property CveConceptoRetISR As Integer - Public Property CveSubProyecto As Integer - Public Property UsuarioActual As Usuario - - Public Property IdCtaContableProv As Integer - Public Property IdCtaContableProvComplementaria As Integer - Public ReadOnly Property ConceptoPrePolizaIVA As CompraRetenciones - Get - Dim Ret As New CompraRetenciones - If EsImportacion Then - Ret.CveConceptoAcreditable = 288 - Ret.CveConceptoxAcreditar = 287 - Else - Ret.CveConceptoAcreditable = 19 - Ret.CveConceptoxAcreditar = 14 - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - - Dim IdCtaIVAXAcreditar, IdCtaIVAAcreditable As Integer - Dim dt As DataTable = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA) - If dt.Rows.Count > 0 Then - IdCtaIVAXAcreditar = dt.Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaIVAAcreditable = dt.Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - End If - - Ret.IdCtaContableAcreditable = IdCtaIVAAcreditable - Ret.IdCtaContablexAcreditar = IdCtaIVAXAcreditar - End If - - Return Ret - End Get - End Property - - Public ReadOnly Property ConceptoPrePolizaRetIVA As CompraRetenciones - Get - Dim Ret As New CompraRetenciones - Dim Funcionalidad As Integer - If CveConceptoRetIVA = 1 Then - Funcionalidad = 308 - Ret.CveConceptoAcreditable = 22 - Ret.CveConceptoxAcreditar = 15 - ElseIf CveConceptoRetIVA = 2 Then - Funcionalidad = 310 - Ret.CveConceptoAcreditable = 184 - Ret.CveConceptoxAcreditar = 183 - ElseIf CveConceptoRetIVA = 3 Then - Funcionalidad = 312 - Ret.CveConceptoAcreditable = 186 - Ret.CveConceptoxAcreditar = 185 - ElseIf CveConceptoRetIVA = 4 Then - Funcionalidad = 314 - Ret.CveConceptoAcreditable = 249 - Ret.CveConceptoxAcreditar = 248 - ElseIf CveConceptoRetIVA = 5 Then - Funcionalidad = 578 - Ret.CveConceptoAcreditable = 286 - Ret.CveConceptoxAcreditar = 285 - ElseIf CveConceptoRetIVA = 6 Then - Funcionalidad = 578 - Ret.CveConceptoAcreditable = 333 - Ret.CveConceptoxAcreditar = 334 - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - Dim ObjConta As New ClsContabilidad - If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - ObjConta.Dispose() - End If - End If - - Return Ret - End Get - End Property - Public ReadOnly Property ConceptoPrePolizaRetISR As CompraRetenciones - Get - Dim Ret As New CompraRetenciones - Dim Funcionalidad As Integer - If CveConceptoRetISR = 1 Then - Funcionalidad = 316 - Ret.CveConceptoAcreditable = 23 - Ret.CveConceptoxAcreditar = 16 - ElseIf CveConceptoRetISR = 2 Then - Funcionalidad = 318 - Ret.CveConceptoAcreditable = 244 - Ret.CveConceptoxAcreditar = 243 - ElseIf CveConceptoRetISR = 3 Then - Funcionalidad = 348 - Ret.CveConceptoAcreditable = 328 - Ret.CveConceptoxAcreditar = 327 - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - Dim ObjConta As New ClsContabilidad - If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - ObjConta.Dispose() - End If - End If - - Return Ret - End Get - - End Property - -End Class - -Public Class CompraRetenciones - Public Property CveConceptoxAcreditar As Integer - Public Property CveConceptoAcreditable As Integer - Public Property IdCtaContablexAcreditar As Integer - Public Property IdCtaContableAcreditable As Integer -End Class - diff --git a/Compras/ReembolsosComprobaciones.aspx b/Compras/ReembolsosComprobaciones.aspx index 165b2899a..772a28732 100644 --- a/Compras/ReembolsosComprobaciones.aspx +++ b/Compras/ReembolsosComprobaciones.aspx @@ -294,7 +294,7 @@ + DataKeyNames="CveCompra,FechaCompra,CveProveedor,Proveedor,SerieFolio,SubTotal,IVA,RetIVA,RetISR,IEPS,Total,TipoCambio,IdCtaContProveedores,IdCtaContAcreedor,CvePrePoliza,IdPoliza,CveRetIVAConcepto,CveRetISRConcepto,IVAPorcentaje,IVADeducible,IVANoDeducible,CveTipoConcepto,CveSubProyecto,IVAPorPagar"> @@ -337,9 +337,9 @@ - Monto Compra (Saldo Orig.) + Total -   +   diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index adea81f2d..43a31ced1 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -1,4 +1,6 @@ - +Option Explicit On +Option Strict On + Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms @@ -25,6 +27,24 @@ Partial Class Compras_ReembolsosComprobaciones ViewState("CveMoneda") = value End Set End Property + Private Property CveMonedaPago As Integer + Get + Return ViewState("CveMonedaPago").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMonedaPago") = value + End Set + End Property + + Private Property TipoCambioPago As Decimal + Get + Return ViewState("TipoCambioPago").ToString.ToDecimal + End Get + Set(value As Decimal) + ViewState("TipoCambioPago") = value + End Set + End Property + Private Property CvePrePolizaComprobacion As Integer Get @@ -92,6 +112,7 @@ Partial Class Compras_ReembolsosComprobaciones TxtAboneA.Enabled = False CveCuentaBancaria = -1 ViewState("CveMoneda") = 1 + CveMonedaPago = 1 Folio = "" 'Cargar Filtros @@ -224,12 +245,13 @@ Partial Class Compras_ReembolsosComprobaciones HdnCheque.Value = tCveIE.ToString LtChequeImporte.Text = ObjIE.Importe.FormatoNumero + CveMonedaPago = ObjIE.CveMoneda + TipoCambioPago = ObjIE.TipoCambio Dim IndexCheque = If(UsuarioActual.TienePermisoProceso(113), DDlCheques.SelectedIndex - 1, DDlCheques.SelectedIndex) TxtChequeSaldo.Text = DtCheques.Rows(DDlCheques.SelectedIndex - 1)("Saldo").ToString.FormatoNumero - Else Alert("El Documento solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) End If @@ -323,7 +345,7 @@ Partial Class Compras_ReembolsosComprobaciones Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) If dr IsNot Nothing Then - CveMoneda = dr("CveMoneda").ToString.ToEntero + CveMonedaPago = dr("CveMoneda").ToString.ToEntero IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero End If @@ -540,7 +562,7 @@ Partial Class Compras_ReembolsosComprobaciones Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) If dr IsNot Nothing Then - CveMoneda = dr("CveMoneda").ToString.ToEntero + CveMonedaPago = dr("CveMoneda").ToString.ToEntero IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero End If @@ -609,29 +631,18 @@ Partial Class Compras_ReembolsosComprobaciones End If End If - - If CveIERegistrado > 0 Or CveIEExcedente > 0 Or ChkReembolsarSinBancos.Checked Then 'inserto los movimientos de la conta para abonar al saldo If ((TxtImporte.Text.ToDecimal > 0 Or ChkReembolsarSinBancos.Checked) And CvePrePolizaIERegistrado > 0) Or ((TxtImporteVinculado.Text.ToDecimal > 0 And HdnCheque.Value.ToEntero > 0) Or ChkReembolsarSinBancos.Checked) Then Dim SaldoCheque = If(HdnCheque.Value.ToEntero > 0, TxtChequeSaldo.Text.ToDecimal, TxtImporte.Text.ToDecimal) - Dim ImportePagar = 0.0 - Dim ImporteOriginal = 0.0 - Dim ImporteMovto = 0.0 + Dim PorcentajePago As Decimal = 1 Dim FechaMovimiento As Date = TxtFechaDocumento.Text.ToDate - Dim ConceptoMovimiento As String = "" - Dim Referencia As String = "" Dim IdCtaProveedor As Integer = 0 - Dim IdCtaIVAxAcreditar As Integer = 0 - Dim IdCtaIVAAcreditable As Integer = 0 - Dim IdCtaRetIVA As Integer = 0 - Dim IdCtaRetISR As Integer = 0 Dim IdCtaOtrosProductos As Integer = 0 Dim CvePrePolizaUnificar As Integer = 0 - Dim SeUnifico = False If UsuarioActual.Empresa.TipoContabilidad = 2 Then @@ -650,34 +661,6 @@ Partial Class Compras_ReembolsosComprobaciones End If End If - 'Obtenemos la cuenta del IVAxAcreditar - If ObjMov.GetRetCuenta(14, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaIVAxAcreditar = ObjMov.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero - End If - End If - - 'Obtenemos la cuenta del IVAAcreditable - If ObjMov.GetRetCuenta(19, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaIVAAcreditable = ObjMov.DtResultados.Rows(0)("IdCuentaIVAAcreditable").ToString.ToEntero - End If - End If - - 'Obtenemos la cuenta del RetIVA - If ObjMov.GetRetCuenta(15, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaRetIVA = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - - 'Obtenemos la cuenta del RetISR - If ObjMov.GetRetCuenta(16, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaRetISR = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - 'Obtenemos la cuenta del IdCtaOtrosProductos If ObjMov.GetRetCuenta(132, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then @@ -690,31 +673,41 @@ Partial Class Compras_ReembolsosComprobaciones For Each gvr As GridViewRow In GvCxP.Rows If gvr.FCCheckBox("Chk").Checked Then - ConceptoMovimiento = $"{gvr.DataKey("Proveedor")} F:{gvr.DataKey("SerieFolio")} {If(DdlPersonal.Visible, DdlPersonal.SelectedItem.Text, DdlCajaChica.SelectedItem.Text)}" - Referencia = gvr.DataKey("SerieFolio").ToString - IdCtaProveedor = gvr.DataKey("IdCtaContProveedores").ToEntero + Dim ImporteMovto As Decimal + Dim ConceptoMovimiento As String = $"{gvr.DataKey("Proveedor")} F:{gvr.DataKey("SerieFolio")} {If(DdlPersonal.Visible, DdlPersonal.SelectedItem.Text, DdlCajaChica.SelectedItem.Text)}" + Dim Referencia As String = gvr.DataKey("SerieFolio").ToString + Dim ImportePagar, ImporteOriginal As Decimal - - ImportePagar = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - ImporteOriginal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - - Dim CveConceptoContablePago As Integer = 17 - If gvr.DataKey("CveTipoConcepto").ToEntero = 2 Then CveConceptoContablePago = 308 'cuando es acreedor - If CveMoneda <> 1 Then - Select Case CveConceptoContablePago - Case 17 - CveConceptoContablePago = 312 - Case 308 - CveConceptoContablePago = 309 - Case Else - End Select - End If If gvr.DataKey("CveTipoConcepto").ToEntero = 2 Then IdCtaProveedor = gvr.DataKey("IdCtaContAcreedor").ToEntero Else IdCtaProveedor = gvr.DataKey("IdCtaContProveedores").ToEntero End If + Dim CompraActual As New Compra + CompraActual.CveCompra = gvr.DataKey("CveCompra").ToEntero + CompraActual.CveTipoConceptoProveedor = gvr.DataKey("CveTipoConcepto").ToEntero + CompraActual.CveProveedor = gvr.DataKey("CveProveedor").ToEntero + CompraActual.CveMoneda = gvr.DataKey("CveMoneda").ToEntero + CompraActual.SerieFolio = gvr.DataKey("SerieFolio").ToString + CompraActual.ProveedorNombre = gvr.DataKey("Proveedor") + CompraActual.TC = gvr.DataKey("TipoCambio").ToDecimal + CompraActual.Total = gvr.DataKey("Total").ToDecimal + CompraActual.IVA = gvr.DataKey("IVA").ToDecimal + CompraActual.IVADeducible = gvr.DataKey("IVADeducible").ToDecimal + CompraActual.IEPS = gvr.DataKey("IEPS").ToDecimal + CompraActual.RetIVA = gvr.DataKey("RetIVA").ToDecimal + CompraActual.RetISR = gvr.DataKey("RetISR").ToDecimal + CompraActual.CveConceptoRetISR = gvr.DataKey("CveRetISRConcepto").ToEntero + CompraActual.CveConceptoRetIVA = gvr.DataKey("CveRetIVAConcepto").ToEntero + CompraActual.PorcentajeIVA = gvr.DataKey("IVAPorcentaje").ToDecimal + CompraActual.UsuarioActual = UsuarioActual + CompraActual.CveSubProyecto = gvr.DataKey("CveSubProyecto").ToEntero + CompraActual.IdCtaContableProv = IdCtaProveedor + + ImportePagar = gvr.FCTextBox("TxtAbonar").Text.ToDecimal + ImporteOriginal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal + If SaldoCheque > 0 Then 'ImporteMovto = If(ImportePagar > SaldoCheque, SaldoCheque, ImportePagar) @@ -725,7 +718,6 @@ Partial Class Compras_ReembolsosComprobaciones 'SE USARA PARA PODER ELIMINAR UNA COMPROBACION CvePrePolizaPagoOriginal = ObjMov.AddPrePolizas("Compras/Comprobaciones6", 9, ImporteMovto, ImporteMovto, CveMoneda, TxtFechaPrePoliza.Text.ToDate, If(TxtObservaciones.Text.Trim = "", $"Compra: { gvr.DataKey("SerieFolio").ToString }", TxtObservaciones.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - 'registramos el nuevo IE If CveCajaChica > 0 Then CveIEPago = 0 @@ -735,229 +727,43 @@ Partial Class Compras_ReembolsosComprobaciones CveIEPago = CveIERegistrado End If - - Dim ComisionTmp As Decimal = gvr.FCTextBox("TxtComision").Text.ToDecimal + Dim Pago As New CompraPago + Pago.Fecha = TxtFechaDocumento.Text.ToDate + Pago.ImportePago = ImporteMovto + Pago.CveIE = CveIEPago + Pago.CveMonedaPago = CveMonedaPago + Pago.TCPago = TipoCambioPago 'Otros Ingresos - If MsgError = "" AndAlso (ChkAjusteOI.Checked Or ChkOtrosIngresosCheque.Checked) AndAlso ComisionTmp <> 0 Then - - Dim tOtCveCon As Integer = 211 - Dim tOtTipoMovto As Boolean = False - If ComisionTmp < 0 Then - tOtTipoMovto = True : tOtCveCon = 78 - ComisionTmp = Math.Abs(ComisionTmp) - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, tOtTipoMovto, ComisionTmp, Referencia, tOtCveCon, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIERegistrado, CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveSubProyecto:=gvr.DataKey("CveSubProyecto").ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ComisionTmp), ImporteMX:=ComisionTmp * tipoCambio) Then - MsgError = "no se pudo insertar el detalle de la poliza de otros ingresos" - End If - If CveCajaChica > 0 AndAlso Not HdnCheque.Value.ToEntero > 0 Then - - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, Not tOtTipoMovto, ComisionTmp, Referencia, tOtCveCon, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIERegistrado, CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveSubProyecto:=gvr.DataKey("CveSubProyecto").ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ComisionTmp), ImporteMX:=ComisionTmp * tipoCambio, Contabilizable:=False) Then - MsgError = "no se pudo insertar el detalle de la poliza de otros ingresos" - End If - End If + If MsgError = "" AndAlso (ChkAjusteOI.Checked Or ChkOtrosIngresosCheque.Checked) AndAlso gvr.FCTextBox("TxtComision").Text.ToDecimal <> 0 Then + Pago.OtroGastoIngreso = gvr.FCTextBox("TxtComision").Text.ToDecimal End If - If gvr.DataKey("Original").ToDecimal > 0 Then PorcentajePago = (ImporteMovto / gvr.DataKey("Original").ToDecimal) Else PorcentajePago = 1 - If MsgError = "" AndAlso Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then - Dim ImporteMovtoTmp As Decimal = ImporteMovto - 'If ComisionTmp < 0 Then - ' ImporteMovtoTmp = ImporteMovto + ComisionTmp - 'End If - 'Si es caja chica metemos el concepto 30, si es funcionario metemos 29 - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, ImporteMovtoTmp, Referencia, If(CveCajaChica > 0, 30, 29), ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(CveCajaChica > 0, IdCuentaBancaria, IdCtaPersonal), -1, CveIE:=CveIEPago, CveIEDevolucion:=If(CveCajaChica > 0, If(DDlCheques.SelectedValue.ToEntero = -1, CveIECajaChica, DDlCheques.SelectedValue.ToEntero), -1), CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovtoTmp), ImporteMX:=ImporteMovtoTmp * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, Contabilizable:=If(CveCajaChica > 0 Or CvePersonal > 0, Not UsaSimplificacionCajaChica, True)) Then + ImporteMovto += Pago.OtroGastoIngreso ' si ajuste, sedebe de aplicar en su contraparte + If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, ImporteMovto, Referencia, If(CveCajaChica > 0, 30, 29), ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(CveCajaChica > 0, IdCuentaBancaria, IdCtaPersonal), -1, CveIE:=CveIEPago, CveIEDevolucion:=If(CveCajaChica > 0, If(DDlCheques.SelectedValue.ToEntero = -1, CveIECajaChica, DDlCheques.SelectedValue.ToEntero), -1), CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, Contabilizable:=If(CveCajaChica > 0 Or CvePersonal > 0, Not UsaSimplificacionCajaChica, True)) Then MsgError = "Detalle" End If - End If - 'Pago Proveedores - If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, ImporteMovto, Referencia, CveConceptoContablePago, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIEPago, CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal) Then - MsgError = "Detalle" - End If - - If MsgError = "" AndAlso gvr.DataKey("IVA").ToDecimal > 0 Then - Dim PorcentajeIVA As Decimal = gvr.DataKey("IVAPorcentaje").ToDecimal - Dim IdCtaContIVAXAcreditar As Integer = 0 - Dim IdCtaContIVAAcreditable As Integer = 0 - Dim IdCtaContIVANoAcreditable As Integer = 0 - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then - IdCtaContIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaContIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - IdCtaContIVANoAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVANoAcreditable").ToString.ToEntero - End If - If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then - If ImporteMovto = gvr.FCLiteral("LtlSaldo").Text.ToDouble Then - 'Agrego el IVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, gvr.DataKey("IVA").ToDecimal, Referencia, 14, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAXAcreditar > 0, IdCtaContIVAXAcreditar, IdCtaIVAxAcreditar), -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVA").ToDecimal), ImporteMX:=(gvr.DataKey("IVA").ToDecimal) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - - 'Agrego el IVA - If gvr.DataKey("IVADeducible").ToDecimal > 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, gvr.DataKey("IVADeducible").ToDecimal, Referencia, 19, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAAcreditable > 0, IdCtaContIVAAcreditable, IdCtaIVAAcreditable), -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVADeducible").ToDecimal), ImporteMX:=(gvr.DataKey("IVADeducible").ToDecimal) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - End If - End If - Else - 'Agrego el IVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, gvr.DataKey("IVA").ToDecimal * PorcentajePago, Referencia, 14, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAXAcreditar > 0, IdCtaContIVAXAcreditar, IdCtaIVAxAcreditar), -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVA").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("IVA").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - 'Agrego el IVA - If gvr.DataKey("IVADeducible").ToDecimal > 0 Then - Dim ImporteIVA As Decimal = gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, ImporteIVA, Referencia, 19, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAAcreditable > 0, IdCtaContIVAAcreditable, IdCtaIVAAcreditable), -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteIVA), ImporteMX:=(ImporteIVA) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - End If + If AplicaPrePolizaPago(CompraActual, Pago, CvePrePolizaPago, ObjMov) Then + MsgError = "Detalle" End If - If gvr.DataKey("IVANoDeducible").ToDecimal > 0 Then - - Dim ImporteNOIVA As Decimal = gvr.DataKey("IVANoDeducible").ToDecimal * PorcentajePago - - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, ImporteNOIVA, Referencia, 280, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVANoAcreditable > 0, IdCtaContIVANoAcreditable, IdCtaIVAAcreditable), -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, CveSubProyecto:=gvr.DataKey("CveSubProyecto").ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteNOIVA), ImporteMX:=(ImporteNOIVA) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - End If - - End If - - If MsgError = "" AndAlso gvr.DataKey("RetIVA").ToDecimal > 0 Then - Dim ConceptoContableRetIVAXAcreditar = 0, ConceptoContableRetIVAAcreditable = 0, IdCtaContableRetIVAXAcreditar = 0, IdCtaContableRetIVAAcreditable = 0, CveFunc = 0, CveFuncAcreditable = 0 - Select Case gvr.DataKey("CveRetIVAConcepto").ToEntero - Case 1 - ConceptoContableRetIVAXAcreditar = 15 - ConceptoContableRetIVAAcreditable = 22 - CveFunc = 307 - CveFuncAcreditable = 308 - Case 2 - ConceptoContableRetIVAXAcreditar = 183 - ConceptoContableRetIVAAcreditable = 184 - CveFunc = 309 - CveFuncAcreditable = 310 - Case 3 - ConceptoContableRetIVAXAcreditar = 185 - ConceptoContableRetIVAAcreditable = 186 - CveFunc = 311 - CveFuncAcreditable = 312 - Case 4 - ConceptoContableRetIVAXAcreditar = 248 - ConceptoContableRetIVAAcreditable = 249 - CveFunc = 313 - CveFuncAcreditable = 314 - Case 5 - ConceptoContableRetIVAXAcreditar = 285 - ConceptoContableRetIVAAcreditable = 286 - CveFunc = 578 - CveFuncAcreditable = 578 - End Select - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If IdCtaRetIVA > 0 Then - IdCtaContableRetIVAXAcreditar = IdCtaRetIVA - ElseIf UsuarioActual.Empresa.Funcionalidad(CveFunc).ToEntero > 0 Then - IdCtaContableRetIVAXAcreditar = UsuarioActual.Empresa.Funcionalidad(CveFunc).ToEntero - Else - If ObjMov.GetRetCuenta(ConceptoContableRetIVAXAcreditar, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContableRetIVAXAcreditar = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - If IdCtaRetIVA > 0 Then - IdCtaContableRetIVAAcreditable = IdCtaRetIVA - ElseIf UsuarioActual.Empresa.Funcionalidad(CveFuncAcreditable).ToEntero > 0 Then - IdCtaContableRetIVAAcreditable = UsuarioActual.Empresa.Funcionalidad(CveFuncAcreditable).ToEntero - Else - If ObjMov.GetRetCuenta(ConceptoContableRetIVAAcreditable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContableRetIVAAcreditable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - End If - - If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then - If ImporteMovto = gvr.FCLiteral("LtlSaldo").Text.ToDouble Then - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, gvr.DataKey("RetIVA").ToDecimal, Referencia, ConceptoContableRetIVAXAcreditar, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetIVAXAcreditar, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetIVA").ToDecimal), ImporteMX:=(gvr.DataKey("RetIVA").ToDecimal) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, gvr.DataKey("RetIVA").ToDecimal, Referencia, ConceptoContableRetIVAAcreditable, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetIVAAcreditable, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetIVA").ToDecimal), ImporteMX:=(gvr.DataKey("RetIVA").ToDecimal) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - End If - Else - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetIVAXAcreditar, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetIVAXAcreditar, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetIVAAcreditable, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetIVAAcreditable, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - End If - - Dim AcreditaISR As Boolean = False - If UsuarioActual.CveEmpresa = 140 Then AcreditaISR = True - - If MsgError = "" AndAlso AcreditaISR AndAlso gvr.DataKey("RetISR").ToDecimal > 0 Then - Dim ConceptoContableRetISRXAcreditar = 0, ConceptoContableRetISRAcreditable = 0, IdCtaContableRetISRXAcreditar = 0, IdCtaContableRetISRAcreditable = 0 - Select Case gvr.DataKey("CveRetIVAConcepto").ToEntero - Case 1 - ConceptoContableRetISRXAcreditar = 16 - ConceptoContableRetISRAcreditable = 23 - - Case 2 - ConceptoContableRetISRXAcreditar = 243 - ConceptoContableRetISRAcreditable = 244 - CveFunc = 309 - CveFuncAcreditable = 310 - - Case 3 - ConceptoContableRetISRXAcreditar = 327 - ConceptoContableRetISRAcreditable = 328 - CveFunc = 311 - - End Select - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, gvr.DataKey("RetISR").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetISRXAcreditar, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetISRXAcreditar, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetISR").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaExcedente, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, gvr.DataKey("RetISR").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetISRAcreditable, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetISRAcreditable, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetISR").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaExcedente, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - End If End If Dim SaldoExcedente As Decimal = gvr.FCTextBox("TxtSaldoExcedente").Text.ToDecimal If MsgError = "" AndAlso UsuarioActual.Empresa.Funcionalidad(506) = "1" And CbPermitirExcedente.Checked = True And SaldoExcedente > 0 Then If DDlPermitirExcedente.SelectedValue = "1" Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, SaldoExcedente, Referencia, CveConceptoContablePago, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, SaldoExcedente), ImporteMX:=(SaldoExcedente) * tipoCambio, CvePersonal:=CvePersonal, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal) Then - MsgError = "Detalle Reembolso Personal" - End If + If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, SaldoExcedente, Referencia, 132, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaOtrosProductos, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, SaldoExcedente), ImporteMX:=SaldoExcedente * tipoCambio, CvePersonal:=CvePersonal, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal) Then MsgError = "Detalle Reembolso Personal" End If ElseIf DDlPermitirExcedente.SelectedValue = "2" Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, SaldoExcedente, Referencia, CveConceptoContablePago, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, SaldoExcedente), ImporteMX:=SaldoExcedente * tipoCambio, CvePersonal:=CvePersonal, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal) Then - MsgError = "Detalle Reembolso Personal Excedente" - End If + If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, SaldoExcedente, Referencia, 29, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaPersonal, -1, CveIE:=CveIEPago, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, SaldoExcedente), ImporteMX:=SaldoExcedente * tipoCambio, CvePersonal:=CvePersonal, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal) Then MsgError = "Detalle Reembolso Personal Excedente" End If @@ -967,12 +773,6 @@ Partial Class Compras_ReembolsosComprobaciones 'Unificamos el cheque y la caja chica con los pagos y facturas If MsgError = "" AndAlso Not IdPoliza > 0 AndAlso Not gvr.DataKey("IdPoliza").ToEntero > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(219) = "1" Then If MsgError = "" Then - 'CvePrePolizaUnificar = CvePrePolizaPago - ''codigo temoral, RMF. falta criterio de unificacion, en una póliza nueva de diario - 'If UsuarioActual.CveEmpresa = 119 Then - ' CvePrePolizaUnificar = ObjMov.AddPrePolizas("Compras/ComprobacionesU", 9, ImporteMovto, ImporteMovto, CveMoneda, TxtFechaPrePoliza.Text.ToDate, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=TxtFolio.Text.Trim.ToEntero) - ' 'CvePrePolizaUnificar = -1 ' unificar en una de diario - 'End If If Not ObjMov.PrePolizaUnificacion(CvePrePolizaPago, gvr.DataKey("CvePrePoliza").ToEntero) Then MsgError = "No se pudo unificar la prepoliza" @@ -1000,177 +800,25 @@ Partial Class Compras_ReembolsosComprobaciones End If End If - If gvr.DataKey("Original").ToDecimal > 0 Then PorcentajePago = (ImporteMovto / gvr.DataKey("Original").ToDecimal).RoundSQL Else PorcentajePago = 1 + Dim Pago As New CompraPago + Pago.ImportePago = ImporteMovto + Pago.CveIE = CveIEExcedente + Pago.CveMonedaPago = CveMoneda - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, ImporteMovto, Referencia, CveConceptoContablePago, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=(ImporteMovto * tipoCambio)) Then + + If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, ImporteMovto, Referencia, 30, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCuentaBancaria, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CveCuenta:=CveCuentaBancaria) Then + MsgError = "no se pudo insertar el detalle de la poliza" + End If + + If Not AplicaPrePolizaPago(CompraActual, Pago, CvePrePolizaPago, ObjMov) Then MsgError = "Detalle" - Exit For - Else - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, ImporteMovto, Referencia, 30, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCuentaBancaria, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CveCuenta:=CveCuentaBancaria) Then - MsgError = "no se pudo insertar el detalle de la poliza" + End If + + 'Otros Ingresos + If ChkAjusteOI.Checked Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, gvr.FCTextBox("TxtComision").Text.ToDecimal, Referencia, UsuarioActual.Empresa.IdCuentaOtrosIngresos, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIERegistrado, CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveSubProyecto:=gvr.DataKey("CveSubProyecto").ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.FCTextBox("TxtComision").Text.ToDecimal), ImporteMX:=gvr.FCTextBox("TxtComision").Text.ToDecimal * tipoCambio) Then + MsgError = "no se pudo insertar el detalle de la poliza de otros ingresos" End If - - 'Otros Ingresos - If ChkAjusteOI.Checked Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, gvr.FCTextBox("TxtComision").Text.ToDecimal, Referencia, UsuarioActual.Empresa.IdCuentaOtrosIngresos, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaProveedor, -1, CveIE:=CveIERegistrado, CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveSubProyecto:=gvr.DataKey("CveSubProyecto").ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.FCTextBox("TxtComision").Text.ToDecimal), ImporteMX:=gvr.FCTextBox("TxtComision").Text.ToDecimal * tipoCambio) Then - MsgError = "no se pudo insertar el detalle de la poliza de otros ingresos" - End If - End If - - '*********IVA. siempre se registra aunque sea cero PREGUNTAR POR EL CONCEPTO DE IVA EN Conta_Conceptos - If MsgError = "" AndAlso gvr.DataKey("IVA").ToDecimal > 0 Then - Dim PorcentajeIVA As Decimal = gvr.DataKey("IVAPorcentaje").ToDecimal - Dim IdCtaContIVAXAcreditar As Integer = 0 - Dim IdCtaContIVAAcreditable As Integer = 0 - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then - IdCtaContIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaContIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - End If - - If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then - If gvr.FCTextBox("TxtAbonar").Text.ToDecimal = gvr.FCLiteral("LtlSaldo").Text.ToDouble Then - 'Agrego el IVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, gvr.DataKey("IVA").ToDecimal, Referencia, 14, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAXAcreditar > 0, IdCtaContIVAXAcreditar, IdCtaIVAxAcreditar), -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVA").ToDecimal), ImporteMX:=(gvr.DataKey("IVA").ToDecimal) * tipoCambio, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - - 'Agrego el IVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, False, gvr.DataKey("IVA").ToDecimal, Referencia, 19, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAAcreditable > 0, IdCtaContIVAAcreditable, IdCtaIVAAcreditable), -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVA").ToDecimal), ImporteMX:=(gvr.DataKey("IVA").ToDecimal) * tipoCambio, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - End If - Else - 'Agrego el IVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, gvr.DataKey("IVA").ToDecimal * PorcentajePago, Referencia, 14, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAXAcreditar > 0, IdCtaContIVAXAcreditar, IdCtaIVAxAcreditar), -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVA").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("IVA").ToDecimal * PorcentajePago) * tipoCambio, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - - 'Agrego el IVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, False, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago, Referencia, 19, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVAAcreditable > 0, IdCtaContIVAAcreditable, IdCtaIVAAcreditable), -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago) * tipoCambio, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - - End If - - If gvr.DataKey("IVANoDeducible").ToDecimal > 0 Then - - Dim IdCtaContIVANoAcreditable As Integer = 0 - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then - IdCtaContIVANoAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVANoAcreditable").ToString.ToEntero - End If - - Dim ImporteNOIVA As Decimal = gvr.DataKey("IVANoDeducible").ToDecimal * PorcentajePago - - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, False, ImporteNOIVA, Referencia, 280, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(IdCtaContIVANoAcreditable > 0, IdCtaContIVANoAcreditable, IdCtaIVAAcreditable), -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, CveSubProyecto:=gvr.DataKey("CveSubProyecto").ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteNOIVA), ImporteMX:=(ImporteNOIVA) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeIVA) Then - MsgError = "Detalle" - End If - End If - - - End If - - If MsgError = "" AndAlso gvr.DataKey("RetIVA").ToDecimal > 0 Then - Dim ConceptoContableRetIVAXAcreditar = 0, ConceptoContableRetIVAAcreditable = 0, IdCtaContableRetIVAXAcreditar = 0, IdCtaContableRetIVAAcreditable = 0, CveFunc = 0, CveFuncAcreditable = 0 - Select Case gvr.DataKey("CveRetIVAConcepto").ToEntero - Case 1 - ConceptoContableRetIVAXAcreditar = 15 - ConceptoContableRetIVAAcreditable = 22 - CveFunc = 307 - CveFuncAcreditable = 308 - - Case 2 - ConceptoContableRetIVAXAcreditar = 183 - ConceptoContableRetIVAAcreditable = 184 - CveFunc = 309 - CveFuncAcreditable = 310 - - Case 3 - ConceptoContableRetIVAXAcreditar = 185 - ConceptoContableRetIVAAcreditable = 186 - CveFunc = 311 - CveFuncAcreditable = 312 - - Case 4 - ConceptoContableRetIVAXAcreditar = 248 - ConceptoContableRetIVAAcreditable = 249 - CveFunc = 313 - CveFuncAcreditable = 314 - - End Select - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If IdCtaRetIVA > 0 Then - IdCtaContableRetIVAXAcreditar = IdCtaRetIVA - ElseIf UsuarioActual.Empresa.Funcionalidad(CveFunc).ToEntero > 0 Then - IdCtaContableRetIVAXAcreditar = UsuarioActual.Empresa.Funcionalidad(CveFunc).ToEntero - Else - If ObjMov.GetRetCuenta(ConceptoContableRetIVAXAcreditar, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContableRetIVAXAcreditar = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - If IdCtaRetIVA > 0 Then - IdCtaContableRetIVAAcreditable = IdCtaRetIVA - ElseIf UsuarioActual.Empresa.Funcionalidad(CveFuncAcreditable).ToEntero > 0 Then - IdCtaContableRetIVAAcreditable = UsuarioActual.Empresa.Funcionalidad(CveFuncAcreditable).ToEntero - Else - If ObjMov.GetRetCuenta(ConceptoContableRetIVAAcreditable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContableRetIVAAcreditable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - End If - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, False, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetIVAXAcreditar, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetIVAXAcreditar, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaExcedente, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetIVAAcreditable, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetIVAAcreditable, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaExcedente, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - End If - - Dim AcreditaISR As Boolean = False - If UsuarioActual.CveEmpresa = 140 Then AcreditaISR = True - - If MsgError = "" AndAlso AcreditaISR AndAlso gvr.DataKey("RetISR").ToDecimal > 0 Then - Dim ConceptoContableRetISRXAcreditar = 0, ConceptoContableRetISRAcreditable = 0, IdCtaContableRetISRXAcreditar = 0, IdCtaContableRetISRAcreditable = 0, CveFunc = 0, CveFuncAcreditable = 0 - Select Case gvr.DataKey("CveRetIVAConcepto").ToEntero - Case 1 - ConceptoContableRetISRXAcreditar = 16 - ConceptoContableRetISRAcreditable = 23 - - Case 2 - ConceptoContableRetISRXAcreditar = 243 - ConceptoContableRetISRAcreditable = 244 - CveFunc = 309 - CveFuncAcreditable = 310 - - Case 3 - ConceptoContableRetISRXAcreditar = 327 - ConceptoContableRetISRAcreditable = 328 - CveFunc = 311 - - End Select - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, False, gvr.DataKey("RetISR").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetISRXAcreditar, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetISRXAcreditar, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetISR").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaExcedente, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - - 'Agrego el RetIVA - If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaExcedente, True, gvr.DataKey("RetISR").ToDecimal * PorcentajePago, Referencia, ConceptoContableRetISRAcreditable, ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, IdCtaContableRetISRAcreditable, -1, CveIE:=CveIEExcedente, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, gvr.DataKey("RetISR").ToDecimal * PorcentajePago), ImporteMX:=(gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaExcedente, CvePersonal:=CvePersonal) Then - MsgError = "Detalle" - End If - End If - - End If If MsgError = "" AndAlso ImportePagar = ImporteOriginal Then @@ -1229,23 +877,15 @@ Partial Class Compras_ReembolsosComprobaciones AutoConta = False End If - 'Conta ContPAQ AUTOMATICA If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError.Trim = "" Then If CvePrePolizaIERegistrado > 0 Then If IdCtaPersonal > 0 Or DdlCajaChica.Visible Then If IdCtaProveedor > 0 Then - If IdCtaIVAxAcreditar > 0 Then - If IdCtaIVAAcreditable > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePolizaIERegistrado, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - Else - MsgError = "Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico" - End If - Else - MsgError = "No tiene cuenta contable IVA Acreditable" - End If + + If ObjMov.ContabilizarPrePoliza(CvePrePolizaIERegistrado, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then Else - MsgError = "No tiene cuenta contable IVA x Acreditar" + MsgError = "Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico" End If Else MsgError = "No tiene cuenta contable de proveedor" @@ -1258,26 +898,12 @@ Partial Class Compras_ReembolsosComprobaciones If ChkChequeExcedente.Checked Then If IdCuentaBancaria > 0 Then If IdCtaProveedor > 0 Then - If IdCtaIVAxAcreditar > 0 Then - If IdCtaIVAAcreditable > 0 Then - If IdCtaRetIVA > 0 Then - If IdCtaRetISR > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePolizaExcedente, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - Else - MsgError = "Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico" - End If - Else - MsgError = "No tiene cuenta contable Ret ISR" - End If - Else - MsgError = "No tiene cuenta contable Ret IVA" - End If - Else - MsgError = "No tiene cuenta contable IVA Acreditable" - End If + + If ObjMov.ContabilizarPrePoliza(CvePrePolizaExcedente, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then Else - MsgError = "No tiene cuenta contable IVA x Acreditar" + MsgError = "Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico" End If + Else MsgError = "No tiene cuenta contable de proveedor" End If @@ -1533,7 +1159,7 @@ Partial Class Compras_ReembolsosComprobaciones If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(7).ForeColor = Drawing.Color.Red If e.Row.DBCampo("DiasVencidos").ToDouble > 0 AndAlso CType(sender, GridView).ID = "GvCxP" Then e.Row.Cells(5).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("Original").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" + If e.Row.DBCampo("Total").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoTotal"), Literal).Text = "" If e.Row.DBCampo("Abonado").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = "" If e.Row.DBCampo("Saldo").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = "" @@ -1543,7 +1169,7 @@ Partial Class Compras_ReembolsosComprobaciones e.Row.FCTextBox("TxtSaldoExcedente").Attributes.Add("onblur", String.Format("FnSumaExcedente({0},{1},{2});", e.Row.FCTextBox("TxtSaldoExcedente").ClientID, e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"))) e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"))) - e.Row.FCRangeValidator("RVComision").MinimumValue = 0.00 + e.Row.FCRangeValidator("RVComision").MinimumValue = "0" e.Row.FCRangeValidator("RVComision").MaximumValue = e.Row.DBCampo("Saldo") End If End Sub From d6a349e5e2e62d8cb6c03177a27ba4199f06d8ae Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 2 Aug 2022 09:33:47 -0700 Subject: [PATCH 9/9] Solicitudes Ingreso ajustes, OC num remision, rep ventas detalle --- App_Code/ClsNominas.vb | 62 ++ Empresas/Grales/Formatos/RepVentaDetalle.rdlc | 2 +- OC/OC.aspx | 2 +- OC/OC.aspx.vb | 9 +- SAT/SolicitudesIngresoSat.aspx | 490 ++++++++------- SAT/SolicitudesIngresoSat.aspx.cs | 579 +++++++++++------- Ventas/RepVentaDetalle.aspx.vb | 6 + 7 files changed, 693 insertions(+), 457 deletions(-) diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index 5a076dc1a..0128188fc 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -3259,6 +3259,68 @@ Public Class ClsNominas retorno = RunQuery("Ocurrió un error al agregar el SolicitudesNominas.") Return retorno End Function + + + Public Function SolicitudesAdd2(CveSolicitudCFDI As Integer, CveSolicitudMetadata As Integer, estatus As Integer, observaciones As String, fechaInicio As DateTime, fechaFin As DateTime, cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveTipoSolicitud As Integer = 1) As Integer + + Dim CveSolictudAgregada As Integer = -1 + + Try + DataAdapter("PA_Gral_SAT_SolicitudesAdd2", CommandType.StoredProcedure) + addParameters("@CveSolicitudCFDI", SqlDbType.Int, CveSolicitudCFDI) + addParameters("@CveSolicitudMetadata", SqlDbType.Int, CveSolicitudMetadata) + addParameters("@Estatus", SqlDbType.Int, estatus) + addParameters("@Observaciones", SqlDbType.VarChar, observaciones) + addParameters("@FechaInicio", SqlDbType.DateTime, fechaInicio) + addParameters("@FechaFin", SqlDbType.DateTime, fechaFin) + addParameters("@CveUsuarioIng", SqlDbType.Int, cveUsuarioIng) + addParameters("@CveEmpresa", SqlDbType.Int, cveEmpresa) + addParameters("@CveTipoSolicitud", SqlDbType.Int, CveTipoSolicitud) + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveSolicitud", SqlDbType.Int).Direction = ParameterDirection.Output + End With + + + SqlAdapter.Fill(Data) + CveSolictudAgregada = SqlAdapter.SelectCommand.Parameters("@CveSolicitud").Value.ToString.ToEntero + + Catch ex As Exception + CveSolictudAgregada = -1 + OnError("Ocurrió un error al agregar la Solicitud.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return CveSolictudAgregada + + + End Function + + + Public Function UpdateSolicitudDetalleCveSolicitudDetalle(CveEmpresa As Integer, UUID As String, CveSolicitudDetalle As Integer) As Boolean + + + Dim retorno As Boolean = False + Try + DataAdapter("PA_SAT_SolicitudesCFDIDataCveSolicitudDetalleUpdate", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@UUID", SqlDbType.VarChar).Value = UUID + .Add("@CveSolicitudDetalle", SqlDbType.Int).Value = CveSolicitudDetalle + End With + SqlAdapter.Fill(Data) + + retorno = True + + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al Actualizar SolicitudesCFDIData.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return retorno + + + End Function + Public Function SolicitudesUp(CveSolicitud As Int32, CveSolicitudCFDI As Int32, CveSolicitudMetadata As Int32, estatus As Int32, observaciones As String, cveEmpresa As Int32) As Boolean Dim retorno As Boolean = False DataAdapter("PA_Gral_SAT_SolicitudesUp", CommandType.StoredProcedure) diff --git a/Empresas/Grales/Formatos/RepVentaDetalle.rdlc b/Empresas/Grales/Formatos/RepVentaDetalle.rdlc index 816c4bfd3..2d2e81ef0 100644 --- a/Empresas/Grales/Formatos/RepVentaDetalle.rdlc +++ b/Empresas/Grales/Formatos/RepVentaDetalle.rdlc @@ -1114,7 +1114,7 @@ 0.63559in @@ -216,15 +222,21 @@ -
  • - <%-- Descargar--%> -
  • + - -
  • - Solicitudes + + +
  • + Descargar
  • -
    +
  • + Solicitudes +
  • + + + + +
    @@ -232,7 +244,7 @@ - +
    @@ -240,8 +252,8 @@
    - - + +
    @@ -253,10 +265,10 @@ - - + + - +
    @@ -267,13 +279,13 @@ - - + + - +
    -
    +
    @@ -286,240 +298,246 @@
    - -
    + +
    - + -
    - +
    +
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    - +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    - -
    -
    - - -
    -
    -
    -
    - - - - - - - - - +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    - - - -