From 10973f003c2b916ab50c77e4d187d6227e4eff32 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 15 Aug 2023 08:27:32 -0700 Subject: [PATCH] -- limpieza --- Bancos/ClientesAbonar.aspx.vb | 2845 --------------------------------- 1 file changed, 2845 deletions(-) delete mode 100644 Bancos/ClientesAbonar.aspx.vb diff --git a/Bancos/ClientesAbonar.aspx.vb b/Bancos/ClientesAbonar.aspx.vb deleted file mode 100644 index 84c7e3940..000000000 --- a/Bancos/ClientesAbonar.aspx.vb +++ /dev/null @@ -1,2845 +0,0 @@ -Imports System.Data -Imports Extensiones - -Partial Class Ventas_ClientesAbonar - Inherits ClsPaginas - - -#Region "Propiedades" - Private ReadOnly Property CveCliente As Integer - Get - Return ViewState("CveCliente").ToString.ToEntero - End Get - End Property - Private Property CveMoneda As Integer - Get - Return ViewState("CveMoneda").ToString.ToEntero - End Get - Set(value As Integer) - 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 CveMonedaFiltro As Integer - Get - Return IfNull(ViewState("CveMonedaFiltro"), "0").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveMonedaFiltro") = value - End Set - End Property - Private Property FechaIngreso As Date - Get - Return ViewState("FechaIngreso").ToString.ToDate - End Get - Set(value As Date) - ViewState("FechaIngreso") = value - End Set - End Property - Private Property CveSubProyecto As Integer - Get - Return ViewState("CveSubProyecto").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveSubProyecto") = value - End Set - End Property - Private Property CveClienteSucursal As Integer - Get - Return If(IsNothing(ViewState("CveClienteSucursal")), -1, ViewState("CveClienteSucursal").ToString.ToEntero) - End Get - Set(value As Integer) - ViewState("CveClienteSucursal") = value - End Set - End Property - Private Property DTFuenteRecaudacion As DataTable - Get - Return CType(ViewState("DTFuenteRecaudacion"), DataTable) - End Get - Set(value As DataTable) - ViewState("DTFuenteRecaudacion") = value - End Set - End Property - Private Property DtIngresos As DataTable - Get - Return CType(ViewState("DtIngresos"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtIngresos") = value - End Set - End Property - Private Property DtPrestamos As DataTable - Get - Return CType(ViewState("DtPrestamos"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtPrestamos") = value - End Set - End Property - Private Property NombreComercial As String - Get - Return ViewState("NombreComercial").ToString - End Get - Set(value As String) - ViewState("NombreComercial") = value| - End Set - End Property - Private Property Mail As String - Get - If ViewState("Mail") Is Nothing Then - Return "" - Else - Return ViewState("Mail").ToString - End If - End Get - Set(value As String) - ViewState("Mail") = value - End Set - End Property - Private Property CFDIRelacionadoSustitucion As String - Get - If ViewState("CFDIRelacionadoSustitucion") Is Nothing Then - Return "-1" - Else - Return ViewState("CFDIRelacionadoSustitucion").ToString - End If - End Get - Set(value As String) - ViewState("CFDIRelacionadoSustitucion") = value - End Set - End Property - Private Property FechaCorteIE As DateTime - Get - Return ViewState("FechaCorteIE").ToString.ToDateTime - End Get - Set(value As DateTime) - ViewState("FechaCorteIE") = value - End Set - End Property - Private Property IDPoliza As Integer - Get - Return ViewState("IDPoliza").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IDPoliza") = value - End Set - End Property - Private Property FolioIECancelado As String - Get - If ViewState("FolioIECancelado") Is Nothing Then - Return "-1" - Else - Return ViewState("FolioIECancelado").ToString - End If - End Get - Set(value As String) - ViewState("FolioIECancelado") = value - End Set - End Property - Private Property ComplementoSustitucionGenerado As Boolean - Get - Return CBool(ViewState("ComplementoSustitucionGenerado")) - End Get - Set(value As Boolean) - ViewState("ComplementoSustitucionGenerado") = value - End Set - End Property - Private Property Fecha As Date - Get - Return ViewState("Fecha").ToString.ToDate - End Get - Set(value As Date) - ViewState("Fecha") = value - End Set - End Property -#End Region - - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load - If Not Page.IsPostBack Then - CveMonedaPago = -1 - If Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToString.ToEntero > 0 Then - ViewState("CveCliente") = Request("CveCliente").ToString.ToEntero - 'ViewState("CveUsuario") = IfNultl(Request("CveUsuario"), "-1").ToStrirowComisionesng.ToEntero - ViewState("CveMonedaFiltro") = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero - ViewState("CveMoneda") = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero - ViewState("FechaI") = IfNull(Request("FechaI"), "-1").ToString.ToEntero - ViewState("FechaE") = IfNull(Request("FechaE"), "-1").ToString.ToEntero - ViewState("CveSubProyecto") = IfNull(Request("CveSubProyecto"), "-1").ToString.ToEntero - ViewState("CveClienteSucursal") = IfNull(Request("CveClienteSucursal"), "-1").ToString.ToEntero - - DdlProveedorIntermediario.setEsWebService(True) - DdlProveedorIntermediario.Attributes.Add("data-metodo", "getproveedores") - DdlProveedorIntermediario.SelectedText = "Seleccione" - DdlProveedorIntermediario.SelectedValue = "-1" - - FechaCorteIE = DateTime.Now - - Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, Now.Day - 1, Now.Day) - Fecha = (dia.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString).ToDate - - If UsuarioActual.Empresa.Funcionalidad(712) = "1" Then - PorletIntermediario.Visible = True - End If - - If CargaCliente(CveCliente, CveMonedaFiltro) Then - - IdCuentaBancaria = 0 - - TxtOtrosImportes.Attributes.Add("onKeyUp", String.Format("FnSuma(this,{0},{1},-1);", "TxtTotal", 0)) - 'TxtAnticipo.Attributes.Add("onKeyUp", String.Format("FnSuma(this,{0},{1},-1);", "null", 0)) - - If CveMoneda > 0 Then LbTipoMoneda.Text = String.Format("Pago en {0}", GlobalDTMonedas.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda)).Rows(0)("Moneda")) - - If CveMoneda = 2 Then - ChkPagarPesos.Visible = True - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - DivTCDolaresDolares.Visible = True - TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") - ElseIf CveMoneda = 1 Then - ChkPagarDolares.Visible = True - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - ElseIf CveMoneda = -1 Then - TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - If UsuarioActual.TienePermisoProceso(209) Or UsuarioActual.TienePermisoProceso(204) Then - HlSaldarCuentasIncobrables.Visible = True - End If - - End If - - If CveMonedaFiltro = -1 Then - ChkPagarPesos.Visible = False - ChkPagarDolares.Visible = False - End If - - RegistraScript($"TipoCambioActual = {GlobalTipoCambio(Fecha).FormatoNumero(4)}") - End If - - RVTxtFechaDocumento.MaximumValue = Now.ToString("dd/MM/yyyy") - - - If UsuarioActual.CveEmpresa.Contiene(13, 83, 158) Then - LnkAccionesModalSeleccionLayout.Visible = True - - End If - - End If - - If (CveMonedaFiltro = 2 And ChkPagarPesos.Checked) Then - RegistraScript("document.getElementById('DivTC').style.display = 'block';") - End If - - End Sub - - Private Sub CargaTipoTransaccion() - DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo = 'Ing' AND Estatus = 1 ") - DdlTipoTransaccion.DataBind() - DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) - RecargaCuentasDepositos() - End Sub - - Private Sub CargaCuentas() - DdlCuenta.Items.Clear() - Dim CveTipoCuenta As Integer = 2 - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then CveTipoCuenta = -1 'que se muestren todas, para empresa acumuladores - - Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa, CveTipoCuenta:=CveTipoCuenta) - - If ChkPagarPesos.Checked Then - dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) - RegistraScript("CambiaPesosDolares();") - ElseIf ChkPagarDolares.Checked Then - dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 2)) - RegistraScript("CambiaDolaresPesos();") - Else - If CveMonedaFiltro > 0 Then - dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMonedaFiltro)) - End If - End If - - DdlCuenta.DataSource = dt - DdlCuenta.DataBind() - DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1")) - End Sub - - Private Function CargaCliente(tCveCliente As Integer, tCveMoneda As Integer) As Boolean - Dim Retorno As Boolean = False - Dim ObjCliente As New ClsClientes() - If ObjCliente.GetClientes(tCveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then - If ObjCliente.DtResultados.Rows.Count > 0 Then - Retorno = True - CargaCuentas() - CargaTipoTransaccion() - - TxtFechaDocumento.Text = Now.ToShortDateString.ToString - TxtAboneA.Enabled = False - LbEncabezado.Text = String.Format("{1}", CveCliente, ObjCliente.NombreComercial) - TxtAboneA.Text = ObjCliente.NombreComercial - NombreComercial = ObjCliente.NombreComercial - TxtImporte.Attributes.Add("disabled", "disabled") - If DdlTipoTransaccion.SelectedValue = "1" Then RFVFolio.Enabled = True Else RFVFolio.Enabled = False - Mail = String.Format("{0};{1}", ObjCliente.CobranzaCorreo, ObjCliente.NotificarA) - - If Request("FechaI") IsNot Nothing Then ViewState("FechaI") = Request("FechaI") Else ViewState("FechaI") = "-1" - If Request("FechaF") IsNot Nothing Then ViewState("FechaF") = Request("FechaF") Else ViewState("FechaF") = "-1" - - If UsuarioActual.Empresa.Funcionalidad(590) = "1" Then - - divAnticipo.Visible = True - divPrestamo.Visible = True - - GvCxC.Columns(17).HeaderText = "Comisión
Venta" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol1).FiltroPrimeroValor("Clasificacion").Substring(0, 10) - GvCxC.Columns(18).HeaderText = "Gastos
Manejo" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol2).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(19).HeaderText = "Servicio
Inspección" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol3).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(20).HeaderText = "Seguro" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol4).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(21).HeaderText = "Aduana
Mex" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol5).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(22).HeaderText = "Diversos" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol6).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(23).HeaderText = "Aduana
USA" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol7).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(24).HeaderText = "Material
Empaque" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol7).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(25).HeaderText = "Semilla" 'GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacionCol7).FiltroPrimeroValor("Clasificacion").Substring(0, 12) - GvCxC.Columns(26).HeaderText = "Total
Gastos" - - DvLiquidacion1.Visible = True - DvLiquidacion2.Visible = True - - DtIngresos = CargaIngresos(2) - DtPrestamos = CargaPrestamos(1) - End If - - CargaDatos(tCveMoneda) - Else - Alert("El Cliente Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) - End If - End If - ObjCliente.Dispose() - Return Retorno - End Function - - Private Sub CargaDatos(pCveMoneda As Integer) - Dim Mov As New ClsMovimientos - Dim FechaI As String = IfNull(Request("FechaI"), "-1") - Dim FechaF As String = IfNull(Request("FechaF"), "-1") - - Dim FechaCorte As Date = DateTime.Now.AddYears(1).ToShortDateString.ToString.ToDate - - Dim SumDescuentoProntoPago As Double = 0.0 - If Mov.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, FechaI, FechaF, pCveMoneda, CveSubProyecto, UsuarioActual.CveEmpresa, CveClienteSucursal, FechaCorte:=FechaCorte) Then - Dim TmpCxCAux As DataTable - TmpCxCAux = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") - SumDescuentoProntoPago = TmpCxCAux.SUM("DescuentoProntoPago") - - GvCxC.DataSource = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") - CveMoneda = pCveMoneda - - End If - Mov.Dispose() - GvCxC.DataBind() - - TxtImporte.Text = "" - TxtObservaciones.Text = "" - If SumDescuentoProntoPago > 0.0 Then - GvCxC.Columns(14).Visible = True 'MOSTRAR DESCUENTO PRONTO PAGO - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then - GvCxC.Columns(15).Visible = True 'HABILITAR NC - End If - End If - - UPVentas.Update() - End Sub - - Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged - 'recargo la moneda con la que se va a pagar - Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) - Dim moneda As Integer = 0 - If DdlCuenta.SelectedValue > 0 Then - moneda = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - End If - - CveMonedaPago = moneda - - If dr IsNot Nothing Then - If ChkPagarPesos.Checked Then - CveMoneda = 2 - RegistraScript("document.getElementById('DivTC').style.display = 'block';") - RegistraScript("CambiaPesosDolares();") - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - ElseIf ChkPagarPesos.Checked = False Then - CveMoneda = dr("CveMoneda").ToString.ToEntero - RegistraScript("document.getElementById('DivTC').style.display = 'none';") - RegistraScript("CambiaDolaresPesos();") - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - End If - - If ChkPagarDolares.Checked Then - CveMoneda = 1 - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - End If - ValidaCuentaDePagoFormaDePago() - End If - - CargaDatos(CveMoneda) - - - ' si no tiene CveMoneda, o es -1, cuando cambia de cuenta filtra las facturas - If IfNull(Request("CveMoneda"), "-1").ToString.ToEntero = -1 Then - CargaDatos(-1) - - moneda = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - If moneda = 1 Then - 'DivTC.Visible = True - DivTCDolares.Visible = False - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) - ElseIf moneda = 2 Then - 'DivTC.Visible = False - RegistraScript("document.getElementById('DivTC').style.display = 'none';") - DivTCDolares.Visible = True - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) - End If - End If - - If HdnTipoTransaccion.Value = "Ing" AndAlso UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then - If UsuarioActual.CveEmpresa = 119 Then - Dim ObjFolios As New ClsGralFolios - If ObjFolios.GetFolios("RMF", UsuarioActual.CveEmpresa) Then - Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format(" Estado = 'Activo'")) - If DT.Rows.Count > 0 Then - TxtFolio.Text = DT.Rows(0)("FActual").ToString.ToEntero - End If - ObjFolios.Dispose() - End If - Else - Dim Folio As Long - Dim Banco As New ClsBancos - Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) - Banco.Dispose() - TxtFolio.Text = Folio.ToString - - End If - - Else - TxtFolio.Text = "" - - End If - - - End Sub - - Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged - Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing - If dr IsNot Nothing Then - HdnTipoTransaccion.Value = dr("Tipo").ToString - End If - RecargaCuentasDepositos() - 'CargaCuentas() - ValidaCuentaDePagoFormaDePago() - End Sub - - Protected Sub GvCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxC.RowDataBound - - If e.Row.RowType = DataControlRowType.DataRow Then - Dim moneda As Integer = 0 - If e.Row.RowIndex = 0 Then - e.Row.BackColor = Drawing.Color.LightGray - e.Row.FCDropDownList("DdlTG").Visible = False - e.Row.FCTextBox("TxtLiqCol1").Visible = False - e.Row.FCTextBox("TxtLiqCol2").Visible = False - e.Row.FCTextBox("TxtLiqCol3").Visible = False - e.Row.FCTextBox("TxtLiqCol4").Visible = False - e.Row.FCTextBox("TxtLiqCol5").Visible = False - e.Row.FCTextBox("TxtLiqCol6").Visible = False - e.Row.FCTextBox("TxtLiqCol7").Visible = False - e.Row.FCTextBox("TxtLiqCol8").Visible = False - e.Row.FCTextBox("TxtLiqCol9").Visible = False - e.Row.FCTextBox("TxtLiqColT").Visible = False - e.Row.FCTextBox("TxtAmort").Visible = False - e.Row.FCTextBox("TxtAmort2").Visible = False - e.Row.FCDropDownList("DdlAnti").Visible = False - e.Row.FCDropDownList("DdlAnti2").Visible = False - - End If - If e.Row.RowIndex = 1 Then - e.Row.Cells(0).Width = Unit.Pixel(25) - e.Row.Cells(1).Width = Unit.Pixel(90) - e.Row.Cells(2).Width = Unit.Pixel(70) - e.Row.Cells(3).Width = Unit.Pixel(70) - e.Row.Cells(6).Width = Unit.Pixel(50) - e.Row.Cells(7).Width = Unit.Pixel(70) - e.Row.Cells(8).Width = Unit.Pixel(50) - 'e.Row.Cells(9).Width = Unit.Pixel(90) - 'e.Row.Cells(10).Width = Unit.Pixel(80) - 'e.Row.Cells(11).Width = Unit.Pixel(60) - End If - - e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(10).HorizontalAlign = HorizontalAlign.Right - - If e.Row.DBCampo("Saldo").ToDecimal < 0 Then e.Row.Cells(11).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("DiasVencidos").ToDecimal > 0 AndAlso CType(sender, GridView).ID = "GvCxC" Then e.Row.Cells(5).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("Original").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" - If e.Row.DBCampo("Abonado").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = "" - If e.Row.DBCampo("Saldo").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = "" - - Select Case RblTipoPago.SelectedValue - Case "1" - If DdlCuenta.SelectedValue > 0 Then - moneda = CveMonedaPago - ElseIf RblTipoPago.SelectedValue = "1" Then - e.Row.FCCheckBox("Chk").Enabled = False - e.Row.FCTextBox("TxtAbonar").Enabled = False - End If - Case "3" - moneda = CveMonedaPago - - End Select - - If e.Row.DBCampo("DescuentoProntoPago").ToDecimal() > 0 Then - e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1},{5}); FnCambia({2},this,{1},0,{3},{4}); FnSeleccionaNC({5},{6},{0});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"), e.Row.FCCheckBox("Chk").ClientID, CveMonedaFiltro, moneda, e.Row.FCCheckBox("Chk").ClientID, e.Row.FCCheckBox("ChkGenerarNC").ClientID, e.Row.DBCampo("CveVenta"))) - Else - e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1},{5}); FnCambia({2},this,{1},0,{3},{4},{5});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"), e.Row.FCCheckBox("Chk").ClientID, CveMonedaFiltro, moneda, e.Row.DBCampo("CveVenta"))) - End If - - If Not UsuarioActual.Empresa.Funcionalidad(536) = "1" Then - If e.Row.DBCampo("TipoDocto") = "Rem" Then - e.Row.FCCheckBox("Chk").Visible = False ' que no se pueda pagar si es remisión - e.Row.Cells(0).ToolTip = "El documento es remisión y no se puede realizar el pago" - End If - End If - - - If e.Row.DBCampo("CveVenta").ToEntero > 0 Then - e.Row.FCLiteral("LtlAux").Text = String.Format("Ir", e.Row.DBCampo("CveCliente").ToEntero, e.Row.DBCampo("CveVenta").ToEntero) - e.Row.FCTextBox("TxtAbonar").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},1,{2},{3});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), CveMonedaFiltro, moneda)) - - If UsuarioActual.Empresa.Funcionalidad(157).ToDecimal <> 0 Then - e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnLimites({0},this,{1},{2},2);", e.Row.FCCheckBox("Chk").ClientID, -UsuarioActual.Empresa.Funcionalidad(157), UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal)) - e.Row.FCRangeValidator("RVComision").MinimumValue = -UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal - e.Row.FCRangeValidator("RVComision").MaximumValue = UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal - e.Row.FCRangeValidator("RVComision").Enabled = True - Else - e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2,{2},{3});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), CveMonedaFiltro, moneda)) - e.Row.FCRangeValidator("RVComision").MinimumValue = 0.00 - e.Row.FCRangeValidator("RVComision").MaximumValue = e.Row.DBCampo("Saldo") - End If - - If e.Row.DBCampo("DescuentoProntoPago").ToDecimal() > 0 AndAlso e.Row.DBCampo("DiasVencidos").ToEntero() <= 5 Then - e.Row.FCCheckBox("ChkGenerarNC").Visible = True - e.Row.FCCheckBox("ChkGenerarNC").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1},{5}); FnCambia({2},this,{1},0,{3},{4}); FnEditarImporte({2}, {0});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo").ToDecimal - e.Row.DBCampo("DescuentoProntoPago").ToDecimal, e.Row.FCCheckBox("ChkGenerarNC").ClientID, CveMonedaFiltro, moneda, e.Row.DBCampo("CveVenta"))) - End If - - If UsuarioActual.Empresa.Funcionalidad(590) = "1" Then '' si es empresa agrícola - - e.Row.FCDropDownList("DdlTG").DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) - e.Row.FCDropDownList("DdlTG").DataBind() - - e.Row.FCTextBox("TxtLiqCol1").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol2").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol3").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol4").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol5").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol6").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol7").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol8").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtLiqCol9").Attributes.Add("class", $"ClsSelLiq ClsSelLiqVenta{e.Row.DBCampo("CveVenta")}") - - e.Row.FCTextBox("TxtLiqColT").Attributes.Add("class", $"ClsSelLiqVentaTotal{e.Row.DBCampo("CveVenta")}") - e.Row.FCTextBox("TxtAmort").Attributes.Add("class", $"ClsSelLiqAnt") - e.Row.FCTextBox("TxtAmort2").Attributes.Add("class", $"ClsSelLiqAnt") - - e.Row.FCTextBox("TxtLiqCol1").Attributes.Add("onkeyup", $"SumaLiq (this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol2").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol3").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol4").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol5").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol6").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol7").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol8").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtLiqCol9").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtAmort").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - e.Row.FCTextBox("TxtAmort2").Attributes.Add("onkeyup", $"SumaLiq(this,{e.Row.DBCampo("CveVenta")},{CveMonedaFiltro},{ moneda})") - - e.Row.FCDropDownList("DdlAnti").DataSource = DtIngresos - e.Row.FCDropDownList("DdlAnti").DataBind() - e.Row.FCDropDownList("DdlAnti").Items.Insert(0, New ListItem("-", "-1")) - - e.Row.FCDropDownList("DdlAnti2").DataSource = DtIngresos - e.Row.FCDropDownList("DdlAnti2").DataBind() - e.Row.FCDropDownList("DdlAnti2").Items.Insert(0, New ListItem("-", "-1")) - - End If - - Else - e.Row.FCTextBox("TxtAbonar").Visible = False - e.Row.FCTextBox("TxtComision").Visible = False - e.Row.FCCheckBox("Chk").Visible = False - End If - - If e.Row.DBCampo("CveVenta").ToEntero > 0 Then - If e.Row.DataKey("ClaveMetodoPagoSAT") = "PUE" Then - e.Row.FCLiteral("LtlComplemento").Text = "" - End If - Else - e.Row.FCLiteral("LtlComplemento").Visible = False - End If - - End If - End Sub - - Protected Sub BtnIEGuardar_Click(sender As Object, e As EventArgs) Handles BtnIEGuardar.Click - - 'SI ES EMPRESA DE ACUMULADORES DEBE OBLIGAR A SUBIR UN ARCHIVO - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then - Dim files = Anexo.getfiles() - If files IsNot Nothing Then - If files.Archivos IsNot Nothing Then - If files.Archivos.Count = 0 Then - Alert("Debe anexar un archivo", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - Else - Alert("Debe anexar un archivo", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - Else - Alert("Debe anexar un archivo", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - - If RblTipoPago.SelectedValue = "1" Then - - Dim ValFechaDocumento As Boolean = False - Dim FoliosFechasValFechaDocumento As New StringBuilder - FoliosFechasValFechaDocumento.AppendLine("Se seleccionaron facturas con fecha de mes superior al mes del pago:
") - - For Each gvRowVal As GridViewRow In GvCxC.Rows - - If gvRowVal.FCCheckBox("Chk").Checked Then - - Dim FechaFactura As Date = gvRowVal.DataKey("Fecha").ToDate - Dim FechaDocumento As Date = TxtFechaDocumento.Text.ToDate - - Dim AnioFactura As Integer = FechaFactura.Year - Dim MesFactura As Integer = FechaFactura.Month - - Dim AnioDocumento As Integer = FechaDocumento.Year - Dim MesDocumento As Integer = FechaDocumento.Month - - If UsuarioActual.Empresa.UsaAC = False Then - If AnioFactura > AnioDocumento Then - FoliosFechasValFechaDocumento.AppendLine($"Folio: { gvRowVal.DataKey("SerieFolio") } fecha: {gvRowVal.DataKey("Fecha").ToDate.ToString("dd/MM/yyyy") }
") - ValFechaDocumento = True - ElseIf AnioFactura = AnioDocumento And MesFactura > MesDocumento Then - FoliosFechasValFechaDocumento.AppendLine($"Folio: { gvRowVal.DataKey("SerieFolio") } fecha: {gvRowVal.DataKey("Fecha").ToDate.ToString("dd/MM/yyyy") }
") - ValFechaDocumento = True - End If - - End If - End If - Next - - If ValFechaDocumento Then - Alert(FoliosFechasValFechaDocumento.ToString, TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - - If Not TxtImporte.Text.ToDecimal > 0 Then - Alert("Debe de llevar un Importe", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If Not (TxtFolio.Text.Trim <> "" Or RblTipoPago.SelectedValue = "2" Or RblTipoPago.SelectedValue = "3") Then - Alert("Debe de llevar un Folio", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If TxtPrestamoImporte.Text.ToDecimal <> 0 AndAlso DdlPrestamo.SelectedValue = "-1" Then - Alert("Debe seleccionar un préstamo al especificar un valor.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'valida que no exceda lo seleccionado. con el valor del ie - If (RblTipoPago.SelectedValue = "3" AndAlso HdnIngresoImporte.Value.ToDecimal < TxtTotal.Text.ToDecimal) Then - Alert("Importe excedido para la aplicación", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim Cuenta As String = "" - Dim CuentaDeposito As String = "" - - Dim seleccion As Integer = 0 - For Each gvr As GridViewRow In GvCxC.Rows - If gvr.FCCheckBox("Chk").Checked Then - seleccion += 1 - 'si hay liquidación- - If gvr.FCDropDownList("DdlAnti").SelectedValue = "-1" AndAlso gvr.FCTextBox("TxtAmort").Text.ToDecimal <> 0 Then - Alert("Importe de anticipo especificado y no seleccionado. F: " & gvr.DataKey("SerieFolio"), TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - Next - - If seleccion = 0 Then - Alert("No ha seleccionado ninguna factura para abonar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim CvePrePoliza As Integer = 0 - Dim IDPoliza As Integer = 0 - Dim FolioPoliza As String = "" - Dim CveIE As Integer = -1 - Dim CveVentasPago As New List(Of Integer) - Dim SeriesPago As New List(Of String) - - Dim MsgError As String = "" - Dim NCGeneradas As New List(Of RespuestaNotaCredrito) - Dim ListaFacturasGenerarNC As New List(Of Modelos.Factura) - - Dim ImporteSeleccionado As Decimal = 0 - - '02-05-2018 MANDAMOS CANCELAR EL COMPLEMENTO A SUSTITUIR - Dim ErrorCancelarIE As Boolean = False - - - Dim ObjIE As New ClsBancos() - Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) - Dim ObjVentasSaldos As New ClsVentas(ObjIE.IniciaTransacSQL) - Dim ObjEvento As New ClsOIEventos(ObjIE.IniciaTransacSQL) - Dim ObjConta As ClsContPAQi = Nothing - - Try - Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos - Dim filemove As String = "" - Dim Comprobante As String = "" - ComplementoSustitucionGenerado = False - - For Each fileItem As Archivo In filesgral - Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") - filemove = fileItem.filename - Next - - Dim ConceptoPoliza As String = String.Format("{0} {1}", TxtAboneA.Text, TxtObservaciones.Text) - - If DdlCuenta.SelectedValue > 0 Then - CveMoneda = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - Else - CveMoneda = IfNull(Request("CveMoneda"), "1").ToString.ToEntero - End If - - CvePrePoliza = ObjMov.AddPrePolizas("Ventas/ClientesAbonar", 11, TxtImporte.Text.Trim.ToDecimal, TxtImporte.Text.Trim.ToDecimal, 1, TxtFechaDocumento.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - If RblTipoPago.SelectedValue = "1" Then - Dim CveCuentaDeposito As Integer = 0 - Dim TipoCambio As Decimal = 0 - - If DdlCuentaDeposito.Items.Count > 0 Then - CveCuentaDeposito = DdlCuentaDeposito.SelectedValue.ToEntero - End If - - If CveMoneda = 2 Then - If TxtTCDolares.Visible Then - TipoCambio = TxtTCDolares.Text.ToDecimal - Else - TipoCambio = If(CveMonedaFiltro = -1, TxtTCDolares.Text.ToDecimal, TxtTCDolaresDolares.Text.ToDecimal) 'GlobalTipoCambio(TxtFechaDocumento.Text).ToString.ToDecimal - End If - Else - If TxtTC.Visible Then - TipoCambio = TxtTC.Text.ToDecimal - End If - End If - - Dim CveProvIntermediario As Integer - If ChkProveedorIntermediario.Checked Then - CveProvIntermediario = If(DdlProveedorIntermediario.SelectedValue.ToEntero <= 0, -1, DdlProveedorIntermediario.SelectedValue.ToEntero) - End If - CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, TxtAboneA.Text.Trim, TxtImporte.Text.ToDecimal, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TipoCambio, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, CveProveedorIntermediario:=CveProvIntermediario) - Else - If RblTipoPago.SelectedValue.Contiene("3") Then 'ixc - CveIE = DdlIngreso.SelectedValue.ToEntero - If CveMonedaPago = 2 And Not ChkPagarPesos.Checked Then CveMoneda = 2 - If ChkPagarDolares.Checked Then CveMoneda = 2 - If ChkPagarPesos.Checked Then CveMoneda = 1 - End If - - End If - - If CveIE > 0 OrElse RblTipoPago.SelectedValue.Contiene("2", "3") Then - - 'Guardar archivo - If filemove <> "" Then - filemove.FilesMove(CveIE.ToString, String.Format("{0}IE", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase:=False) - End If - - 'inserto los movimientos de la conta para abonar al saldo - If CvePrePoliza > 0 Then - - Dim CvePlantillaPoliza As Integer = 11 - Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

" - Dim idCuentaContabilizacion As Long = 1 - Dim CveCuentaContabilizacion As Long = 1 - Dim dtConceptos As DataTable = Nothing - Dim tipoCambioPago As Decimal - Dim TipoCambioGeneral As Decimal = 1 - Dim CveSubProyectoContabilizar As Integer = -1 - Dim CveSubProyectoMaximo As Integer = -1 - Dim CuentasContablesInvalidas As New StringBuilder - Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) - Dim TipoCambioFluctuacion As Decimal = 1 - Dim FechaUltimaFluctuacion As Date = MinFecha - - Dim tFecha As Date = TxtFechaDocumento.Text.ToDate - Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) - - Dim ImportePrestamo As Decimal = 0 - Dim TCPrestamo As Decimal = 0 - - If CveSubProyectoMaximo <= 0 Then 'sino se seleccionó del combo, busca en el listado el primero - - For Each Gvr As GridViewRow In GvCxC.Rows - If Gvr.FCCheckBox("Chk").Checked Then - CveSubProyectoMaximo = Gvr.DataKey("CveSubProyecto").ToEntero - Exit For - End If - Next - End If - - If TxtPrestamoImporte.Text.ToDecimal <> 0 Then 'amortización del préstamo - ImportePrestamo = TxtPrestamoImporte.Text.ToDecimal - Dim tCveProv As Integer = DtPrestamos.FiltroPrimeroValor("CveProveedor", "CveIE=" & DdlPrestamo.SelectedValue).ToEntero - Dim tFechaIE As Date = DtPrestamos.FiltroPrimeroValor("FechaDocumento", "CveIE=" & DdlPrestamo.SelectedValue).ToDate - TCPrestamo = DtPrestamos.FiltroPrimeroValor("TipoCambio", "CveIE=" & DdlPrestamo.SelectedValue).ToDecimal - If CveMoneda = 1 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImportePrestamo, ImportePrestamo, 57, TxtFolio.Text, TxtObservaciones.Text, 0, CveIE:=DdlPrestamo.SelectedValue.ToEntero, CveSubProyecto:=CveSubProyectoMaximo, TipoCambio:=tipoCambioPago, CveProveedor:=tCveProv) Then - MsgError = "No se pudo insertar la póliza" - End If - Else - If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then - If tFechaIE <= UltimaFluctuacion.FechaFluctuacion Then - FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion - TCPrestamo = UltimaFluctuacion.TCFluctuacion - End If - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImportePrestamo, ImportePrestamo, 349, TxtFolio.Text, TxtObservaciones.Text, 0, CveIE:=DdlPrestamo.SelectedValue.ToEntero, CveSubProyecto:=CveSubProyectoMaximo, TipoCambio:=TCPrestamo, ImporteME:=ImportePrestamo, CveProveedor:=tCveProv) Then - MsgError = "No se pudo insertar la póliza" - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImportePrestamo, ((ImportePrestamo * TCPrestamo) - ImportePrestamo).RoundSQL, 350, TxtFolio.Text, TxtObservaciones.Text, 0, CveIE:=DdlPrestamo.SelectedValue.ToEntero, CveSubProyecto:=CveSubProyectoMaximo, TipoCambio:=TCPrestamo, ImporteME:=ImportePrestamo, CveProveedor:=tCveProv) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - - End If - - If TxtPrestamoIntereses.Text.ToDecimal <> 0 AndAlso MsgError = "" Then - tipoCambioPago = If(TxtTCDolares.Visible, TxtTCDolares.Text.ToDecimal, TxtTCDolaresDolares.Text.ToDecimal) - Dim ImporteIntereses As Decimal = (TxtPrestamoIntereses.Text.ToDecimal * tipoCambioPago).RoundSQL - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteIntereses, ImporteIntereses, 51, TxtFolio.Text, TxtObservaciones.Text, 0, CveIE:=DdlPrestamo.SelectedValue.ToEntero, CveSubProyecto:=CveSubProyectoMaximo, TipoCambio:=tipoCambioPago, CveClasificacion:=21927) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - - 'inserto las ventas que voy a pagar - For Each gvr As GridViewRow In GvCxC.Rows - - If gvr.FCCheckBox("Chk").Checked Then - - Dim ObjFactura As Modelos.Factura = Nothing - Dim EsAnticipoEspecial As Boolean = False - - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then - ObjFactura = New Modelos.Factura(UsuarioActual, gvr.DataKey("CveVenta").ToEntero(), UsuarioActual.CveEmpresa) - End If - - Dim VentaActual As New Venta(UsuarioActual) - VentaActual.CveVenta = gvr.DataKey("CveVenta").ToEntero - VentaActual.Fecha = gvr.DataKey("Fecha").ToDate - VentaActual.CveCliente = gvr.DataKey("CveCliente").ToEntero - VentaActual.CveMoneda = gvr.DataKey("CveMoneda").ToEntero - VentaActual.TipoDocto = gvr.DataKey("TipoDocto") - VentaActual.SerieFolio = gvr.DataKey("SerieFolio") - VentaActual.ClienteNombre = NombreComercial - VentaActual.TC = gvr.DataKey("TipoCambio").ToDecimal - VentaActual.Total = gvr.DataKey("Original").ToDecimal - VentaActual.IVA = gvr.DataKey("IVA").ToDecimal - VentaActual.IEPS = gvr.DataKey("IEPS").ToDecimal - VentaActual.RetIVA = gvr.DataKey("RetIVA").ToDecimal - VentaActual.RetISR = gvr.DataKey("RetISR").ToDecimal - - VentaActual.PorcentajeIVA = gvr.DataKey("PorcentajeIVA").ToDecimal - VentaActual.CveSubProyecto = gvr.DataKey("CveSubProyecto").ToEntero - - 'Importe de pago - Dim Pago As New VentaPago - Pago.Fecha = TxtFechaDocumento.Text.ToDate - Pago.CveIE = CveIE - Pago.CveMonedaPago = CveMoneda - Pago.ImportePago = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - Pago.ImportePagoVenta = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - Pago.Referencia = TxtFolio.Text - - If RblTipoPago.SelectedValue = "3" Then - Pago.TipoPago = "I" - Pago.FechaDocumentoRelacionado = FechaIngreso - End If - - 'Tipos de cambio - If Pago.CveMonedaPago = 1 AndAlso VentaActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos - Pago.TCPago = TxtTC.Text.ToDecimal - ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES - Pago.TCPago = IIf(TxtTCDolaresDolares.Visible, TxtTCDolaresDolares.Text.ToDecimal, TxtTCDolares.Text.ToDecimal) - ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - Pago.TCPago = TxtTCDolares.Text.ToDecimal - End If - tipoCambioPago = Pago.TCPago - - If gvr.FCTextBox("TxtComision").Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = gvr.FCTextBox("TxtComision").Text.ToDecimal - - If UsuarioActual.Empresa.Funcionalidad(590) = "1" AndAlso MsgError = "" Then '' si es empresa agrícola - Dim FluctuacionAnticipo As Decimal = 0 - Dim ImporteLiq1 As Decimal = gvr.FCTextBox("TxtLiqCol1").Text.ToDecimal - Dim ImporteLiq2 As Decimal = gvr.FCTextBox("TxtLiqCol2").Text.ToDecimal - Dim ImporteLiq3 As Decimal = gvr.FCTextBox("TxtLiqCol3").Text.ToDecimal - Dim ImporteLiq4 As Decimal = gvr.FCTextBox("TxtLiqCol4").Text.ToDecimal - Dim ImporteLiq5 As Decimal = gvr.FCTextBox("TxtLiqCol5").Text.ToDecimal - Dim ImporteLiq6 As Decimal = gvr.FCTextBox("TxtLiqCol6").Text.ToDecimal - Dim ImporteLiq7 As Decimal = gvr.FCTextBox("TxtLiqCol7").Text.ToDecimal - Dim ImporteLiq8 As Decimal = gvr.FCTextBox("TxtLiqCol8").Text.ToDecimal - Dim ImporteLiq9 As Decimal = gvr.FCTextBox("TxtLiqCol9").Text.ToDecimal - - Dim CveClasificacionCol1 As Integer = 21514 'comisiones sobre venta - Dim CveClasificacionCol2 As Integer = 21916 ' manejo - Dim CveClasificacionCol3 As Integer = 21917 'servicios de inspección - Dim CveClasificacionCol4 As Integer = 21918 ' seguro liquidación - Dim CveClasificacionCol5 As Integer = 21561 ' gastos aduanales mex - Dim CveClasificacionCol6 As Integer = 21920 ' diveros - Dim CveClasificacionCol7 As Integer = 21919 'gastos aduanales usa - Dim CveClasificacionCol8 As Integer = 21211 'material Empaque - Dim CveClasificacionCol9 As Integer = 21207 'Semilla - - Dim CveSubProyectoLiquidacion As Integer = gvr.DataKey("CveSubProyecto").ToEntero - Dim CveConceptoLiquidacion As Integer = 51 - Dim ConceptoPartida As String = gvr.DataKey("SerieFolio") & " " & gvr.FCDropDownList("DdlTG").SelectedItem.Text - - If ImporteLiq1 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq1, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq1 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol1, ImporteME:=If(CveMoneda > 1, ImporteLiq1, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq2 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq2, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq2 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol2, ImporteME:=If(CveMoneda > 1, ImporteLiq2, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq3 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq3, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq3 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol3, ImporteME:=If(CveMoneda > 1, ImporteLiq3, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq4 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq4, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq4 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol4, ImporteME:=If(CveMoneda > 1, ImporteLiq4, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq5 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq5, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq5 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol5, ImporteME:=If(CveMoneda > 1, ImporteLiq5, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq6 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq6, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq6 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol6, ImporteME:=If(CveMoneda > 1, ImporteLiq6, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq7 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq7, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq7 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol7, ImporteME:=If(CveMoneda > 1, ImporteLiq7, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq8 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq8, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq8 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol8, ImporteME:=If(CveMoneda > 1, ImporteLiq8, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If ImporteLiq9 <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteLiq9, gvr.DataKey("SerieFolio"), CveConceptoLiquidacion, ConceptoPartida, Now, -1, -1, CveIE, gvr.DataKey("CveVenta").ToEntero, -1, CveSubProyectoLiquidacion, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=ImporteLiq9 * tipoCambioPago, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=0, CveClasificacion:=CveClasificacionCol9, ImporteME:=If(CveMoneda > 1, ImporteLiq9, 0), CveTipoGasto:=gvr.FCDropDownList("DdlTG").SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" : Exit For - End If - End If - - If MsgError = "" AndAlso gvr.FCDropDownList("DdlAnti").SelectedValue.ToEntero > 0 Then - Dim TCP As Decimal = 0 - Dim FolioPago As String = " " - If DtIngresos IsNot Nothing Then - TCP = DtIngresos.FiltroPrimeroValor("TipoCambio", String.Format("CveIE={0}", gvr.FCDropDownList("DdlAnti").SelectedValue)) - FolioPago = DtIngresos.FiltroPrimeroValor("Folio", String.Format("CveIE={0}", gvr.FCDropDownList("DdlAnti2").SelectedValue)) - Dim tTCPFecha As Date = DtIngresos.FiltroPrimeroValor("FechaDocumento", String.Format("CveIE={0}", gvr.FCDropDownList("DdlAnti").SelectedValue)).ToDate - 'considera fluctuación - If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then - If tTCPFecha <= UltimaFluctuacion.FechaFluctuacion Then - tTCPFecha = UltimaFluctuacion.FechaFluctuacion - TCP = UltimaFluctuacion.TCFluctuacion - End If - End If - End If - 'se calcula la fluctuación de la aplicación del anticipo, para sumarla en el concepto de fluctuación más abajo - FluctuacionAnticipo = ((TCP - tipoCambioPago) * gvr.FCTextBox("TxtAmort").Text.ToDecimal).RoundSQL - MsgError = RegistraAmortizacionAnticipo(ObjMov, CvePrePoliza, gvr.FCDropDownList("DdlAnti").SelectedValue.ToEntero, gvr.FCTextBox("TxtAmort").Text.ToDecimal, TCP, gvr.DataKey("CveVenta").ToEntero, gvr.DataKey("SerieFolio").ToString, FolioPago) - End If - - If MsgError = "" AndAlso gvr.FCDropDownList("DdlAnti2").SelectedValue.ToEntero > 0 Then - Dim TCP As Decimal = 0 - Dim FolioPago As String = " " - If DtIngresos IsNot Nothing Then - TCP = DtIngresos.FiltroPrimeroValor("TipoCambio", String.Format("CveIE={0}", gvr.FCDropDownList("DdlAnti2").SelectedValue)) - FolioPago = DtIngresos.FiltroPrimeroValor("Folio", String.Format("CveIE={0}", gvr.FCDropDownList("DdlAnti2").SelectedValue)) - Dim tTCPFecha As Date = DtIngresos.FiltroPrimeroValor("FechaDocumento", String.Format("CveIE={0}", gvr.FCDropDownList("DdlAnti2").SelectedValue)).ToDate - 'considera fluctuación - If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then - If tTCPFecha <= UltimaFluctuacion.FechaFluctuacion Then - tTCPFecha = UltimaFluctuacion.FechaFluctuacion - TCP = UltimaFluctuacion.TCFluctuacion - End If - End If - - End If - 'se calcula la fluctuación de la aplicación del anticipo, para sumarla en el concepto de fluctuación más abajo - FluctuacionAnticipo += ((TCP - tipoCambioPago) * gvr.FCTextBox("TxtAmort2").Text.ToDecimal).RoundSQL - MsgError = RegistraAmortizacionAnticipo(ObjMov, CvePrePoliza, gvr.FCDropDownList("DdlAnti2").SelectedValue.ToEntero, gvr.FCTextBox("TxtAmort2").Text.ToDecimal, TCP, gvr.DataKey("CveVenta").ToEntero, gvr.DataKey("SerieFolio").ToString, FolioPago) - End If - - If ImportePrestamo <> 0 Then - If TCPrestamo > 0 Then - FluctuacionAnticipo += ((TCPrestamo - tipoCambioPago) * ImportePrestamo).RoundSQL - ImportePrestamo = 0 - End If - End If - Pago.ImporteFluctuacionAdicional = FluctuacionAnticipo - End If - - If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then - MsgError = "No se pudo insertar la póliza" - Exit For - End If - - ' Case 134 'Pago Intermediario - If RblTipoPago.SelectedValue = "2" Then - Dim ImporteMovimiento As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - gvr.FCTextBox("TxtComision").Text.ToDecimal - Dim ImporteMN As Decimal = (ImporteMovimiento * tipoCambioPago).RoundSQL - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 134, VentaActual.SerieFolio, VentaActual.SerieFolio, 0, CveVenta:=gvr.DataKey("CveVenta").ToEntero, CveSubProyecto:=CveSubProyectoContabilizar, CveProveedor:=DdlProveedorPagoInt.SelectedValue.ToEntero) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - - 'PARA EMITIR COMPLEMENTO PAGO - CveVentasPago.Add(gvr.DataKey("CveVenta").ToEntero) - SeriesPago.Add(gvr.DataKey("SerieFolio")) - - - If gvr.FCCheckBox("ChkGenerarNC").Checked AndAlso ObjFactura IsNot Nothing Then - ObjFactura.DescuentoProntoPago = gvr.DataKey("DescuentoProntoPago").ToDecimal() - ListaFacturasGenerarNC.Add(ObjFactura) - End If - - End If - Next - - If RblTipoPago.SelectedValue = "1" AndAlso MsgError = "" Then - - CveSubProyectoContabilizar = CveSubProyectoMaximo - - If CveMoneda = 2 Then - 'If IdCuentaBancariaComplementaria > 0 Then - If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - tipoCambioPago = TxtTCDolares.Text.ToDecimal - ElseIf CveMoneda = 2 AndAlso CveMonedaFiltro = 2 Then - tipoCambioPago = TxtTCDolaresDolares.Text.ToDecimal - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, TxtImporte.Text.ToDecimal, ObjIE.Folio, 30, TxtObservaciones.Text + If(CveMoneda = 2, $" TC:{tipoCambioPago}", ""), TxtFechaDocumento.Text, IdCuentaBancaria, -1, CveIE, -1, -1, CveSubProyectoContabilizar, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=TxtImporte.Text.Trim.ToDecimal, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago) Then - MsgError = "No se pudo insertar la póliza" - End If - - If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, If(CveMoneda = 1 AndAlso TxtTC.Visible, TxtImporte.Text.ToDecimal / TxtTC.Text.ToDecimal, TxtImporte.Text.ToDecimal), TxtObservaciones.Text, 204, TxtObservaciones.Text + If(CveMoneda = 2, $" TC:{tipoCambioPago}", ""), TxtFechaDocumento.Text, IdCuentaBancariaComplementaria, -1, CveIE, -1, -1, CveSubProyectoContabilizar, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=If(CveMoneda = 2, (TxtImporte.Text.Trim.ToDecimal * tipoCambioPago) - TxtImporte.Text.Trim.ToDecimal, TxtImporte.Text.Trim.ToDecimal), ImporteME:=If(CveMoneda = 2, TxtImporte.Text.Trim.ToDecimal, 0), TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago) Then - MsgError = "No se pudo insertar la póliza" - End If - - Else - If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - tipoCambioPago = TxtTCDolares.Text.ToDecimal - ElseIf CveMoneda = 2 AndAlso CveMonedaFiltro = 2 Then - tipoCambioPago = TxtTCDolaresDolares.Text.ToDecimal - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, TxtImporte.Text.ToDecimal, ObjIE.Folio, 30, TxtObservaciones.Text + If(CveMoneda = 2, $" TC:{tipoCambioPago}", ""), TxtFechaDocumento.Text, IdCuentaBancaria, -1, CveIE, -1, -1, CveSubProyectoContabilizar, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=If(CveMoneda = 2, TxtImporte.Text.Trim.ToDecimal * tipoCambioPago, TxtImporte.Text.Trim.ToDecimal), ImporteME:=If(CveMoneda = 2, TxtImporte.Text.ToDecimal, 0), TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - End If - - If UsuarioActual.Empresa.Funcionalidad(590) = "1" AndAlso MsgError = "" Then '' si es empresa agrícola - If TxtAnticipo.Text.ToDecimal <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, TxtAnticipo.Text.ToDecimal, TxtFolio.Text, 66, TxtObservaciones.Text, Now, -1, -1, CveIE, -1, -1, CveSubProyecto, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=TxtAnticipo.Text.ToDecimal, TipoCambio:=tipoCambioPago, PorcentajeImpuesto:=0, ImporteME:=If(CveMoneda > 1, TxtAnticipo.Text.ToDecimal, 0)) Then - MsgError = "No se pudo insertar la póliza" - End If - - If CveMoneda > 1 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, TxtAnticipo.Text.ToDecimal, TxtFolio.Text, 226, TxtObservaciones.Text, Now, -1, -1, CveIE, -1, -1, CveSubProyecto, ViewState("CveCliente").ToString.ToEntero, ImporteMX:=((TxtAnticipo.Text.ToDecimal * tipoCambioPago) - TxtAnticipo.Text.ToDecimal).RoundSQL, TipoCambio:=tipoCambioPago, PorcentajeImpuesto:=0, ImporteME:=If(CveMoneda > 1, TxtAnticipo.Text.ToDecimal, 0)) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - - End If - - End If - - If MsgError = "" AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then - If Not ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then - MsgError = "No se pudo simplificar los movimientos" - Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError) - End If - End If - - If MsgError = "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 3) Then - If ObjMov.ValorPolizaDescuadre > 0 Then - MsgError = ObjMov.MensajePolizaDescuadre & " La diferencia es de: " & ObjMov.ValorDiferencia - End If - End If - - 'Conta ContPAQ - If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError = "" Then - If idCuentaContabilizacion > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - IDPoliza = ObjMov.ContaIdPoliza - FolioPoliza = ObjMov.ContaFolio - Else - Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") - MsgError = "Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico" - End If - Else - Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son invalidas: {0}", CuentasContablesInvalidas)) - End If - End If - Else - MsgError = "No se pudo insertar la póliza" - End If - Else - MsgError = "No se insertó el encabezado" - End If - - If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso MsgError = "" Then - If MsgError = "" Then - If ListaFacturasGenerarNC.Count > 0 Then - - For Each Fac As Modelos.Factura In ListaFacturasGenerarNC - Dim ListaNC As New List(Of Modelos.Factura) - ListaNC.Add(Fac) - Dim Resp = GenerarNC(ObjIE.IniciaTransacSQL(), ObjConta, ListaNC) - - If Resp IsNot Nothing AndAlso Resp.Respuesta IsNot Nothing AndAlso Resp.Respuesta.CveVenta > 0 Then - NCGeneradas.Add(Resp) - Else - MsgError = "No se pudo generar la nota de crédito" - Exit For - End If - Next - - If MsgError = "" Then - If NCGeneradas.Count <> ListaFacturasGenerarNC.Count Then - MsgError = "No se generaron las notas de crédito seleccionadas" - End If - End If - - End If - End If - End If - - Dim ErrorAC As Boolean = False - - If MsgError = "" Then - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then - Dim Fecha As Date = TxtFechaDocumento.Text.Trim.ToDate - ObjConta = New ClsContPAQi(UsuarioActual.Empresa) - ObjConta.IniciaTransacSQL() - Dim Facturas As New StringBuilder - - IDPoliza = ObjConta.AddPoliza(1, String.Format("Recaudado: {0}, {1}", TxtAboneA.Text, TxtObservaciones.Text), TxtImporte.Text.ToDecimal, TxtImporte.Text.ToDecimal, UsuarioActual.CveUsuario, Fecha) - FolioPoliza = ObjConta.Folio.ToString - - - Dim ConceptoRenglon As String - If IDPoliza > 0 Then - Dim PorcentajePago As Double = 1 - Dim Total As Double - Dim ObjVentas As New ClsVentas - Dim ImporteOP = 0.0 - Dim IdCuentaOP = -1 - - For Each gvr As GridViewRow In GvCxC.Rows - If gvr.FCCheckBox("Chk").Checked Then - If gvr.DataKey("Original").ToDecimal > 0 Then PorcentajePago = gvr.FCTextBox("TxtAbonar").Text.ToDecimal / gvr.DataKey("Original").ToDecimal Else PorcentajePago = 1 - - If ObjVentas.GetPresupuestosVentas(gvr.DataKey("CveVenta").ToEntero) Then - For Each drt As DataRow In ObjVentas.DtResultados.Rows - Total = drt("TotalPresupuesto").ToString.ToDecimal * PorcentajePago - ConceptoRenglon = String.Format("{0} {1}", gvr.DataKey("SerieFolio"), drt("FuenteRecaudacionRubroIngreso").ToString) - If Total > 0 Then - If Not ObjConta.AddMovimiento(IDPoliza, drt("IdCuentaDevengado").ToString.ToEntero, False, Total, "", ConceptoRenglon, 0, Fecha, "") Then ErrorAC = True : Exit For : Exit For - - If Not ObjConta.AddMovimiento(IDPoliza, drt("IdCuentaRecaudado").ToString.ToEntero, True, Total, "", ConceptoRenglon, 0, Fecha, "") Then ErrorAC = True : Exit For : Exit For - End If - - Next - If ErrorAC Then Exit For - - Facturas.AppendFormat(" {0}", gvr.DataKey("SerieFolio")) - End If - - End If - Next - ObjVentas.Dispose() - - 'AFECTAR MATRIZ EGRESOS - ConceptoRenglon = String.Format("Recaudado: {0} - F.{1}", TxtAboneA.Text, Facturas.ToString) - If ObjConta.AddMovimiento(IDPoliza, IdCuentaBancaria, False, TxtImporte.Text.ToDecimal, "", ConceptoRenglon, 0, Fecha, "") Then - If TxtImporte.Text.ToDecimal - ImporteOP > 0 Then - If Not ObjConta.AddMovimiento(IDPoliza, ViewState("CtaCliente").ToString.ToEntero, True, TxtImporte.Text.ToDecimal - ImporteOP, "", ConceptoRenglon, 0, Fecha, "") Then ErrorAC = True - End If - Else - ErrorAC = True - End If - - Else - ErrorAC = True - End If - - If Not ErrorAC Then - ErrorAC = Not ObjConta.AjustaPoliza(IDPoliza) - End If - - If Not ErrorAC Then - ErrorAC = Not ObjIE.UpdateIEPrePoliza(Fecha, FolioPoliza.ToString, IDPoliza, CvePrePoliza, CveIE, 0) - End If - - End If - End If - - If ErrorAC Then - MsgError = "Error al Agregar la Póliza de Armonización Contable" - End If - - Catch ex As Exception - MsgError = "Ocurrió un error al guardar el movimiento" - OnError("Ocurrió un error al guardar el movimiento", ex) - End Try - - If MsgError = "" Then - ObjIE.Commit() - If ObjConta IsNot Nothing Then ObjConta.Commit() - - Dim StrMsg As New StringBuilder - StrMsg.AppendFormat("Abono Registrado Correctamente. Folio {1}
", CveIE, ObjIE.Folio) - - If IDPoliza > 0 Then StrMsg.AppendFormat("Poliza: {1}
", IDPoliza, FolioPoliza) - - Dim TextoComplementoPago = EmitirComplementoPago(CveIE, CveVentasPago, SeriesPago) - - For Each RespuestaNotaCredito In NCGeneradas - If RespuestaNotaCredito IsNot Nothing AndAlso RespuestaNotaCredito.Respuesta IsNot Nothing Then - Try - Dim ObjTimbradoNC As New Timbrado - Dim TimbroNC = ObjTimbradoNC.TimbrarFactura(UsuarioActual, RespuestaNotaCredito.ObjFacturaNC) - If Not TimbroNC Then - Alert(ObjTimbradoNC.MensajeErrorCFDI, TipoMensaje.MsgError) - End If - ObjTimbradoNC = Nothing - Catch ex As Exception - OnError("Ocurrió un error al timbrar la NC.", ex) - End Try - StrMsg.AppendFormat("Nota de crédito generada correctamente.

