{e.Row.DBCampo("Fecha").ToDateTime.ToString("dd/MM/yyyy HH:mm")}"
Else
- e.Row.Cells(2).Text = $"{e.Row.DBCampo("Fecha").ToDateTime.ToString("dd/MM/yyyy")}"
+ e.Row.Cells(2).Text = $"{e.Row.DBCampo("Fecha").ToDateTime.ToString("dd/MM/yyyy HH:mm:ss")}"
End If
If e.Row.DataKey("EsDevolucionVenta").ToEntero = 1 Then
diff --git a/Transportes/RepContratos.aspx.vb b/Transportes/RepContratos.aspx.vb
index b549fdea9..8ded38a68 100644
--- a/Transportes/RepContratos.aspx.vb
+++ b/Transportes/RepContratos.aspx.vb
@@ -18,11 +18,24 @@ Partial Class ListadoContratos
ViewState("DtAvanceDocumento") = value
End Set
End Property
+
+
+
+
+ Private Property DtDatos As DataTable
+ Get
+ Return CType(ViewState("DtDatos"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DtDatos") = value
+ End Set
+ End Property
#End Region
#Region "Carga Página"
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
+ DtDatos = New DataTable
txtFechaI.Text = DateTime.Now.AddMonths(-1).ToShortDateString
txtFechaF.Text = DateTime.Now.AddDays(1).ToShortDateString
InicializaCombos()
@@ -63,6 +76,7 @@ Partial Class ListadoContratos
If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, DdlCliente.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, CveSubProyecto:=DdlCentroCostos.SelectedValue.ToEntero, CveTipoAF:=DdlTipoUnidad.SelectedValue.ToEntero, CveChofer:=DdlChofer.SelectedValue.ToEntero,
FechaInicioIngreso:=txtFechaI.Text.ToDate, FechaFinIngreso:=txtFechaF.Text.ToDate) Then
GvContratos.DataSource = ObjContratos.DtResultados
+ DtDatos = ObjContratos.DtResultados.Copy
End If
ObjContratos.Dispose()
@@ -265,15 +279,19 @@ Partial Class ListadoContratos
UpModal.Update()
End Sub
Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click
- GvContratos.ExportToExcel("ReporteCompras" & NowADS().ToShortDateString)
+ 'GvContratos.ExportToExcel("ReporteCompras" & NowADS().ToShortDateString)
+ ImprimeReporte("Excel")
End Sub
Protected Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
- Dim ObjContratos As New ClsContratos
- If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, TipoContrato:=2) Then
+ ImprimeReporte("PDF")
+ End Sub
+ Private Sub ImprimeReporte(Formato As String)
+ 'Dim ObjContratos As New ClsContratos
+ If DtDatos.Rows.Count > 0 Then
Dim Imagen As New IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim Cliente As String = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedText}")
- Dim dt As DataTable = ObjContratos.DtResultados
+
Dim params As New List(Of ReportParameter) From {
New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa),
New ReportParameter("FechaInicio", "-1"),
@@ -283,11 +301,11 @@ Partial Class ListadoContratos
New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString),
New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))
}
- ImprimirPDF("Empresas/Grales/Formatos/RepContratos.rdlc", dt, params, NombreArchivo:="Reporte Contratos")
+ ImprimirPDF("Empresas/Grales/Formatos/RepContratos.rdlc", DtDatos, params, NombreArchivo:="Reporte Contratos", Formato:=Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
- ObjContratos.Dispose()
+
End Sub
Protected Sub Consultar(sender As Object, e As EventArgs)
CargaDatos()
diff --git a/Ventas/CatPromociones.aspx b/Ventas/CatPromociones.aspx
index e19fcc227..dbc391dc6 100644
--- a/Ventas/CatPromociones.aspx
+++ b/Ventas/CatPromociones.aspx
@@ -8,6 +8,9 @@
+
+
-
+
+
+
+
+
+
+
+
+
@@ -128,5 +162,18 @@
+
diff --git a/Ventas/CatPromociones.aspx.vb b/Ventas/CatPromociones.aspx.vb
index a18864c75..ce3ffbc43 100644
--- a/Ventas/CatPromociones.aspx.vb
+++ b/Ventas/CatPromociones.aspx.vb
@@ -22,18 +22,25 @@ Partial Class Ventas_CatPromociones
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
+
+ If UsuarioActual.TienePermisoProceso(386) Then
+ LnkAccInactivar.Visible = True
+ End If
+
InicializaControles()
+ OcultarMostrarInactivar(True)
CargaDatos()
End If
End Sub
+
Private Sub InicializaControles()
CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyecto)
- GvDatos.Columns(6).HeaderText = LblSubProyecto.Text
+ GvDatos.Columns(7).HeaderText = LblSubProyecto.Text
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
@@ -95,4 +102,50 @@ Partial Class Ventas_CatPromociones
CargaDatos()
End Sub
+
+ Protected Sub LnkAccInactivar_Click(sender As Object, e As EventArgs)
+ OcultarMostrarInactivar(True)
+ End Sub
+
+ Private Sub OcultarMostrarInactivar(Mostrar As Boolean)
+
+ GvDatos.Columns(0).Visible = Mostrar
+ LnkInactivar.Visible = Mostrar
+ UpInactivar.Update()
+ UpDatos.Update()
+ End Sub
+ Protected Sub LnkInactivar_Click(sender As Object, e As EventArgs)
+ Dim ObjVentas As New ClsVentas
+ ObjVentas.IniciaTransacSQL()
+ Dim ErrorProceo As Boolean = False
+
+ Dim ContInactivadas As Integer = 0
+ For Each GvRow As GridViewRow In GvDatos.Rows
+ Dim Chk As CheckBox = GvRow.FCCheckBox("chk")
+ Dim CvePromocion As Integer = GvRow.DataKey("CvePromocion").ToEntero
+
+ If Chk.Checked Then
+ If ObjVentas.UpdatePromocionEstatus(CvePromocion, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ ContInactivadas = ContInactivadas + 1
+ Else
+ ErrorProceo = True
+ Exit Sub
+ End If
+ End If
+
+ Next
+
+ If ErrorProceo Then
+ ObjVentas.RollBack()
+ Else
+ ObjVentas.Commit()
+ Alert($"Se inactivaron {ContInactivadas} promociones.")
+ OcultarMostrarInactivar(False)
+ End If
+
+
+
+ ObjVentas.Dispose()
+ End Sub
+
End Class
\ No newline at end of file
diff --git a/Ventas/RepRemisiones.aspx b/Ventas/RepRemisiones.aspx
index df62c4fe9..12bd915ec 100644
--- a/Ventas/RepRemisiones.aspx
+++ b/Ventas/RepRemisiones.aspx
@@ -216,13 +216,13 @@
-
-
+
@@ -230,6 +230,7 @@
+
diff --git a/Ventas/RepRemisiones.aspx.vb b/Ventas/RepRemisiones.aspx.vb
index 9b4f3a457..a25f9bfaf 100644
--- a/Ventas/RepRemisiones.aspx.vb
+++ b/Ventas/RepRemisiones.aspx.vb
@@ -67,7 +67,12 @@ Partial Class RepRemisiones
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
- If Not Page.IsPostBack Then
+ If Not Page.IsPostBack Then
+
+ If UsuarioActual.CveEmpresa.Contiene(189) Then
+ GvDatos.Columns(9).Visible = True
+ End If
+
CargaSucursales()
CargaCliente()
CargaContrato()
@@ -89,18 +94,19 @@ Partial Class RepRemisiones
Sucursales = IIf(DdlSubProyectos.GetSelectedValuesM = "", "-1", DdlSubProyectos.GetSelectedValuesM).ToString
Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString
+ Dim PrimerProducto As Boolean = If(UsuarioActual.CveEmpresa.Contiene(189), True, False)
Dim ObjVentas As New ClsVentas
- If ObjVentas.GetRepRemisionesSinFacturar(FechaI, FechaF, FechaV, Sucursales, CveCliente, CveContrato, Vendedores, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, ConsultaInventario:=chkInv.Checked) Then
+ If ObjVentas.GetRepRemisionesSinFacturar(FechaI, FechaF, FechaV, Sucursales, CveCliente, CveContrato, Vendedores, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, ConsultaInventario:=chkInv.Checked, PrimerProducto:=PrimerProducto) Then
DtVentas = ObjVentas.DtResultados.Copy()
GvDatos.DataSource = DtVentas
End If
If DtVentas IsNot Nothing Then
- GvDatos.Columns(11).Visible = DtVentas.SUMD("Descuento") > 0
+ GvDatos.Columns(12).Visible = DtVentas.SUMD("Descuento") > 0
End If
- GvDatos.Columns(14).Visible = chkInv.Checked 'solo se visualiza si está selccionada
+ GvDatos.Columns(15).Visible = chkInv.Checked 'solo se visualiza si está selccionada
ObjVentas.Dispose()
GvDatos.DataBind()
@@ -124,7 +130,10 @@ Partial Class RepRemisiones
e.Row.Cells(2).ForeColor = Drawing.Color.Red
End If
+ e.Row.Cells(1).Text = $"{e.Row.DataKey("Fecha").ToDate().ToString("dd/MM/yyyy HH:mm:ss")}"
+
End If
+
e.Row.FCLiteral("LtlTotal").Text = " 0, e.Row.DBCampo("CveCliente").ToString(), DdlClientes.SelectedValue) & "&CveContrato=" & CveContrato & "&CveSubProyecto=" & Sucursales & "&CveMoneda=" & e.Row.DBCampo("CveMoneda") & """>" & e.Row.FCLiteral("LtlTotal").Text & ""
End If
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index a2e9b6c87..6412f6354 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -5703,6 +5703,7 @@ Partial Class Ventas
VentaActual.PorcentajeIVA = DbRowVenta("PorcentajeIVA").ToString.ToDecimal
VentaActual.UsuarioActual = UsuarioActual
VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero
+ VentaActual.CveUsoCFDI = DbRowVenta("CveUsoCFDI").ToString.ToEntero
HdnAmortizacion.Value = LblAmort.Text.ToDouble.ToString()
HdnSubTotalDescuestos.Value = (TxtSubTotal.Text.Replace(",", "").ToDouble - LblDescuentos.Text.Replace(",", "").ToDouble - LblAmortizacion.Text.Trim.Replace(",", "").ToDouble - TxtRetISR.Text.Replace(",", "").ToDouble).FormatoNumero(2)
@@ -8328,7 +8329,7 @@ Partial Class Ventas
End If
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Not PermiteCredito AndAlso Not LnkSolicitarCredito.Visible Then
+ If UsuarioActual.Empresa.Funcionalidad(595) = "2" AndAlso Not LnkSolicitarCredito.Visible Then
LnkSolicitarCredito.Visible = True
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
@@ -17525,6 +17526,123 @@ Partial Class Ventas
End If
End If
End Sub
+
+ Private Function GenerarNC(ImporteTotal As Decimal, CveVendedor As Integer, ByRef Venta As Venta, GvRowAnticipo As GridViewRow, ByRef ObjVentas As ClsVentas) As Modelos.Factura.MMensajeFactura
+ Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing
+ Dim SbAlert As New StringBuilder()
+
+ Try
+ Dim ObjNC = Modelos.Factura.CrearVentaNueva(UsuarioActual, Venta.CveSubProyecto, Venta.CveCliente, Venta.CveMoneda, "Egs")
+ ObjNC.CveMoneda = Venta.CveMoneda
+ If ObjNC.CveMoneda = 2 Then
+ ObjNC.TipoCambio = GlobalTipoCambio(Now).ToString().ToDecimal()
+ Else
+ ObjNC.TipoCambio = 1
+ End If
+
+ Dim Total As Decimal = ImporteTotal
+ Dim subTotal As Decimal = (Total / (1D + Venta.PorcentajeIVA))
+ 'Dim IVA = (subTotal * Factura.PorcentajeIVA).RoundSQL(2)
+ Dim PU As Decimal = subTotal
+ Dim Cantidad As Decimal = 1D
+ Dim Descuento As Decimal = 0
+ Dim Obs = ""
+
+ Dim CvePSAnticipo As Integer = 1
+ Dim DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:="84111506").FiltroPrimero("CodigoPS LIKE '%ANTICIPO%' OR CodigoPS LIKE '%anticipo%' OR CodigoPS LIKE '%Anticipo%'")
+ If DatarowPS IsNot Nothing Then
+ CvePSAnticipo = DatarowPS("CvePS").ToString().ToEntero()
+ End If
+
+ ObjNC.AgregarPS(CvePSAnticipo, Cantidad, PU, Descuento, Obs, CveSubProyecto:=Venta.CveSubProyecto, PorcentajeIVA:=Venta.PorcentajeIVA)
+ ObjNC.CalculaTotales()
+
+ 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})
+ DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "Folio", .DataType = GetType(String), .DefaultValue = ""})
+
+ DtVentasNC.Rows.Add(Venta.CveVenta, Total, "")
+
+ ObjNC.DtVentasNC = DtVentasNC
+
+ Dim DtVentasRelacionadas As New DataTable()
+ DtVentasRelacionadas.Columns.Add("CveVenta", GetType(Integer))
+ DtVentasRelacionadas.Rows.Add(Venta.CveVenta)
+
+ ObjNC.DtVentasRelacionadas = DtVentasRelacionadas
+
+ Dim DtAnticipos As New DataTable()
+ DtAnticipos.Columns.Add("CveVenta", GetType(Integer))
+ DtAnticipos.Columns.Add("Importe", GetType(Decimal))
+ DtAnticipos.Columns.Add("CveConceptoContable", GetType(Integer))
+ DtAnticipos.Columns.Add("CveIE", GetType(Integer))
+ DtAnticipos.Columns.Add("FolioFiscal", GetType(String))
+ DtAnticipos.Columns.Add("Descuentos", GetType(Decimal))
+ DtAnticipos.Columns.Add("TotalAnticipo", GetType(Decimal))
+ DtAnticipos.Columns.Add("SubTotalAnticipo", GetType(Decimal))
+ DtAnticipos.Columns.Add("CveMoneda", GetType(Decimal))
+ DtAnticipos.Columns.Add("Fecha", GetType(DateTime))
+ DtAnticipos.Columns.Add("TipoCambioPago", GetType(Decimal))
+ DtAnticipos.Columns.Add("Folio", GetType(String))
+ DtAnticipos.Columns.Add("Tipo", GetType(String))
+
+ If GvRowAnticipo IsNot Nothing Then
+ Dim CveVenta = GvRowAnticipo.DataKey("CveVenta").ToEntero()
+ Dim Importe = GvRowAnticipo.FCTextBox(String.Format("TxtAnticipo{0}", GvRowAnticipo.RowIndex)).Text.ToDecimal()
+ Dim CveConceptoContable = GvRowAnticipo.DataKey("CveConceptoContable").ToEntero()
+ Dim CveIE = GvRowAnticipo.DataKey("CveIE").ToEntero()
+
+ Dim FolioFiscal = GvRowAnticipo.DataKey("FolioFiscal")
+ Dim Descuentos As Decimal = GvRowAnticipo.DataKey("Descuentos").ToDecimal()
+ Dim TotalAnticipo As Decimal = GvRowAnticipo.DataKey("TotalAnticipo").ToDecimal()
+ Dim SubTotalAnticipo As Decimal = GvRowAnticipo.DataKey("SubTotalAnticipo").ToDecimal()
+ Dim CveMoneda As Integer = GvRowAnticipo.DataKey("CveMoneda").ToEntero()
+ Dim Fecha As DateTime = GvRowAnticipo.DataKey("Fecha").ToDateTime()
+ Dim TipoCambioPago As Decimal = GvRowAnticipo.DataKey("TipoCambioPago").ToDecimal()
+ Dim Folio = GvRowAnticipo.DataKey("Folio")
+ Dim Tipo = GvRowAnticipo.DataKey("Tipo")
+
+
+ DtAnticipos.Rows.Add(CveVenta, Importe, CveConceptoContable, CveIE, FolioFiscal, Descuentos, TotalAnticipo, SubTotalAnticipo, CveMoneda, Fecha, TipoCambioPago, Folio, Tipo)
+ End If
+
+ ObjNC.EsNCAmortizacion = True
+ ObjNC.CveTipoAmortizacionAnticipo = 2
+ ObjNC.DtAnticiposAplicados = DtAnticipos
+
+ ObjNC.CveFormaPago = 21 'Aplicación de anticipos
+ ObjNC.CveMetodoPago = 1
+ ObjNC.CveUsoCFDI = Venta.CveUsoCFDI
+ ObjNC.CveVendedor = CveVendedor
+ ObjNC.CveTipoRelacion = 7
+
+ ObjNC.PreparaTimbre()
+ AjustarTimbreNC(ObjNC)
+
+ Retorno = ObjNC.EmitirFactura(False, Transac:=ObjVentas.IniciaTransacSQL(), Modulo:="Cobranza/GuardarVenta", MostrarURL:=True)
+ Retorno.Factura = ObjNC
+
+ If Retorno IsNot Nothing AndAlso Retorno.CveVenta > 0 Then
+ For Each msg In Retorno.Mensajes
+ SbAlert.AppendFormat("{0} ", msg)
+ Next
+
+ SbAlert.AppendFormat("
", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", Retorno.CveVenta)))
+ Else
+ SbAlert.Append("Ocurrió un error al generar la nota de crédito")
+ End If
+ Catch ex As Exception
+ SbAlert.Append("Ocurrió un error al generar el documento")
+ GuardaLog(ex.ToString())
+ End Try
+ Return Retorno
+ End Function
+
Protected Sub BtnAceptarAnticipos_Click(sender As Object, e As System.EventArgs) Handles BtnAceptarAnticipos.Click
AplicaAnticipos()
End Sub
@@ -17554,6 +17672,8 @@ Partial Class Ventas
Dim CveIEAnticipo As Integer
Dim CvePlantillaPoliza As Integer = 10
+ Dim ListaNC As New List(Of Modelos.Factura.MMensajeFactura)
+
Try
CvePrePoliza = ObjConta.AddPrePolizas("Ventas/Anticipos", CvePlantillaPoliza, TxtTotal.Text.ToDecimal, TxtTotal.Text.ToDecimal, DdlMoneda.SelectedValue.ToEntero(), TxtFechaAnticipoCliente.Text.ToDate, String.Format("{0} {1} {2}-{3}", If(EsAnticipo2017Jam, "Aplicación Anticipo 2017", ""), NombreCliente, Serie, TxtFolio.Text), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
@@ -17616,27 +17736,46 @@ Partial Class Ventas
Select Case gvr.DataKey("CveConceptoContable").ToString()
Case "3", "295"
- importeMovimiento = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal - ((gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("TotalAnticipo").ToDecimal) * gvr.DataKey("IVAAnticipo").ToDecimal)
- importeMN = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlMoneda.SelectedValue.ToEntero() = 1 Then
+ Dim ImporteNC As Decimal = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal
- If importeMovimiento <> 0 Then
+ Dim RespNC = GenerarNC(ImporteNC, DdlVendedor.SelectedValue.ToEntero(), Me.VentaActual, gvr, ObjVenta)
- Dim Pago As New VentaPago
- Pago.ImportePagoVenta = importeMN
- Pago.ImportePago = importeMovimiento
- Pago.CveIE = CveIEAnticipo
- Pago.CveMonedaPago = gvr.DataKey("CveMoneda").ToEntero()
- Pago.TipoPago = "A"
- Pago.Fecha = TxtFechaAnticipoCliente.Text.ToDate 'TCPago = gvr.DataKey("TipoCambio").todecimal
- Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero()
- Pago.TCPago = gvr.DataKey("TipoCambio").ToDecimal
- Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1"
- Pago.Referencia = gvr.DataKey("Folio")
- Pago.AplicaConceptoImpuestoPendiente = (Not gvr.DataKey("RegresarImpuesto") = "1") AndAlso (VentaActual.IVA > 0 OrElse VentaActual.IEPS > 0)
+ If RespNC IsNot Nothing Then
+ If RespNC.TieneError Then
+ ErrorConta = True
+ Exit For
+ Else
+ ListaNC.Add(RespNC)
+ End If
+ Else
+ ErrorConta = True
+ End If
- ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
+ Else
+ importeMovimiento = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal - ((gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("TotalAnticipo").ToDecimal) * gvr.DataKey("IVAAnticipo").ToDecimal)
+ importeMN = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal
+
+ If importeMovimiento <> 0 Then
+
+ Dim Pago As New VentaPago
+ Pago.ImportePagoVenta = importeMN
+ Pago.ImportePago = importeMovimiento
+ Pago.CveIE = CveIEAnticipo
+ Pago.CveMonedaPago = gvr.DataKey("CveMoneda").ToEntero()
+ Pago.TipoPago = "A"
+ Pago.Fecha = TxtFechaAnticipoCliente.Text.ToDate 'TCPago = gvr.DataKey("TipoCambio").todecimal
+ Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero()
+ Pago.TCPago = gvr.DataKey("TipoCambio").ToDecimal
+ Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1"
+ Pago.Referencia = gvr.DataKey("Folio")
+ Pago.AplicaConceptoImpuestoPendiente = (Not gvr.DataKey("RegresarImpuesto") = "1") AndAlso (VentaActual.IVA > 0 OrElse VentaActual.IEPS > 0)
+
+ ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
+
+ End If
End If
Case "12"
@@ -17743,26 +17882,69 @@ Partial Class Ventas
If ErrorConta Then
Alert("Ocurrió un error al amortizar el documento. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError)
ObjConta.RollBack()
+
+ ObjConta.Dispose()
+ ObjVenta.Dispose()
+ ObjIE.Dispose()
+ ObjCliente.Dispose()
+
Else
Dim Msg As New StringBuilder
- Msg.Append("Se ha amortizado correctamente")
+ Msg.Append("Se ha amortizado correctamente. ")
'AJUSTA POLIZA
If ObjConta.ContaFolio > 0 Then
Msg.AppendFormat("
Ver Póliza", CvePrePoliza)
End If
-
ObjConta.Commit()
+
+ ObjConta.Dispose()
+ ObjVenta.Dispose()
+ ObjIE.Dispose()
+ ObjCliente.Dispose()
+
+ Dim MsgTimbrado As String = ""
+
+ Try
+ If ListaNC.Count > 0 Then
+ For Each respNC In ListaNC
+ Msg.AppendFormat(" La nota de crédito {1} se genero correctamente. ", respNC.CveVenta, respNC.SerieFolio)
+
+ Dim SeTimbroNC As Boolean = False
+
+ If LblSeTimbro.Text = "Si" Then
+ MsgTimbrado = TimbrarNC(respNC.Factura, SeTimbroNC)
+ Else
+ MsgTimbrado = "No se pudo timbrar porque la factura de ingreso no ha sido timbrada previamente"
+ End If
+
+ If Not String.IsNullOrEmpty(MsgTimbrado) Then
+ Dim StrEr As String = $"
Comprobante no emitido : {MsgTimbrado} Por favor inténtelo de nuevo a través del botón 'Emitir' en ventas.
"
+ MsgTimbrado = StrEr
+ End If
+
+ If SeTimbroNC Then
+ Dim xml = String.Format("
", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", respNC.CveVenta)))
+ Msg.AppendFormat("{0}", pdfNC)
+
+ If Not String.IsNullOrEmpty(MsgTimbrado) Then
+ Msg.AppendFormat("{0}", MsgTimbrado)
+ End If
+ Next
+ End If
+ Catch ex As Exception
+ GuardaLogAD(ex.ToString())
+ Msg.AppendFormat(" {0} ", MsgTimbrado)
+ End Try
BtnAceptarAnticipos.Enabled = False
Alert(Msg.ToString(), TipoMensaje.MsgInformacion, JSBtnAceptar:="BtnRefrescarPagina();", ShowCloseButton:=False)
End If
- ObjConta.Dispose()
- ObjVenta.Dispose()
- ObjIE.Dispose()
- ObjCliente.Dispose()
-
Else
'cuando no se ha registrado la venta
@@ -17970,6 +18152,47 @@ Partial Class Ventas
End Sub
+
+ Private Sub AjustarTimbreNC(ByRef ObjNC As Modelos.Factura)
+ If LblSeTimbro.Text = "Si" Then
+ ObjNC.Timbre.CFDIRelacionados.UUID.Clear()
+ ObjNC.Timbre.CFDIRelacionados.UUID.Add(LblFolioFiscal.Text.Trim())
+ ObjNC.Timbre.CFDIRelacionados.TipoRelacion = "07"
+ ObjNC.Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo"
+ End If
+
+ ObjNC.Timbre.Comprobante.MetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {ObjNC.CveMetodoPago}") ' Obj.ClaveMetodoPagoSAT
+ ObjNC.Timbre.Comprobante.FormadePago = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", $"CveFormaPago = {ObjNC.CveFormaPago}") 'Obj.ClaveFormaPagoSAT
+ ObjNC.Timbre.Receptor.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", $"CveUsoCFDI = {ObjNC.CveUsoCFDI}")
+ End Sub
+
+ Private Function TimbrarNC(ByRef ObjNC As Modelos.Factura, ByRef SeTimbroNC As Boolean) As String
+ Dim MsgErrorTimbrado As String = ""
+ 'Dim SeTimbro As Boolean = False
+ 'Dim TimbroNC As Boolean = False
+
+ Dim ObjTimbrado As New Timbrado
+ Try
+ If ObjNC.Timbre IsNot Nothing Then
+ Dim ObjTimbradoNC As New Timbrado
+ SeTimbroNC = ObjTimbradoNC.TimbrarFactura(UsuarioActual, ObjNC)
+
+ If Not SeTimbroNC Then
+ MsgErrorTimbrado = $"{MsgErrorTimbrado} {ObjTimbradoNC.MensajeErrorCFDI}"
+ End If
+ ObjTimbradoNC = Nothing
+ End If
+
+ Catch ex As Exception
+ OnError("Ocurrió un error al generar el timbrado", ex)
+ End Try
+
+ If Not String.IsNullOrEmpty(MsgErrorTimbrado) Then
+ GuardaLogAD(MsgErrorTimbrado, Archivo:="LogTimbrado")
+ End If
+
+ Return MsgErrorTimbrado
+ End Function
Private Function AgregarPrePolizasXTrasladar(ObjConta As ClsContabilidad, CvePrePoliza As Integer, PorcentajeAmortizacion As Decimal, TipoCambio As Decimal, ByRef CuentasContablesInvalidas As StringBuilder, ByRef CveCuentaContabilizacion As Integer, Importe13 As Decimal, Importe8 As Decimal, Importe9 As Decimal) As Boolean
Dim ImporteMovimiento As Decimal
Dim ImporteMX As Decimal
@@ -18793,7 +19016,7 @@ Partial Class Ventas
Dim ActualizarPrecios As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
- ActualizarPrecios = true
+ ActualizarPrecios = True
End If
If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then