Folio: {1}
", RespuestaNotaCredito.Respuesta.CveVenta, RespuestaNotaCredito.Respuesta.SerieFolio) - End If - Next - Alert($"{StrMsg.ToString}

{TextoComplementoPago}", TipoMensaje.MsgInformacion, If(ChkSeguirRegistrando.Checked, "location.href =""#""", "location.href =""/Bancos/RepCxCCliente.aspx""")) - - Else - If ObjConta IsNot Nothing Then ObjConta.RollBack() - ObjIE.RollBack() - Alert(MsgError, TipoMensaje.MsgAdvertencia) - End If - - ObjIE.Dispose() - ObjVentasSaldos.Dispose() - ObjMov.Dispose() - If ObjConta IsNot Nothing Then ObjConta.Dispose() - ObjEvento.Dispose() - - UPVentas.Update() - - If MsgError = "" Then - LimpiaCampos() - End If - - End Sub - - Private Function RegistraAmortizacionAnticipo(ByRef ObjMov As ClsContabilidad, CvePrePoliza As Integer, CveIE As Integer, Importe As Decimal, tipoCambioPago As Decimal, CveVenta As Integer, ReferenciaVenta As String, ReferenciaPago As String) As String - Dim MsgError As String = "" - If CveMonedaPago = 2 Then - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, Importe, ReferenciaVenta, 92, ReferenciaVenta, TxtFechaDocumento.Text, 0, -1, CveIE, CveCliente:=CveCliente, ImporteMX:=Importe, CveVenta:=CveVenta, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago) Then - MsgError = "No se pudo insertar la póliza" - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, If(CveMoneda = 1 AndAlso TxtTC.Visible, Importe / TxtTC.Text.ToDecimal, Importe), ReferenciaVenta, 227, TxtObservaciones.Text + If(TxtTC.Visible, $" TC:{TxtTC.Text}", If(CveMoneda = 2, $" TC:{tipoCambioPago}", "")), TxtFechaDocumento.Text, 0, -1, CveIE, CveCliente:=ViewState("CveCliente").ToString.ToEntero, ImporteMX:=If(CveMoneda = 2, (Importe * tipoCambioPago) - Importe, Importe), ImporteME:=If(CveMoneda = 2, Importe, 0), CveVenta:=CveVenta, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago) Then - MsgError = "No se pudo insertar la póliza" - End If - - Else - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, Importe, ReferenciaVenta, 92, ReferenciaVenta, TxtFechaDocumento.Text, 0, -1, CveIE, CveCliente:=ViewState("CveCliente").ToString.ToEntero, ImporteMX:=If(CveMoneda = 2, Importe * tipoCambioPago, Importe), ImporteME:=If(CveMoneda = 2, Importe, 0), CveVenta:=CveVenta, TipoCambio:=tipoCambioPago, TipoCambioPago:=tipoCambioPago) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - - Return MsgError - - End Function - -#Region " N O T A - D E - C R E D I T O" - Private Class RespuestaNotaCredrito - Public Property ObjFacturaNC As Modelos.Factura - Public Property Respuesta As Modelos.Factura.MMensajeFactura - End Class - - Private Function GenerarNC(SqlTransaccion As SqlClient.SqlTransaction, ObjConta As ClsContPAQi, ListaVentasGenerarNC As List(Of Modelos.Factura)) As RespuestaNotaCredrito - Dim Retorno As New RespuestaNotaCredrito() - Try - - Dim ObjFacturaDevolucion = New Modelos.Factura(UsuarioActual) - ObjFacturaDevolucion.TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.HTML - ObjFacturaDevolucion.CveUsuario = UsuarioActual.CveUsuario - ObjFacturaDevolucion.UsuarioCreo = UsuarioActual.Usuario - - Dim CveSubProyecto As Integer = Me.CveSubProyecto - Dim CveMoneda As Integer = Me.CveMoneda - Dim CveCliente As Integer = Me.CveCliente - - If CveSubProyecto <= 0 Then - CveSubProyecto = ListaVentasGenerarNC(0).CveSubProyecto - End If - - If CveMoneda <= 0 Then - CveMoneda = ListaVentasGenerarNC(0).CveMoneda - End If - - If CveCliente <= 0 Then - CveCliente = ListaVentasGenerarNC(0).CveCliente - End If - - Dim Folio As Integer = -1 - Dim Serie As String = "-1" - - ObjFacturaDevolucion.CveEmpresa = UsuarioActual.CveEmpresa - ObjFacturaDevolucion.TipoCambio = If(Me.CveMoneda = 1, 1, GlobalTipoCambio(Now).FormatoNumero(4).ToDecimal()) - ObjFacturaDevolucion.ConvertirPesos = False - ObjFacturaDevolucion.CveMoneda = CveMoneda - ObjFacturaDevolucion.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {CveMoneda}") - ObjFacturaDevolucion.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {CveMoneda}") - ObjFacturaDevolucion.Serie = Serie - ObjFacturaDevolucion.Folio = Folio - ObjFacturaDevolucion.Fecha = Now - ObjFacturaDevolucion.CvePrePoliza = -1 - ObjFacturaDevolucion.CveMetodoPago = 0 - ObjFacturaDevolucion.CondicionesPago = 0 ' 0 - Contado, 1 - Credito (CHECAR) - ObjFacturaDevolucion.FormaPago = 0 - - ObjFacturaDevolucion.TipoDocto = "Egs" - ObjFacturaDevolucion.Fecha = Now - - ObjFacturaDevolucion.Version = "4.0" - - ObjFacturaDevolucion.CveMetodoPago33 = 1 - ObjFacturaDevolucion.MetodoPago33 = "PUE - Pago en una sola exhibición" - ObjFacturaDevolucion.ClaveMetodoPagoSAT = "PUE" - - Dim drtt As DataRow = GlobalDTTipoTransacciones.FiltroPrimero("CveTipoTransaccion =" & DdlTipoTransaccion.SelectedValue) - Dim dra As DataRow = GlobalDTVtaFormaPago.FiltroPrimero("CveFormaPago = " & drtt("CveFormaPago")) - - ObjFacturaDevolucion.CveFormaPago33 = dra("CveFormaPago").ToString - ObjFacturaDevolucion.FormaPago33 = dra("FormaPagoSAT").ToString - ObjFacturaDevolucion.FormaPagoSAT33 = dra("ClaveFormaPagoSAT").ToString - - ObjFacturaDevolucion.CveSubProyecto = CveSubProyecto - ObjFacturaDevolucion.SetSubProyecto() - - ObjFacturaDevolucion.CveCliente = CveCliente - ObjFacturaDevolucion.SetCliente() - - Dim ObjCliente As New ClsClientes - If ObjCliente.GetClientes(ObjFacturaDevolucion.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then - If ObjCliente.DtResultados.Rows.Count > 0 Then - - ObjFacturaDevolucion.CveUsoCFDI = 2 - ObjFacturaDevolucion.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("Descripcion", String.Format("CveUsoCFDI = {0}", 2)) - ObjFacturaDevolucion.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", String.Format("CveUsoCFDI = {0}", 2)) - - ObjFacturaDevolucion.DtDetalle = CreaDTDetalleNC() - - CargaImpuestos(ObjFacturaDevolucion, ListaVentasGenerarNC, ObjCliente.DesglosaIEPS, ObjCliente.RetIVA, ObjCliente.RetISR) - - End If - End If - - If ObjCliente.GetSucursales(CveCliente) Then - If ObjCliente.DtResultados.Rows.Count > 0 Then - ObjFacturaDevolucion.CveClienteSucursal = If(String.IsNullOrEmpty(ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'")), -1, ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'").ToEntero()) - Else - ObjFacturaDevolucion.CveClienteSucursal = -1 - End If - End If - ObjCliente.Dispose() - - ObjFacturaDevolucion.CveTipoRelacion = 1 - ObjFacturaDevolucion.TipoRelacion = "01" - ObjFacturaDevolucion.DtVentasRelacionadas = New DataTable - ObjFacturaDevolucion.DtVentasRelacionadas.Columns.Add("CveVenta", GetType(Integer)) - - Dim Fol As New List(Of String) - For Each Fac In ListaVentasGenerarNC - Fol.Add(Fac.FolioFiscal) - - Dim RowVenta As DataRow = ObjFacturaDevolucion.DtVentasRelacionadas.NewRow - RowVenta("CveVenta") = Fac.CveVenta - - ObjFacturaDevolucion.DtVentasRelacionadas.Rows.Add(RowVenta) - Next - - ObjFacturaDevolucion.UUIDRelacionados = Fol - - Select Case ObjFacturaDevolucion.TipoDocto - Case "Ing" - ObjFacturaDevolucion.TipoDocumento = "Factura" - Case "REM" - ObjFacturaDevolucion.TipoDocumento = "Remision" - Case "Cot" - ObjFacturaDevolucion.TipoDocumento = "Cotizacion" - Case "Egs" - ObjFacturaDevolucion.TipoDocumento = "Nota de Crédito" - Case "Dev" - ObjFacturaDevolucion.TipoDocumento = "Nota de Devolución" - Case Else - ObjFacturaDevolucion.TipoDocumento = "" - End Select - - ObjFacturaDevolucion.FechaPago = Now - - ObjFacturaDevolucion.CveCorte = -1 - 'ObjFacturaDevolucion.CveMesa = -1 - ObjFacturaDevolucion.NumeroPersonas = 0 - ObjFacturaDevolucion.CveContrato = -1 - ObjFacturaDevolucion.DescripcionContrato = "" - ObjFacturaDevolucion.CveClienteSucursal = -1 - ObjFacturaDevolucion.Entrega = "" - ObjFacturaDevolucion.CveAlmacen = -1 - - Dim DtVentasNC = InicializaDTVentasNC() - - Dim TotalImporte As Decimal = ObjFacturaDevolucion.DtDetalle.SUMD("TotalImporte") - Dim ImporteIVA As Decimal = ObjFacturaDevolucion.DtDetalle.SUMD("ImporteIVA") - Dim ImporteRetIVA As Decimal = ObjFacturaDevolucion.DtDetalle.SUMD("ImporteRetIVA") - Dim ImporteRetISR As Decimal = ObjFacturaDevolucion.DtDetalle.SUMD("ImporteRetISR") - Dim ImporteIEPS As Decimal = ObjFacturaDevolucion.DtDetalle.SUMD("ImporteIEPS") - Dim Descuento As Decimal = ObjFacturaDevolucion.DtDetalle.SUMD("Descuento") - Dim Amortizacion As Decimal = 0 - - Dim Total As Decimal = (TotalImporte + ImporteIVA + ImporteIEPS) - (ImporteRetIVA + ImporteRetISR + Descuento + Amortizacion) - - 'DETALLES - ObjFacturaDevolucion.SubTotal = TotalImporte - ObjFacturaDevolucion.Descuento = Descuento - ObjFacturaDevolucion.Amortizacion = Amortizacion - ObjFacturaDevolucion.IVA = ImporteIVA - ObjFacturaDevolucion.RetIVA = ImporteRetIVA - ObjFacturaDevolucion.RetISR = ImporteRetISR - ObjFacturaDevolucion.IEPS = ImporteIEPS - ObjFacturaDevolucion.Total = Total - ObjFacturaDevolucion.TotalOtrosConceptos = 0 - - For Each Fac In ListaVentasGenerarNC - Dim Drt = DtVentasNC.NewRow - Drt("CveVenta") = Fac.CveVenta - Drt("Importe") = Fac.DescuentoProntoPago - Drt("FolioFiscal") = Fac.FolioFiscal - DtVentasNC.Rows.Add(Drt) - Next - - DtVentasNC.AcceptChanges() - - ObjFacturaDevolucion.DtVentasNC = DtVentasNC - - ObjFacturaDevolucion.Timbre = PreParaTimbre(ObjFacturaDevolucion, ListaVentasGenerarNC) - - Try - Dim Resp = ObjFacturaDevolucion.EmitirFactura(False, Transac:=SqlTransaccion, ObjContPaqTransac:=ObjConta) - Retorno.Respuesta = Resp - Catch ex As Exception - OnError("Ocurrió un error al guardar la NC de pronto pago", ex) - Retorno.Respuesta = Nothing - End Try - Retorno.ObjFacturaNC = ObjFacturaDevolucion - - Catch ex As Exception - OnError("Ocurrió un error al generar la NC de pronto pago", ex) - Retorno = Nothing - End Try - - Return Retorno - - End Function - - Private Function PreParaTimbre(Obj As Modelos.Factura, ListaVentasGenerarNC As List(Of Modelos.Factura)) As CFDITimbre - Dim Timbre As New CFDITimbre - Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", "")) - Timbre.Comprobante.Folio = Obj.Folio.ToString() - Timbre.Comprobante.Serie = Obj.Serie - Timbre.Comprobante.Fecha = Obj.FechaCP - Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 - Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33 - Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT - Timbre.Comprobante.SubTotal = Obj.SubTotal - Timbre.Comprobante.Descuentos = Obj.Descuento - Timbre.Comprobante.Moneda = Obj.MonedaSAT - Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString()) - Timbre.Comprobante.Total = Obj.Total - - Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP - If Timbre.Comprobante.LugarExpedicion = "" Then - Dim aa As String = "no se guardo lugar de expedicion" - aa.GuardaLog() - End If - - Timbre.Comprobante.Confirmacion = "" - - If Obj.FacturarSucursal Then - Timbre.Receptor.RFC = Obj.ClienteSucursal.RFC - Timbre.Receptor.Nombre = Obj.ClienteSucursal.Nombre - Timbre.Receptor.DomicilioFiscalReceptor = Obj.ClienteSucursal.CP - Else - Timbre.Receptor.RFC = Obj.Cliente.RFC - Timbre.Receptor.Nombre = Obj.Cliente.Nombre - Timbre.Receptor.DomicilioFiscalReceptor = Obj.Cliente.CP - End If - - Timbre.Receptor.RegimenFiscalReceptor = Obj.Cliente.CodigoRegimenFiscal - - Timbre.Receptor.ResidenciaFiscal = "" - Timbre.Receptor.NumeroRegistroTributario = "" - Timbre.Receptor.UsoCFDI = Obj.ClaveUsoCFDI - - If ListaVentasGenerarNC IsNot Nothing Then - Timbre.CFDIRelacionados.UUID.Clear() - - Dim RowTipoRelacion As DataRow = GlobalDTVtaTiposRelacion().FiltroPrimero($"CveTipoRelacion = {Obj.CveTipoRelacion}") - - Timbre.CFDIRelacionados.TipoRelacion = RowTipoRelacion("SATClaveTipoRelacion").ToString() - Timbre.CFDIRelacionados.TipoRelacionTexto = RowTipoRelacion("SATTipoRelacion").ToString() - - For Each Fac In ListaVentasGenerarNC - Timbre.CFDIRelacionados.UUID.Add(Fac.FolioFiscal) - Next - End If - - Dim totSubTotal As Decimal = If(UsuarioActual.Empresa.CvePAC = 3, Obj.DtDetalle.SUMD("Total"), Obj.SubTotal) 'Obj.SubTotal - Dim totIVA As Decimal = Obj.IVA - Dim totRetIVA As Decimal = Obj.RetIVA - Dim totRetISR As Decimal = Obj.RetISR - - Dim i As Integer = 1 - - 'detalles - Dim tPS As String = "" - - For Each drr As DataRow In Obj.DtDetalle.Rows - If drr("PS").ToString().Length = 1 Then - tPS = drr("Obs").ToString() - Else - If drr("PS").ToString().Length = 0 Then - tPS = "" - Else - tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) - End If - End If - - tPS = tPS.Replace("|", " ") - - If tPS.Length >= 1000 Then - Dim tPSRecortado = tPS.Remove(999, tPS.Length - 999) - tPS = tPSRecortado - End If - - 'condicionante, especial - If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" ' les comentan que no debe de ir la etiqueta de "unidad" en el producto - - Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString().ToDecimal, - .Descripcion = tPS, - .ValorUnitario = drr("PU").ToString().ToDecimal, - .Importe = If(UsuarioActual.Empresa.CvePAC = 3, drr("Total").ToString().ToDecimal.RoundSQL(2), drr("TotalImporte").ToString().ToDecimal), - .Descuento = drr("Descuento").ToString().ToDecimal.RoundSQL(2), - .Unidad = drr("UM").ToString(), - .ClaveUnidad = drr("SATClaveUM").ToString(), - .ClaveProdServ = drr("SATClaveProdServ").ToString(), - .Noidentificacion = drr("Noidentificacion").ToString(), - .CuentaPredial = drr("CuentaPredial").ToString(), - .ImporteGravaIVAAdicional = drr("ImporteIEPS").ToString().ToDecimal, - .ObjetoImpuesto = drr("CodigoObjetoImpuesto").ToString()} - 'verifica suma subtotales - If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal.RoundSQL(2) <> concepto.Importe.RoundSQL(2) AndAlso Math.Abs(totSubTotal.RoundSQL(2) - concepto.Importe.RoundSQL(2)) <= 0.01 Then 'proceso de ajusta de decimales - concepto.Importe = totSubTotal - End If - totSubTotal = totSubTotal - concepto.Importe - - 'siempre estaremos agregando el iva, auqnue sea en importe cero o tasa cero, para que se emita la factura - ' If drr("ImporteIVA").ToString().ToDouble > 0 Then - - 'si es ingreso amortizado por la totalidad, y arroja el valor total de cero, no debe de impuestos, y si la BASE de calculo es mayor a cero - If Timbre.Comprobante.Total > 0 AndAlso concepto.Importe - concepto.Descuento + concepto.ImporteGravaIVAAdicional > 0 Then - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = (concepto.Importe - concepto.Descuento + concepto.ImporteGravaIVAAdicional).RoundSQL(6), .TasaOCuota = drr("PorcentajeIVA").ToString().ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString().ToDecimal}) - End If - - If drr("ImporteIEPS").ToString().ToDouble > 0 Then - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = (concepto.Importe - concepto.Descuento).RoundSQL(6), .TasaOCuota = drr("PorcentajeIEPS").ToString().ToDecimal, .Impuesto = "003", .Importe = drr("ImporteIEPS").ToString().ToDecimal}) - End If - - If drr("ImporteRetIVA").ToString().ToDouble > 0 Then 'si hay retenciones - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = (concepto.Importe - concepto.Descuento).RoundSQL(6), .TasaOCuota = drr("PorcentajeRetIVA").ToString().ToDecimal, .Impuesto = "002", .Importe = drr("ImporteRetIVA").ToString().ToDecimal}) - End If - - If drr("ImporteRetISR").ToString().ToDouble > 0 Then 'retención de ISR - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = (concepto.Importe - concepto.Descuento).RoundSQL(6), .TasaOCuota = drr("PorcentajeRetISR").ToString().ToDecimal, .Impuesto = "001", .Importe = drr("ImporteRetISR").ToString().ToDecimal}) - End If - - Timbre.Conceptos.Add(concepto) - i += 1 - Next - - Return Timbre - End Function - - - Private Sub AgregaTempDTNC(ByRef TmpDT As DataTable, CvePS As Integer, PS As String, Codigo As String, CodigoPS As String, CveTipoPS As Integer, CveTipoInvPS As Integer, CveUM As Integer, UM As String, - CveClasificacion As Integer, Clasificacion As String, CveProyecto As Integer, CveSubProyecto As Integer, - Obs As String, Cantidad As Double, PU As Double, PorcentajeIVA As Double, ImporteIVA As Double, PorcentajeRetIVA As Double, ImporteRetIVA As Double, - PorcentajeRetISR As Double, ImporteRetISR As Double, PorcentajeIEPS As Double, ImporteIEPS As Double, TipoDescuento As Integer, Descuento As Double, - Total As Double, Serie As String, TiempoEntrega As String, CvePresupuestoIngreso As Integer, EntregaDirecta As Integer, SATClaveProdServ As String, - SATClaveUM As String, CveContratoDetalle As Integer, CveVentaDetalle As Integer, CveMovimientoDetallePedido As Integer, CveOrdenCompraDetalle As Integer, - CveVentaDetalleRemision As Integer, CveVentaDetalleCotizacion As Integer) - - Dim Row As DataRow = Nothing - Row = TmpDT.NewRow() - - Row("Consec") = TmpDT.Rows.Count + 1 - Row("Orden") = TmpDT.Rows.Count + 1 - - Row("CvePS") = CvePS - Row("PS") = PS - Row("Codigo") = Codigo - Row("CodigoPS") = CodigoPS - Row("CveTipoPS") = CveTipoPS - Row("CveTipoInvPS") = CveTipoInvPS - - Row("CveUM") = CveUM - Row("UM") = UM - - Row("CveClasificacion") = CveClasificacion - Row("Clasificacion") = Clasificacion - Row("CveProyecto") = CveProyecto - Row("Proyecto") = "" - Row("CveSubProyecto") = CveSubProyecto - Row("SubProyecto") = "" - - Row("Obs") = Obs - Row("Cantidad") = Cantidad - Row("PU") = Math.Round(PU, 6) - Row("PorcentajeIVA") = PorcentajeIVA - Row("IVA") = PorcentajeIVA - Row("ImporteIVA") = Math.Round(ImporteIVA, 2) - Row("PorcentajeRetIVA") = PorcentajeRetIVA - Row("ImporteRetIVA") = Math.Round(ImporteRetIVA, 2) - Row("PorcentajeRetISR") = PorcentajeRetISR - Row("ImporteRetISR") = Math.Round(ImporteRetISR, 2) - Row("PorcentajeIEPS") = PorcentajeIEPS - Row("ImporteIEPS") = Math.Round(ImporteIEPS, 2) - Row("IEPS") = Math.Round(ImporteIEPS, 2) - Row("TipoDescuento") = TipoDescuento - Row("Descuento") = Math.Round(Descuento, 2) - Row("Total") = Math.Round(Total, 2) - Row("TotalImporte") = Math.Round(Total, 2) - - Row("Serie") = Serie - Row("TiempoEntrega") = TiempoEntrega - Row("CvePresupuestoIngreso") = CvePresupuestoIngreso - Row("EntregaDirecta") = EntregaDirecta - Row("SATClaveProdServ") = SATClaveProdServ - Row("SATClaveUM") = SATClaveUM - - 'Contratos - Row("CveContratoDetalle") = CveContratoDetalle - Row("CveVentaDetalle") = CveVentaDetalle - Row("CveMovimientoDetallePedido") = CveMovimientoDetallePedido - Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle - Row("CveVentaDetalleRemision") = CveVentaDetalleRemision - Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion - Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") - If DrPS IsNot Nothing Then - Row("CodigoObjetoImpuesto") = DrPS("CodigoObjetoImpuesto") - End If - TmpDT.Rows.Add(Row) - End Sub - - Private Sub CargaImpuestos(ByRef ObjFacturaDevolucion As Modelos.Factura, ListaVentasGenerarNC As List(Of Modelos.Factura), ClienteDesglosaIEPS As Boolean, ClienteRetIVA As Decimal, ClienteRetISR As Decimal) - Dim DtImpuestos As New DataTable - DtImpuestos.Columns.Add("ImportePU", GetType(Decimal)) - DtImpuestos.Columns.Add("ImporteTotal", GetType(Decimal)) - DtImpuestos.Columns.Add("PorcentajeIVA", GetType(Decimal)) - DtImpuestos.Columns.Add("ImporteIVA", GetType(Decimal)) - DtImpuestos.Columns.Add("PorcentajeRetIVA", GetType(Decimal)) - DtImpuestos.Columns.Add("ImporteRetIVA", GetType(Decimal)) - DtImpuestos.Columns.Add("PorcentajeRetISR", GetType(Decimal)) - DtImpuestos.Columns.Add("ImporteRetISR", GetType(Decimal)) - DtImpuestos.Columns.Add("PorcentajeIEPS", GetType(Decimal)) - DtImpuestos.Columns.Add("ImporteIEPS", GetType(Decimal)) - DtImpuestos.Columns.Add("CveSubProyecto", GetType(Integer)) - DtImpuestos.AcceptChanges() - Dim AcumuladoNC As Decimal = 0 - - For Each Fac In ListaVentasGenerarNC - DtImpuestos.Merge(CargaDtImpuestosNC(Fac.CveVenta, Fac.DescuentoProntoPago), True, MissingSchemaAction.Ignore) - Next - - DtImpuestos = CargaTotalesImpuestos(DtImpuestos) - - Dim DrSubProyecto As DataRow = GlobalDTSubProyectos(-1, ObjFacturaDevolucion.CveSubProyecto).Rows(0) - - Dim Cantidad As Decimal = 1 - Dim CveProyecto As Integer = DrSubProyecto("CveProyecto").ToString().ToEntero() - Dim CveSubProyecto = DrSubProyecto("CveSubProyecto").ToString.ToEntero - Dim SubProyecto = DrSubProyecto("SubProyecto").ToString - Dim Proyecto = DrSubProyecto("Proyecto").ToString - - Dim CveSATNC As Integer - Dim ArrayNC As String() = UsuarioActual.Empresa.Funcionalidad(591).Split(",".ToCharArray()) - Dim NCBonificacion As Integer = 0 - If ArrayNC.Length > 6 Then 'CONCEPTO DE PRONTO PAGO - CveSATNC = ArrayNC(6).ToEntero() - End If - Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveSATNC, AplicaParaVenta:=1).FiltroPrimero("") - - For Each Dr As DataRow In DtImpuestos.Rows - AgregaTempDTNC(ObjFacturaDevolucion.DtDetalle, DrPS("CvePS").ToString.ToEntero, DrPS("PS").ToString, DrPS("Codigo").ToString, DrPS("PSCodigo").ToString, DrPS("CveTipoPS").ToString.ToEntero, DrPS("Inv_CveMetodoInventario").ToString.ToEntero, - DrPS("CveUM").ToString.ToEntero, DrPS("UnidadMedida").ToString, DrPS("CveClasificacion").ToString.ToEntero, DrPS("Clasificacion").ToString, CveProyecto, CveSubProyecto, - "", Cantidad, Dr("ImportePU").ToString.ToDecimal, Dr("PorcentajeIVA").ToString.ToDecimal, Dr("ImporteIVA").ToString.ToDecimal, Dr("PorcentajeRetIVA").ToString.ToDecimal, Dr("ImporteRetIVA").ToString.ToDecimal, - Dr("PorcentajeRetISR").ToString.ToDecimal, Dr("ImporteRetISR").ToString.ToDecimal, Dr("PorcentajeIEPS").ToString.ToDecimal, Dr("ImporteIEPS").ToString.ToDecimal, -1, 0.0, Dr("ImporteTotal").ToString.ToDecimal, "", "", -1, -1, - DrPS("SATClavePS").ToString, DrPS("SATClaveUnidadMedida").ToString, -1, -1, -1, -1, -1, -1) - Next - - End Sub - - Private Function CargaDtImpuestosNC(CveVentaNC As Integer, Importe As Decimal) As DataTable - Dim Total As Decimal = 0, SubTotal As Decimal = 0, Saldo As Decimal = 0 - - Dim TmpDT As DataTable = Nothing - Dim ObjVentas As New ClsVentas - - If ObjVentas.GetVentaDetalle(CveVentaNC) Then - TmpDT = ObjVentas.DtResultados - TmpDT.Columns.Add("EntregaDirecta", GetType(Integer)) - TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) - End If - - If ObjVentas.GetVenta(CveVentaNC, UsuarioActual.CveEmpresa) Then - If ObjVentas.DtResultados.Rows.Count > 0 Then - Total = ObjVentas.DtResultados()(0)("Total").ToString.ToDecimal - SubTotal = ObjVentas.DtResultados()(0)("SubTotal").ToString.ToDecimal - End If - End If - ObjVentas.Dispose() - - Dim DtImpuestosLocal = TmpDT.FiltraParametros("", "", {"PorcentajeIVA", "PorcentajeRetIVA", "PorcentajeRetISR", "PorcentajeIEPS", "CveSubProyecto"}).Copy - DtImpuestosLocal.Columns.Add("ImportePU", GetType(Decimal)) - DtImpuestosLocal.Columns.Add("ImporteTotal", GetType(Decimal)) - DtImpuestosLocal.Columns.Add("ImporteIVA", GetType(Decimal)) - DtImpuestosLocal.Columns.Add("ImporteRetIVA", GetType(Decimal)) - DtImpuestosLocal.Columns.Add("ImporteRetISR", GetType(Decimal)) - DtImpuestosLocal.Columns.Add("ImporteIEPS", GetType(Decimal)) - - Dim ImporteReferencia As Decimal = Total - Dim Porcentaje As Decimal = ((Importe * 100) / ImporteReferencia) / 100 - Dim FiltroStr As String = "" - Dim ImporteTotalConcepto As Decimal = 0 - For Each Dr As DataRow In DtImpuestosLocal.Rows - FiltroStr = String.Format("ISNULL(PorcentajeIVA,0) = {0} AND ISNULL(PorcentajeRetIVA,0) = {1} AND ISNULL(PorcentajeRetISR,0) = {2} AND ISNULL(PorcentajeIEPS,0) = {3} AND ISNULL(CveSubProyecto,0) = {4} ", Dr("PorcentajeIVA").ToString.ToDecimal, Dr("PorcentajeRetIVA").ToString.ToDecimal, Dr("PorcentajeRetISR").ToString.ToDecimal, Dr("PorcentajeIEPS").ToString.ToDecimal, Dr("CveSubProyecto")) - ImporteTotalConcepto = Porcentaje * (TmpDT.SUMD("TotalImporte", FiltroStr) - TmpDT.SUMD("Descuento", FiltroStr)) - - Dr("ImportePU") = ImporteTotalConcepto.RoundSQL(6) - Dr("ImporteTotal") = ImporteTotalConcepto.RoundSQL(2) - - Dr("ImporteIVA") = (ImporteTotalConcepto * Dr("PorcentajeIVA").ToString().ToDecimal()).RoundSQL(2) - Dr("ImporteRetIVA") = (ImporteTotalConcepto * Dr("PorcentajeRetIVA").ToString().ToDecimal()).RoundSQL(2) - Dr("ImporteRetISR") = (ImporteTotalConcepto * Dr("PorcentajeRetISR").ToString().ToDecimal()).RoundSQL(2) - Dr("ImporteIEPS") = (ImporteTotalConcepto * Dr("PorcentajeIEPS").ToString().ToDecimal()).RoundSQL(2) - - 'Dr("ImporteIVA") = Math.Round(Porcentaje * TmpDT.SUM("ImporteIVA", FiltroStr), 2) - 'Dr("ImporteRetIVA") = Math.Round(Porcentaje * TmpDT.SUM("ImporteRetIVA", FiltroStr), 2) - 'Dr("ImporteRetISR") = Math.Round(Porcentaje * TmpDT.SUM("ImporteRetISR", FiltroStr), 2) - 'Dr("ImporteIEPS") = Math.Round(Porcentaje * TmpDT.SUM("ImporteIEPS", FiltroStr), 2) - - '(Dr("ImporteTotal").ToString.ToDecimal - Dr("ImporteIVA").ToString.ToDecimal - Dr("ImporteRetIVA").ToString.ToDecimal - Dr("ImporteRetISR").ToString.ToDecimal - Dr("ImporteIEPS").ToString.ToDecimal) - Next - 'codigo para ajuste de centavo, si el importe total no cuadra con los totales - Dim difTmp As Decimal = Importe - (DtImpuestosLocal.SUMD("ImporteTotal") + DtImpuestosLocal.SUMD("ImporteIVA") + DtImpuestosLocal.SUMD("ImporteIEPS") - DtImpuestosLocal.SUMD("ImporteRetIVA") - DtImpuestosLocal.SUMD("ImporteRetISR")) - If Math.Abs(difTmp) >= 0.01 Then - 'asusto la diferencia en el último concepto - Dim ImporteAjustado As Decimal = DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal").ToString.ToDecimal + difTmp - DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal") = ImporteAjustado - DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImportePU") = ImporteAjustado - End If - 'CARGA FACTURA A LA CUAL SE APLICA LA NC - 'CargaNCDT(CveVentaNC, Importe.ToDecimal) - Return DtImpuestosLocal - End Function - - Private Function CargaTotalesImpuestos(DtImpuestos As DataTable) As DataTable - Dim query = From dr In DtImpuestos - Group By PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal, - PorcentajeRetIVA = dr("PorcentajeRetIVA").ToString.ToDecimal, - PorcentajeRetISR = dr("PorcentajeRetISR").ToString.ToDecimal, - PorcentajeIEPS = dr("PorcentajeIEPS").ToString.ToDecimal - Into x = Group - Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString.ToDecimal), - ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString.ToDecimal), - ImporteIVA = x.Sum(Function(s) Math.Round(s("ImporteIVA").ToString.ToDecimal, 2)), ' Math.Round(s("ImporteIVA").ToString.ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA, - ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString.ToDecimal, 2)),' Math.Round(s("ImportePU").ToString.ToDecimal, 2)) * PorcentajeRetIVA, - ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString.ToDecimal, 2)),' Math.Round(s("ImportePU").ToString.ToDecimal, 2)) * PorcentajeRetISR, - ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString.ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString.ToDecimal, 2)) * PorcentajeIEPS, - PorcentajeIVA = PorcentajeIVA, - PorcentajeRetIVA = PorcentajeRetIVA, - PorcentajeRetISR = PorcentajeRetISR, - PorcentajeIEPS = PorcentajeIEPS - - Return query.QueryToDataTable(False) - End Function - - Protected Function CreaDTDetalleNC() As DataTable - Dim TmpDT = New DataTable - TmpDT.Columns.Add("CveVenta", GetType(Integer)) - TmpDT.Columns.Add("Consec", GetType(Integer)) - TmpDT.Columns.Add("Cantidad", GetType(Decimal)) - TmpDT.Columns.Add("Codigo", GetType(String)) - TmpDT.Columns.Add("CveUM", GetType(Integer)) - TmpDT.Columns.Add("UM", GetType(String)) - TmpDT.Columns.Add("SATClaveUM", GetType(String)) - TmpDT.Columns.Add("CveClasificacion", GetType(Integer)) - TmpDT.Columns.Add("Clasificacion", GetType(String)) - TmpDT.Columns.Add("CvePS", GetType(Integer)) - TmpDT.Columns.Add("PS", GetType(String)) - TmpDT.Columns.Add("CodigoPS", GetType(String)) - TmpDT.Columns.Add("SATClaveProdServ", GetType(String)) - TmpDT.Columns.Add("NoIdentificacion", GetType(String)) - TmpDT.Columns.Add("CveTipoPS", GetType(Integer)) - TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer)) - TmpDT.Columns.Add("Serie", GetType(String)) - TmpDT.Columns.Add("CuentaPredial", GetType(String)) - TmpDT.Columns.Add("Obs", GetType(String)) - TmpDT.Columns.Add("TiempoEntrega", GetType(String)) - TmpDT.Columns.Add("PU", GetType(Decimal)) - TmpDT.Columns.Add("IVA", GetType(Decimal)) - TmpDT.Columns.Add("ImporteIVA", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal)) - TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal)) - TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal)) - TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal)) - TmpDT.Columns.Add("IEPS", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal)) - TmpDT.Columns.Add("Descuento", GetType(Decimal)) - TmpDT.Columns.Add("TipoDescuento", GetType(Integer)) - TmpDT.Columns.Add("TotalImporte", GetType(Decimal)) - TmpDT.Columns.Add("Total", GetType(Decimal)) - 'Para uso del módulo contable - TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer)) - TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean)) - TmpDT.Columns.Add("CveProyecto", GetType(Integer)) - TmpDT.Columns.Add("Proyecto", GetType(String)) - TmpDT.Columns.Add("CveSubProyecto", GetType(Integer)) - TmpDT.Columns.Add("SubProyecto", GetType(String)) - TmpDT.Columns.Add("CveVentaDetallePadre", GetType(Integer)) - 'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto - TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer)) - TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer)) - 'Contratos - TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) - 'Remisiones a Facturas - TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer)) - TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer)) - TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer)) - 'Pedido2 a Facturas - TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer)) - TmpDT.Columns.Add("Origen", GetType(Integer)) - 'Ordenes Servicio - TmpDT.Columns.Add("CveOS", GetType(Integer)) - TmpDT.Columns.Add("CveOSDetalle", GetType(Integer)) - TmpDT.Columns.Add("SeFacturara", GetType(Integer)) - TmpDT.Columns.Add("Folio", GetType(Integer)) - TmpDT.Columns.Add("Estatus", GetType(String)) - 'Ordenamiento - TmpDT.Columns.Add("Orden", GetType(Integer)) - TmpDT.Columns.Add("TipoDocto", GetType(String)) - 'OC - TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) - TmpDT.Columns.Add("EntregaDirecta", GetType(Integer)) - TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) - TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal)) - TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal)) - TmpDT.Columns.Add("CantidadFacturadaPed2", GetType(Decimal)) - TmpDT.Columns.Add("CantidadInventario", GetType(Decimal)) - TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String)) - TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String)) - TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String)) - TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String)) - TmpDT.Columns.Add("CveTamaño", GetType(Integer)) - TmpDT.Columns.Add("EsCargo", GetType(Boolean)) - TmpDT.Columns.Add("CodigoObjetoImpuesto", GetType(String)) - - Return TmpDT - End Function - Private Function InicializaDTVentasNC() As DataTable - Dim DtVentasNC = New DataTable - DtVentasNC.Columns.Add("CveVenta", GetType(Integer)) - DtVentasNC.Columns.Add("Importe", GetType(Decimal)) - DtVentasNC.Columns.Add("FolioFiscal", GetType(String)) - DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TC", .DataType = GetType(Decimal), .DefaultValue = 1}) - DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TCCambioValuacion", .DataType = GetType(Decimal), .DefaultValue = 1}) - DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "CveEstatusFactura", .DataType = GetType(Integer), .DefaultValue = -1}) - - Return DtVentasNC - End Function -#End Region - - - Private Sub LimpiaCampos() - TxtFolio.Text = "" - TxtObservaciones.Text = "" - TxtImporte.Text = "" - TxtTotal.Text = "" - TxtFechaDocumento.Text = Now.ToShortDateString - DdlCuenta.SelectedValue = "-1" - DdlTipoTransaccion.SelectedValue = "-1" - - CFDIRelacionadoSustitucion = "-1" - FechaCorteIE = DateTime.Now.ToDate - IDPoliza = -1 - FolioIECancelado = "" - - Anexo.Text = "" - - If UsuarioActual.Empresa.UsaAC Then - TxtOtrosImportes.Text = "" - UpDatos.Update() - CargaDatos(-1) - Else - UpDatos.Update() - CargaDatos(If(Request("CveMoneda") IsNot Nothing AndAlso Request("CveMoneda").ToString.ToEntero > 0, Request("CveMoneda").ToString.ToEntero, -1)) - End If - - End Sub - - Private Sub RblTipoPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoPago.SelectedIndexChanged - Select Case RblTipoPago.SelectedValue - Case "1" - DdlProveedorPagoInt.Items.Clear() - DivDatosBancarios.Visible = True - TxtFolio.Enabled = True - divAbonese.Visible = True - divIntermediario.Visible = False - PanelIngresos.Visible = False - Case "3" - ' Ingresos por comprobar - DdlProveedorPagoInt.Items.Clear() - DivDatosBancarios.Visible = False - PanelIngresos.Visible = True - TxtFolio.Enabled = True - divAbonese.Visible = True - divIntermediario.Visible = False - 'filtro primero por los de la moneda - CargaIngresos(CveMonedaFiltro) - - If ChkPagarDolares.Checked Then - CveMonedaPago = 2 - CveMoneda = 1 - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", 2)) - Else - CveMonedaPago = 1 - End If - CargaDatos(CveMoneda) - Case Else - - divAbonese.Visible = False - Dim ObjProveedores As New ClsCompProveedores - ObjProveedores.GetProveedorProsepago(UsuarioActual.CveEmpresa) - - divIntermediario.Visible = True - DdlProveedorPagoInt.DataSource = ObjProveedores.DtResultados - ObjProveedores.Dispose() - DdlProveedorPagoInt.DataBind() - - DivDatosBancarios.Visible = False - TxtFolio.Enabled = False - PanelIngresos.Visible = False - - End Select - - CargaDatos(CveMoneda) - UpDatos.Update() - End Sub - - Private Function CargaIngresos(tCveMoneda As Integer) As DataTable - Dim dtt As DataTable = Nothing - Dim Deudores As New ClsMovimientos - If Deudores.GetIngresosSaldosDetalle(CveCliente, tCveMoneda, UsuarioActual.CveEmpresa) Then - DdlIngreso.DataSource = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0 AND CveIE > 0") - dtt = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0 AND CveIE > 0") - End If - Deudores.Dispose() - - DdlIngreso.DataBind() - DdlIngreso.Items.Insert(0, New ListItem("-", "-1")) - Return dtt - End Function - - Private Function CargaPrestamos(tCveMoneda As Integer) As DataTable - Dim dtt As DataTable = Nothing - Dim Deudores As New ClsMovimientos - If Deudores.GetDocumentosxPagarDetalle(CveCliente, tCveMoneda, 2, UsuarioActual.CveEmpresa) Then - DdlPrestamo.DataSource = Deudores.DtResultados '.FiltraParametros("CveCliente > 0 AND Saldo > 0 AND CveIE > 0") - dtt = Deudores.DtResultados - End If - Deudores.Dispose() - - DdlPrestamo.DataBind() - DdlPrestamo.Items.Insert(0, New ListItem("-", "-1")) - Return dtt - End Function - - Protected Sub ChkAjusteOI_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ChkAjusteOI.CheckedChanged - - If ChkAjusteOI.Checked Then - TxtOtrosImportes.Visible = True - TxtTotal.Visible = True - GvCxC.Columns(13).Visible = True - Else - TxtOtrosImportes.Visible = False - TxtTotal.Visible = False - GvCxC.Columns(13).Visible = False - TxtOtrosImportes.Text = "" - TxtTotal.Text = "" - RegistraScript("$get('TxtImporte').value = FormatoNumero(SumaValores(), 2);") - End If - - UpDatos.Update() - UPVentas.Update() - End Sub - -#Region " PAGAR CON PESOS " - Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) - If ChkPagarPesos.Checked Then - DivTCDolaresDolares.Visible = False - RegistraScript("$get('DivTC').style.display = 'block';") - CargaCuentas() - If RblTipoPago.SelectedValue = "3" Then - CargaIngresos(1) - End If - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - Else - DivTCDolaresDolares.Visible = True - 'RegistraScript("document.getElementById('DivTC').style.display = 'none';") - CargaCuentas() - TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - UpDatos.Update() - - CargaDatos(2) - RegistraScript("CambiaPesosDolares();") - End Sub -#End Region - -#Region "PAGAR CON DOLARES" - Protected Sub ChkPagarDolares_CheckedChanged(sender As Object, e As EventArgs) - If ChkPagarDolares.Checked Then - DivTCDolares.Visible = True - CargaCuentas() - If RblTipoPago.SelectedValue = "3" Then - CargaIngresos(2) - RegistraScript("CambiaDolaresPesos();") - End If - TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - Else - DivTCDolares.Visible = False - CargaCuentas() - TxtFechaDocumento.Attributes.Remove("onchange") - End If - UpDatos.Update() - - CargaDatos(1) - RegistraScript("CambiaDolaresPesos();") - End Sub -#End Region - -#Region " CUENTAS DEPOSITOS" - Private Sub CargaCuentasDepositos() - DdlCuentaDeposito.Items.Clear() - If DdlTipoTransaccion.SelectedValue > 0 Then ' transferencias y layout - trCuentaDeposito.Visible = False - - Dim dtc As DataTable = GlobalDTCuentasDepositosClientes(UsuarioActual.CveEmpresa, CveCliente:=CveCliente) - - If dtc IsNot Nothing Then - If DdlTipoTransaccion.SelectedValue = "9" Then - - DdlCuentaDeposito.DataSource = dtc.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'") - - If dtc.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'").Rows.Count > 0 Then - trCuentaDeposito.Visible = True - DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) - Else - BtnIEGuardar.Enabled = False - Alert("El Cliente no tiene ninguna cuenta deposito registrada ante el sistema BBVA BANCOMER", TipoMensaje.MsgAdvertencia) - End If - Else - DdlCuentaDeposito.DataSource = dtc.FiltraParametros("Estatus ='True'") - If dtc.Rows.Count >= 1 Then - trCuentaDeposito.Visible = True - DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) - End If - End If - - End If - DdlCuentaDeposito.DataBind() - Else - trCuentaDeposito.Visible = False - DdlCuentaDeposito.Items.Clear() - End If - - UpCuentaDeposito.Update() - UpDatos.Update() - - End Sub - - Private Sub RecargaCuentasDepositos() - - Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing - If dr IsNot Nothing Then - HdnTipoTransaccion.Value = dr("Tipo").ToString - HdnTipoTransaccionAbreviatura.Value = dr("Abreviatura").ToString - End If - CargaCuentasDepositos() - End Sub - Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) - Dim dtc As DataTable = GlobalDTCuentasDepositosClientes(UsuarioActual.CveEmpresa, CveCliente:=CveCliente, CveCuentaDeposito:=DdlCuentaDeposito.SelectedValue.ToEntero) - - If dtc IsNot Nothing AndAlso dtc.Rows.Count = 1 Then - If dtc.Rows(0)("TieneCIE").ToString.ToEntero = 1 Then - TrReferenciaCIE.Visible = True - TxtReferenciaCIE.Text = dtc.Rows(0)("Referencia").ToString - Else - TrReferenciaCIE.Visible = False - End If - End If - - UpCuentaDeposito.Update() - End Sub -#End Region - -#Region " COMPLEMENTOS PAGO " - Private Function EmitirComplementoPago(CveIE As Integer, CveVentas As List(Of Integer), Series As List(Of String)) As String - - If Not UsuarioActual.Empresa.FacturaProduccion Then - Return "" - End If - - If Not ChkComplementoPago.Checked Then - Return "" - End If - - Dim Retorno As New StringBuilder - - 'For i = 0 To CveVentas.Count - 1 - Dim ObjBancos As New ClsBancos - - If ObjBancos.GetComplementoPagosRep(-1, Now.AddYears(-2), Now, CveIE, -1, 1, UsuarioActual.CveEmpresa, -1) Then - If Not ObjBancos.DtResultados.Rows.Count > 0 Then - ObjBancos.Dispose() - Alert("No se generaron complementos de pago porque no hay facturas con método de pago PPD", TipoMensaje.MsgAdvertencia) - Return "" - End If - End If - - ObjBancos.IniciaTransacSQL() - - If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=False) Then - ObjBancos.Commit() - ComplementoSustitucionGenerado = True - - PDFReciboDePagos(-1, -1, ObjBancos.CveComplementoPago, False) - - 'Dim LigaDescargaXML = $"../Empresas/{UsuarioActual.CveEmpresa}/XML/Pag/{ObjBancos.ComplementoSerieFolio}.xml" - 'Dim LigaDescargaPDF = $"../Empresas/{UsuarioActual.CveEmpresa}/PDF/Pag/{ObjBancos.ComplementoSerieFolio}.pdf" - Retorno.AppendFormat(" Complemento de pago {0}
", ObjBancos.ComplementoSerieFolio) - Retorno.AppendFormat("XML    ", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE))) - Retorno.AppendFormat("PDF   ", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE))) - - Dim ResultadoMail As Integer - Dim ObjMail As New ClsSisMail() - Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) - LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = $"{UsuarioActual.Empresa.Ruta}\XML\Pag\{ObjBancos.ComplementoSerieFolio}.xml"}) - LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = $"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{ObjBancos.ComplementoSerieFolio}.pdf"}) - - 'Dim Mail As String = "demo@adsistemas.mx" - Dim Asunto As String = "Envío de complemento de pago" - Dim Cuerpo As String = "Complemento de Pago" - - If ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, "", LSRutasMail) Then - ResultadoMail = 1 - Else - ResultadoMail = 3 - Alert("No se pudo enviar el correo", TipoMensaje.MsgAdvertencia) - End If - Else - ComplementoSustitucionGenerado = False - Retorno.AppendFormat($" Complemento de pago NO generado . {ObjBancos.Mensaje}") - ObjBancos.RollBack() - End If - - ObjBancos.Dispose() - - ' Next - - Return Retorno.ToString - End Function - - -#End Region - -#Region "SALDAR CUENTAS" - - - Private Sub BtnSaldarCuentasIncobrables_Click(sender As Object, e As EventArgs) Handles BtnSaldarCuentasIncobrables.Click - Dim ObjConta As New ClsContabilidad - ObjConta.IniciaTransacSQL() - Dim CvePrePoliza As Integer = 0 - Dim MsgError As String = "" - - 'Dim ObjIE As New ClsBancos - Dim FechaUltimaFluctuacion As Date = MinFecha - Dim TipoCambioFluctuacion As Decimal = 1 - - Dim tFecha As Date = TxtFechaIncobrable.Text.ToDate - 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 - TipoCambioFluctuacion = UltimaFluctuacion.TCFluctuacion - End If - End If - - CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ClientesAbonar/SaldarI", 47, 0, 0, 1, TxtFechaIncobrable.Text.ToDate, TxtObsSaldarIncobrable.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - - For Each gr As GridViewRow In GvCxC.Rows - If gr.FCCheckBox("Chk").Checked Then - Dim PorcentajePago As Decimal = gr.DataKey("Saldo").ToDecimal / gr.DataKey("Original").ToDecimal - Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal - Dim RETIVA As Decimal = gr.DataKey("RetIVA").ToDecimal - Dim SubTotal As Decimal = PorcentajePago * (gr.DataKey("SubTotal").ToDecimal.RoundSQL - gr.DataKey("Descuento").ToDecimal.RoundSQL).RoundSQL - Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal.RoundSQL - Dim IEPS As Decimal = PorcentajePago * gr.DataKey("IEPS").ToDecimal.RoundSQL - Dim TCVenta As Decimal = gr.DataKey("TipoCambio").ToDecimal - Dim FechaVenta As Date = gr.DataKey("Fecha").ToDate - Dim tCveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero - Dim TCPago As Decimal = GlobalTipoCambio(TxtFechaIncobrable.Text.ToDate).FormatoNumero(4) - Dim CveConceptoDeduccion As Integer = DdlTipoDeduccion.SelectedValue.ToEntero - - - 'si la fecha del documento es anterior a su ultima fluctuación. toma el Tc de la fluctuacion - If tCveMoneda = 2 Then - If FechaVenta < FechaUltimaFluctuacion Then - TCVenta = TipoCambioFluctuacion - End If - End If - - - 'condicionante - Dim ClienteMovto As Boolean = True - Dim SubtotalMovto As Boolean = False - Dim CveConceptoCliente As Integer = 2 - Dim ImpuestosMovto As Boolean = False - - Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero - Dim ConceptoPartida As String = TxtObsSaldarIncobrable.Text.Trim & " " & gr.DataKey("SerieFolio").ToString - - 'If CveConceptoDeduccion = 255 Then 0 = UsuarioActual.Empresa.Funcionalidad(266).ToEntero - 'If CveConceptoDeduccion = 179 Then 0 = UsuarioActual.Empresa.Funcionalidad(559).ToEntero - 'If CveConceptoDeduccion = 263 Then 0 = UsuarioActual.Empresa.Funcionalidad(537).ToEntero - 'If CveConceptoDeduccion = 252 Then 0 = UsuarioActual.Empresa.Funcionalidad(581).ToEntero - 'If CveConceptoDeduccion = 78 Then 0 = UsuarioActual.Empresa.IdCuentaOtrosIngresos - - If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) Then - - ClienteMovto = False : Saldo = Saldo * -1 - ImpuestosMovto = True : IVA = IVA * -1 - - 'RETIVA = RETIVA * -1 - - RETIVA = ((SubTotal * RETIVA / gr.DataKey("SubTotal").ToDecimal.RoundSQL) * -1).RoundSQL(2) - - CveConceptoCliente = 1 - 'falta cuenta incobrable - End If - - Dim UsaComplementaria As Boolean = True - If MsgError = "" Then - - Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, True, 1) - 'normal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, ConPreP.CveConcepto, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If UsaComplementaria AndAlso tCveMoneda = 2 Then - 'complementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, ConPreP.CveConceptoComplementario, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If - - 'fluctuación. - If tCveMoneda = 2 Then - Dim ImporteFluctuacion As Decimal = 0 - ImporteFluctuacion = Saldo * (TCPago - TCVenta) - - If CveSubProyecto <= 0 Then - MsgError = $"No se pudo obtener el sub proyecto de la venta {gr.DataKey("SerieFolio").ToString}" - End If - - If TCPago > TCVenta Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), gr.DataKey("SerieFolio").ToString, 64, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TCVenta, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), gr.DataKey("SerieFolio").ToString, 65, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TCVenta, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If - - 'cuando hay pago en dólares, se ajusta el concepto de subtotal, - SubTotal = (Saldo * TCVenta) + ImporteFluctuacion - (IVA * TCVenta) - (IEPS * TCVenta) - - End If - - - If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), PorcentajeImpuesto:=gr.DataKey("PorcentajeIVA").ToDecimal, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, gr.DataKey("SerieFolio").ToString, 8, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, RETIVA, RETIVA * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, 0, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - 'al gasto,Subtotal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, SubtotalMovto, SubTotal, gr.DataKey("SerieFolio").ToString, CveConceptoDeduccion, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCuentaContableNoDeducible, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=SubTotal, CveSubProyecto:=CveSubProyecto, CveCuenta:=-1, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - MsgError = ObjConta.MensajePolizaDescuadre + " " + ObjConta.ValorDiferencia - GuardaLogAD($"Ventas/ClientesAbonar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") - Exit For - End If - End If - - End If - End If - Next - - If MsgError = "" Then - 'ObjConta.RollBack() - ObjConta.Commit() - CargaDatos(CveMonedaFiltro) - RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") - Alert(String.Format("Los movimientos se saldaron correctamente.
Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) - - Else - ObjConta.RollBack() - Alert(MsgError, TipoMensaje.MsgError) - End If - - BtnSaldarCuentasIncobrables.Visible = False - ObjConta.Dispose() - End Sub - - - Private Sub ValidaCuentaDePagoFormaDePago() - - If Not (DdlTipoTransaccion.SelectedValue.ToEntero > 0 And DdlCuenta.SelectedValue.ToEntero > 0) Then - Exit Sub - End If - - Dim DTTipoTransacciones As DataTable = GlobalDTTipoTransacciones.FiltraParametros($"CveTipoTransaccion={DdlTipoTransaccion.SelectedValue}") - Dim DTCuentas As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveCuenta={DdlCuenta.SelectedValue}") - - Dim ClaveFormaPagoSAT As String = "" - Dim Cuentapago As String = "" - Dim CuentaBeneficiario As String = "" - - - If DTTipoTransacciones.Rows.Count > 0 Then - ClaveFormaPagoSAT = DTTipoTransacciones.Rows(0)("ClaveFormaPagoSAT").ToString - Else - Alert("La forma de pago no tiene una forma de pago SAT", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If DTCuentas.Rows.Count > 0 Then - CuentaBeneficiario = DTCuentas.Rows(0)("NumCuenta").ToString - Else - Alert("No se pudo encontrar la cuenta", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - - Dim Mensaje As String = "" - Cuentapago = "" - - - Select Case ClaveFormaPagoSAT.ToString - Case "01" - ' no tiene restricciones - Case "02" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(11, 18) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "03" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10, 16, 18) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 18)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "04" - - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(16) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - - Case "05" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10, 11, 15, 16, 18, 50) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "06" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - CuentaBeneficiario = "" - Case "28" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(16) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "29" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(15, 16) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - - Case Else - - - - End Select - - LblValidaCeuntaTipoTransaccion.Text = Mensaje - - If Not Mensaje.Length = 0 Then - 'Alert(Mensaje, TipoMensaje.MsgAdvertencia) - LblValidaCeuntaTipoTransaccion.Visible = True - Else - LblValidaCeuntaTipoTransaccion.Visible = False - End If - - UpGuardar.Update() - - End Sub - -#End Region - - Protected Sub BtnCambiaTipoMoneda_Click(sender As Object, e As EventArgs) - CambiaTipoMoneda() - End Sub - Private Sub CambiaTipoMoneda() - Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, TxtFechaDocumento.Text.ToDate.Day - 1, TxtFechaDocumento.Text.ToDate.Day) - Fecha = (dia.ToString + "/" + TxtFechaDocumento.Text.ToDate.Month.ToString + "/" + TxtFechaDocumento.Text.ToDate.Year.ToString).ToDate - - If TxtTC.Visible Then - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - If DivTCDolares.Visible Then - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - If DivTCDolaresDolares.Visible Then - TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - Dim moneda As Integer = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - If CveMonedaFiltro = -1 Then - RegistraScript(String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) - Else - RegistraScript(String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - End If - - UpDatos.Update() - End Sub - - Private Sub DdlIngreso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlIngreso.SelectedIndexChanged - 'saco la moneda de la selección - HdnIngresoImporte.Value = 0 - If DdlIngreso.SelectedValue.ToEntero > 0 Then - Dim Banco As New ClsBancos - - If Banco.GetBancosIE(DdlIngreso.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then - CveMonedaPago = Banco.CveMoneda - Dim Deudores As New ClsMovimientos - If Deudores.GetIngresosSaldosDetalle(CveCliente, -1, UsuarioActual.CveEmpresa) Then - HdnIngresoImporte.Value = Deudores.DtResultados.FiltroPrimeroValor("Saldo", String.Format("CveIE = {0}", DdlIngreso.SelectedValue)) - TxtTCDolares.Text = Deudores.DtResultados.FiltroPrimeroValor("TipoCambio", String.Format("CveIE = {0}", DdlIngreso.SelectedValue)) - FechaIngreso = Deudores.DtResultados.FiltroPrimeroValor("FechaDocumento", String.Format("CveIE = {0}", DdlIngreso.SelectedValue)) - End If - Deudores.Dispose() - End If - IdCuentaBancariaComplementaria = 0 - Banco.Dispose() - Else - CveMonedaPago = -1 - End If - - - If CveMonedaPago = 1 Then - 'DivTC.Visible = True - DivTCDolares.Visible = False - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", CveMonedaPago)) - ElseIf CveMonedaPago = 2 Then - 'DivTC.Visible = False - RegistraScript("document.getElementById('DivTC').style.display = 'none';") - DivTCDolares.Visible = True - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", CveMonedaPago)) - End If - - CargaDatos(CveMoneda) - - End Sub - - Private Sub RVTxtFechaDocumento_Init(sender As Object, e As EventArgs) Handles RVTxtFechaDocumento.Init - RVTxtFechaDocumento.MaximumValue = DateTime.Now.ToShortDateString - Calendario.EndDate = DateTime.Now - - End Sub - - -#Region "LIQUIDACION" - - Protected Sub TimTiempo_Tick(sender As Object, e As EventArgs) - Dim a As String = "se recarga para que no pierda sesión el registro puede tardar más de una hora en llenar todos los datos" 'solo para que se ejecute sin que afecte a lo demás - End Sub - - Protected Sub ChkLiquidacion_CheckedChanged(sender As Object, e As EventArgs) - ActivaDesactivaLiquidacion() - End Sub - - Private Sub ActivaDesactivaLiquidacion() - - If ChkLiquidacion.Checked Then - TimTiempo.Enabled = True 'para que no me saque - GvCxC.Columns(4).Visible = False - GvCxC.Columns(5).Visible = False - GvCxC.Columns(6).Visible = False - GvCxC.Columns(7).Visible = False - - '16-24 - GvCxC.Columns(16).Visible = True - GvCxC.Columns(17).Visible = True - GvCxC.Columns(18).Visible = True - GvCxC.Columns(19).Visible = True - GvCxC.Columns(20).Visible = True - GvCxC.Columns(21).Visible = True - GvCxC.Columns(22).Visible = True - GvCxC.Columns(23).Visible = True - GvCxC.Columns(24).Visible = True - GvCxC.Columns(25).Visible = True - GvCxC.Columns(26).Visible = True - GvCxC.Columns(27).Visible = True 'anticipos - GvCxC.Columns(28).Visible = True 'anticipos2 - - GvCxC.Columns(29).Visible = False - GvCxC.Columns(30).Visible = False - - - Else - TimTiempo.Enabled = False - GvCxC.Columns(4).Visible = True - GvCxC.Columns(5).Visible = True - GvCxC.Columns(6).Visible = True - GvCxC.Columns(7).Visible = True - - GvCxC.Columns(16).Visible = False - GvCxC.Columns(17).Visible = False - GvCxC.Columns(18).Visible = False - GvCxC.Columns(19).Visible = False - GvCxC.Columns(20).Visible = False - GvCxC.Columns(21).Visible = False - GvCxC.Columns(22).Visible = False - GvCxC.Columns(23).Visible = False - GvCxC.Columns(24).Visible = False - GvCxC.Columns(25).Visible = False - GvCxC.Columns(26).Visible = False - GvCxC.Columns(27).Visible = False 'anticipos - GvCxC.Columns(28).Visible = False 'anticipos2 - - GvCxC.Columns(29).Visible = True - GvCxC.Columns(30).Visible = True - - End If - - UPVentas.Update() - End Sub - -#End Region - - - - Protected Sub LnkAccionesModalSeleccionLayout_Click(sender As Object, e As EventArgs) - - TxtModalLayoutExcel.Text = "[]" - UpModalSeleccionLayout.Update() - RegistraScript("$('#ModalSeleccionLayout').modal('show');") - - End Sub - - - Protected Sub LnkSeleccionLayout_Click(sender As Object, e As EventArgs) - - Dim ProcesoOK As Boolean = True - Dim CountRegistros As Integer = 0 - Dim TotalSeleccion As Decimal = 0D - - Dim SBNoEncontradosEnLista As New StringBuilder - Dim SBPagoMayorASaldo As New StringBuilder - - If TxtModalLayoutExcel.getfiles().Archivos.Count > 0 Then - Dim file As Archivo = TxtModalLayoutExcel.getfiles().Archivos(0) - Dim Directorio As String = Server.MapPath("~") & file.path - Dim Tipo As String = If(file.Extension.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") - - Dim DTExcel As New DataTable - Dim ErrorArchivo = False - Dim ErrorExcel = False - - DTExcel = ReadExcelFile(Directorio + file.filename, True) - - If Not DTExcel.Columns(0).ColumnName.ToUpper = "FOLIO" Then - Alert("El nombre de la primera columna debe ser 'Folio'. Favor de corregirlo", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If Not DTExcel.Columns(1).ColumnName.ToUpper = "IMPORTE PAGO" Then - Alert("El nombre de la segunda columna debe ser 'Importe Pago'.Favor de corregirlo." & DTExcel.Columns(1).ColumnName, TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If UsuarioActual.Empresa.Funcionalidad(590) = "1" Then - ChkLiquidacion.Checked = True - ActivaDesactivaLiquidacion() - End If - - For Each Drow As DataRow In DTExcel.Rows - - Dim SerieFolioBusqueda As String = Drow("Folio").ToString.Trim.ToUpper - Dim ImportePago As Decimal = Drow("Importe Pago").ToString.ToDecimal.RoundSQL(2) - Dim SerieFolioEncontrado As Boolean = False - - If ImportePago >= 0 Then - - For Each GvRow As GridViewRow In GvCxC.Rows - - Dim SerieFolioGv As String = GvRow.DataKey("SerieFolio").Trim.ToUpper - - If SerieFolioBusqueda = SerieFolioGv Then - SerieFolioEncontrado = True - Dim SaldoGV As Decimal = GvRow.DataKey("Saldo").ToDecimal - If ImportePago = 0 Then ImportePago = SaldoGV 'si no se especifica cantidad toma la totalidad del saldo - Dim Diferencia As Decimal = SaldoGV - ImportePago - - If Diferencia < 0 Then - - If Math.Abs(Diferencia) > 0.01 Then - SBPagoMayorASaldo.AppendLine($"Factura: {SerieFolioBusqueda} Importe de pago {ImportePago.ToString("###,###,###.00")} es mayor al saldo {SaldoGV.ToString("###,###,###.00")}
") - ProcesoOK = False - Exit For - Else - ImportePago = SaldoGV - End If - End If - - GvRow.FCCheckBox("Chk").Checked = True - GvRow.FCTextBox("TxtAbonar").Text = ImportePago.ToString("###,###,###.00") - - If UsuarioActual.Empresa.Funcionalidad(590) = "1" Then - - GvRow.FCDropDownList("DdlTG").SelectedTextExist(Drow("Tipo").ToString) - GvRow.FCTextBox("TxtLiqCol1").Text = Drow("Comisión").ToString - GvRow.FCTextBox("TxtLiqCol2").Text = Drow("Gastos").ToString - GvRow.FCTextBox("TxtLiqCol3").Text = Drow("Inspeccion").ToString - GvRow.FCTextBox("TxtLiqCol4").Text = Drow("Seguro").ToString - GvRow.FCTextBox("TxtLiqCol5").Text = Drow("AduanaMex").ToString - GvRow.FCTextBox("TxtLiqCol6").Text = Drow("Diversos").ToString - GvRow.FCTextBox("TxtLiqCol7").Text = Drow("AduanaUSA").ToString - GvRow.FCTextBox("TxtLiqCol8").Text = Drow("MaterialEmpaque").ToString - GvRow.FCTextBox("TxtLiqCol9").Text = Drow("Semilla").ToString - - GvRow.FCDropDownList("DdlAnti").SelectedTextLikeIfExist(Drow("FolioAnticipo1").ToString) - GvRow.FCTextBox("TxtAmort").Text = Drow("ImporteAnticipo1").ToString - GvRow.FCDropDownList("DdlAnti2").SelectedTextLikeIfExist(Drow("FolioAnticipo2").ToString) - GvRow.FCTextBox("TxtAmort2").Text = Drow("ImporteAnticipo2").ToString - - End If - - TotalSeleccion = TotalSeleccion + ImportePago - CountRegistros = CountRegistros + 1 - - Exit For - End If - Next - - If Not SerieFolioEncontrado Then - SBNoEncontradosEnLista.AppendLine($"{SerieFolioBusqueda}
") - End If - End If - Next - - Else - Alert("Se debe seleccionar un archivo", TipoMensaje.MsgError) - End If - - If ProcesoOK Then - - Alert($"Facturas seleccionadas: {CountRegistros}
{SBNoEncontradosEnLista.ToString}") - RegistraScript("$('#ModalSeleccionLayout').modal('hide');") - TxtImporte.Text = TotalSeleccion.ToString("###,###,###.00") - - UPVentas.Update() - UpDatos.Update() - Else - - If SBPagoMAyorASaldo.ToString.Length > 0 Then - Alert($"Facturas con pagos mayores a saldo:
{SBPagoMAyorASaldo.ToString}", TipoMensaje.MsgAdvertencia) - End If - - End If - - - End Sub - - 'Public Sub SelectedTextLikeIfExist(ByRef Rbl As RadioButtonList, Value As String) - ' Try - - ' For Each item As ListItem In Rbl.Items - ' If item.Value.Contains(Value) Then - ' item.Selected = True - ' End If - ' Next - ' Catch ex As Exception - - ' End Try - 'End Sub - - Protected Sub LnkDescargaFormato_Click(sender As Object, e As EventArgs) - - Dim Directorio As String = "" - Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\LayoutPagoCliente.xlsx" - If UsuarioActual.Empresa.Funcionalidad(590) = "1" Then - Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\LayoutPagoClienteLiquidacion.xlsx" - End If - - If Not (Directorio = "") Then - - Dim Archivo As New IO.FileInfo(Directorio) - If Archivo.Exists Then - Response.Clear() - Response.ClearHeaders() - Response.ClearContent() - Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name) - Response.AddHeader("Content-Length", Archivo.Length.ToString()) - Response.ContentType = "text/plain" - Response.Flush() - Response.TransmitFile(Archivo.FullName) - Response.End() - End If - End If - - End Sub -End Class