Saldos Iniciales Ventas detalles
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
Option Explicit On
|
||||
Imports System.Data
|
||||
Imports System.Math
|
||||
Imports ADSNetLibrary.SIGAPI.Models.OC.Response
|
||||
Imports ClosedXML.Excel
|
||||
Imports DocumentFormat.OpenXml.Drawing.Diagrams
|
||||
Imports Extensiones
|
||||
@@ -2444,6 +2445,8 @@ Partial Class General_SaldosIniciales
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Else
|
||||
'ANTICIPOS
|
||||
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
|
||||
@@ -2479,6 +2482,7 @@ Partial Class General_SaldosIniciales
|
||||
|
||||
ElseIf RblFormato.SelectedValue = "17" Then
|
||||
Dim NoEncontrados As Integer = 0
|
||||
Dim VentasAgregadas As Integer = 0
|
||||
Dim Encontrados As Integer = 0
|
||||
Dim StrRFCNoencontrados As New StringBuilder
|
||||
Dim drr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero("AplicaParaVenta = 1")
|
||||
@@ -2519,343 +2523,640 @@ Partial Class General_SaldosIniciales
|
||||
Dim CountRow As Integer = 1
|
||||
Dim LastSerieFolioTipoDoc As String = String.Empty
|
||||
Dim EsDetalle As Boolean = False
|
||||
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
|
||||
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'")
|
||||
Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim
|
||||
Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
|
||||
Dim Serie As String = Row("Serie").ToString().Trim
|
||||
Dim Folio As Integer = Row("Folio").ToString().ToEntero()
|
||||
Dim Fecha As Date = Row("Fecha").ToString().ToDate
|
||||
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate
|
||||
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D)
|
||||
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0)
|
||||
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
|
||||
|
||||
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
|
||||
EsDetalle = True
|
||||
Else
|
||||
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
|
||||
EsDetalle = False
|
||||
End If
|
||||
If UsuarioActual.CveEmpresa = 189 Then
|
||||
|
||||
Dim DTFoliosFiscales As DataTable = dt.FiltraParametros("", "", {"Folio Fiscal"})
|
||||
|
||||
For Each drFolioFiscal As DataRow In DTFoliosFiscales.Rows
|
||||
Dim FolioFiscalActual As String = drFolioFiscal("Folio Fiscal").ToString
|
||||
Dim DRVentaActual As DataRow = dt.FiltroPrimero($"[Folio Fiscal] = '{FolioFiscalActual}'")
|
||||
|
||||
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{DRVentaActual("Sucursal").ToString()}'")
|
||||
Dim TipoDocto As String = DRVentaActual("Tipo Documento").ToString().Trim
|
||||
Dim RFC As String = DRVentaActual("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
|
||||
Dim Serie As String = DRVentaActual("Serie").ToString().Trim
|
||||
Dim Folio As Integer = DRVentaActual("Folio").ToString().ToEntero()
|
||||
Dim Fecha As Date = DRVentaActual("Fecha").ToString().ToDate
|
||||
Dim FechaVencimiento As Date = DRVentaActual("Fecha Vencimiento").ToString().ToDate
|
||||
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), DRVentaActual("ImpuestoLocal").ToString().ToDecimal, 0D)
|
||||
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), DRVentaActual("Amort.Ant").ToString().ToDecimal, 0)
|
||||
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
|
||||
|
||||
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
|
||||
EsDetalle = True
|
||||
Else
|
||||
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
|
||||
EsDetalle = False
|
||||
End If
|
||||
|
||||
Dim SubTotal As Decimal = 0
|
||||
Dim IVA As Decimal = 0
|
||||
Dim Total As Decimal = 0
|
||||
Dim Saldo As Decimal = 0
|
||||
Dim RetIVA As Decimal = 0
|
||||
Dim RetISR As Decimal = 0
|
||||
Dim IEPS As Decimal = 0
|
||||
|
||||
SubTotal = DRVentaActual("SubTotal").ToString().ToDecimal
|
||||
IVA = DRVentaActual("IVA").ToString().ToDecimal
|
||||
Total = DRVentaActual("Total").ToString().ToDecimal
|
||||
Saldo = DRVentaActual("Saldo").ToString().ToDecimal
|
||||
RetIVA = DRVentaActual("Ret IVA").ToString().ToDecimal
|
||||
RetISR = DRVentaActual("Ret ISR").ToString().ToDecimal
|
||||
IEPS = DRVentaActual("IEPS").ToString().ToDecimal
|
||||
|
||||
Dim Moneda As String = DRVentaActual("Moneda").ToString()
|
||||
Dim TipoCambio As String = DRVentaActual("Tipo Cambio").ToString()
|
||||
Dim CveMoneda As Integer = 1
|
||||
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), DRVentaActual("Vendedor").ToString(), "")
|
||||
Dim CveVendedor As Integer = 0
|
||||
|
||||
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
|
||||
'Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), DRVentaActual("Folio Fiscal").ToString(), "")
|
||||
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(DRVentaActual("PorcentajeIVA").ToString().ToDecimal, 2), 0)
|
||||
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(DRVentaActual("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
|
||||
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(DRVentaActual("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
|
||||
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), DRVentaActual("Pedido").ToString(), "")
|
||||
|
||||
GuardaLog(Sucursal + "-" + DRVentaActual("Folio").ToString())
|
||||
'Temporalmente SE BORRARA
|
||||
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
|
||||
Dim Folio2 As String = "" ' Row("Folio2").ToString()
|
||||
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
|
||||
|
||||
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
|
||||
|
||||
'Dim CantidadDetalle As Decimal = 0
|
||||
'Dim PUDetalle As Decimal = 0
|
||||
'Dim IVADetalle As Decimal = 0
|
||||
Dim PorcentajeIEPS As Decimal = 0
|
||||
|
||||
|
||||
Dim SubTotal As Decimal = 0
|
||||
Dim IVA As Decimal = 0
|
||||
Dim Total As Decimal = 0
|
||||
Dim Saldo As Decimal = 0
|
||||
Dim RetIVA As Decimal = 0
|
||||
Dim RetISR As Decimal = 0
|
||||
Dim IEPS As Decimal = 0
|
||||
|
||||
If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then
|
||||
|
||||
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
|
||||
SubTotal += item("SubTotal").ToString().ToDecimal
|
||||
IVA += item("IVA").ToString().ToDecimal
|
||||
Total += item("Total").ToString().ToDecimal
|
||||
Saldo += item("Saldo").ToString().ToDecimal
|
||||
RetIVA += item("Ret IVA").ToString().ToDecimal
|
||||
RetISR += item("Ret ISR").ToString().ToDecimal
|
||||
IEPS += item("IEPS").ToString().ToDecimal
|
||||
Dim TotalDetalles As Decimal = 0
|
||||
For Each dRowDetalle As DataRow In dt.FiltraParametros($"[Folio Fiscal]='{FolioFiscalActual}'").Rows
|
||||
Dim CantidadDetalle As Decimal = dRowDetalle("Cantidad").ToString.ToDecimal 'digo PU IVADetalle
|
||||
Dim PuDetalle As Decimal = dRowDetalle("PU").ToString.ToDecimal
|
||||
Dim IVADetalle As Decimal = dRowDetalle("IVADetalle").ToString.ToDecimal
|
||||
Dim IEPSDetalle As Decimal = dRowDetalle("IEPS").ToString.ToDecimal
|
||||
TotalDetalles += (CantidadDetalle * PuDetalle) + IVADetalle + IEPSDetalle
|
||||
Next
|
||||
Else
|
||||
SubTotal = Row("SubTotal").ToString().ToDecimal
|
||||
IVA = Row("IVA").ToString().ToDecimal
|
||||
Total = Row("Total").ToString().ToDecimal
|
||||
Saldo = Row("Saldo").ToString().ToDecimal
|
||||
RetIVA = Row("Ret IVA").ToString().ToDecimal
|
||||
RetISR = Row("Ret ISR").ToString().ToDecimal
|
||||
IEPS = Row("IEPS").ToString().ToDecimal
|
||||
End If
|
||||
|
||||
Dim Moneda As String = Row("Moneda").ToString()
|
||||
Dim TipoCambio As String = Row("Tipo Cambio").ToString()
|
||||
Dim CveMoneda As Integer = 1
|
||||
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "")
|
||||
Dim CveVendedor As Integer = 0
|
||||
|
||||
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
|
||||
Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "")
|
||||
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0)
|
||||
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
|
||||
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
|
||||
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "")
|
||||
If IEPS > 0 Then
|
||||
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(DRVentaActual("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
|
||||
End If
|
||||
|
||||
GuardaLog(Sucursal + "-" + Row("Folio").ToString())
|
||||
'Temporalmente SE BORRARA
|
||||
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
|
||||
Dim Folio2 As String = "" ' Row("Folio2").ToString()
|
||||
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
|
||||
If Math.Abs(TotalDetalles - Total) > 0.01 Then
|
||||
ErrorVentas = True
|
||||
Alert($"Registro {CountRow} El total no coincide con el acumulado de los detalles, total: {Total.ToString("###,###,###.00")} detatalle: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Dim IEPSDetalle As Decimal = 0
|
||||
Dim CantidadDetalle As Decimal = 0
|
||||
Dim PUDetalle As Decimal = 0
|
||||
Dim IVADetalle As Decimal = 0
|
||||
Dim PorcentajeIEPS As Decimal = 0
|
||||
|
||||
If IEPS > 0 Then
|
||||
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
|
||||
End If
|
||||
If Vendedor <> "" Then
|
||||
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
|
||||
If Not CveVendedor > 0 Then CveVendedor = 0
|
||||
Else
|
||||
CveVendedor = 0
|
||||
End If
|
||||
|
||||
If RblFormato.SelectedValue = "17" Then
|
||||
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
|
||||
CveMoneda = 1
|
||||
TipoCambio = "1"
|
||||
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
|
||||
CveMoneda = 2
|
||||
|
||||
Dim CodigoDetalle As String = Row("Codigo").ToString
|
||||
If CodigoDetalle.Trim.Length > 0 Then
|
||||
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
|
||||
If TipoCambio.Trim.ToDecimal < 10 Then
|
||||
|
||||
If DrDetalles IsNot Nothing Then
|
||||
CvePS = DrDetalles("CvePS").ToString().ToEntero()
|
||||
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
|
||||
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
|
||||
Else
|
||||
Alert($"El código del producto no se encontro, error en registro {CountRow}")
|
||||
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
|
||||
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
|
||||
Else
|
||||
TipoCambio = GlobalTipoCambio(Fecha).ToString()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If TipoCambio = "" Then TipoCambio = "1"
|
||||
|
||||
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
|
||||
|
||||
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
|
||||
FechaVencimiento = Fecha
|
||||
End If
|
||||
|
||||
If Not ErrorVentas Then
|
||||
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, CveMoneda, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
If Not CvePrePoliza > 0 Then
|
||||
ErrorVentas = True
|
||||
End If
|
||||
Else
|
||||
Alert($"El código es requerido, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
|
||||
IEPSDetalle = Row("IEPS").ToString.ToDecimal
|
||||
CantidadDetalle = Row("Cantidad").ToString.ToDecimal
|
||||
PUDetalle = Row("PU").ToString.ToDecimal
|
||||
IVADetalle = Row("IVA").ToString.ToDecimal
|
||||
|
||||
If CantidadDetalle = 0 Then
|
||||
Alert($"No se especifico la cantidad, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then
|
||||
|
||||
Dim ObjCliente As New ClsClientes
|
||||
If ObjCliente.GetSucursales(CveCliente) Then
|
||||
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
||||
CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero
|
||||
End If
|
||||
End If
|
||||
|
||||
ObjCliente.Dispose()
|
||||
End If
|
||||
If Not ErrorVentas Then
|
||||
'Venta
|
||||
If CveCliente > 0 Then
|
||||
|
||||
|
||||
'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For
|
||||
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
|
||||
'PrePóliza
|
||||
If Not EsDetalle Then
|
||||
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
End If
|
||||
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
|
||||
GuardaLog(Serie & "-" & Folio)
|
||||
If Not EsDetalle Then
|
||||
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
|
||||
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
|
||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
|
||||
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
|
||||
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
Else
|
||||
VentasAgregadas += 1
|
||||
End If
|
||||
CveVenta = ObjVentas.CveVenta
|
||||
End If
|
||||
|
||||
If Vendedor <> "" Then
|
||||
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
|
||||
If Not CveVendedor > 0 Then CveVendedor = 0
|
||||
Else
|
||||
CveVendedor = 0
|
||||
End If
|
||||
|
||||
'Moneda
|
||||
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
|
||||
CveMoneda = 1
|
||||
TipoCambio = "1"
|
||||
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
|
||||
CveMoneda = 2
|
||||
For Each dRowDetalle As DataRow In dt.FiltraParametros($"[Folio Fiscal]='{FolioFiscalActual}'").Rows
|
||||
|
||||
If TipoCambio.Trim.ToDecimal < 10 Then
|
||||
|
||||
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
|
||||
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
|
||||
Dim CantidadDetalle As Decimal = dRowDetalle("Cantidad").ToString.ToDecimal 'digo PU IVADetalle
|
||||
Dim PuDetalle As Decimal = dRowDetalle("PU").ToString.ToDecimal
|
||||
Dim IVADetalle As Decimal = dRowDetalle("IVADetalle").ToString.ToDecimal
|
||||
Dim IEPSDetalle As Decimal = dRowDetalle("IEPS").ToString.ToDecimal
|
||||
Dim PorcentajeIEPSDetalle = dRowDetalle("PorcentajeIEPS").ToString.ToDecimal
|
||||
|
||||
Dim CodigoDetalle As String = dRowDetalle("Codigo").ToString
|
||||
If CodigoDetalle.Trim.Length > 0 Then
|
||||
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
|
||||
|
||||
If DrDetalles IsNot Nothing Then
|
||||
CvePS = DrDetalles("CvePS").ToString().ToEntero()
|
||||
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
|
||||
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
|
||||
Else
|
||||
Alert($"El código del producto no se encontro, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
Else
|
||||
Alert($"El código es requerido, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
|
||||
If Not ErrorVentas Then
|
||||
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PuDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
|
||||
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=0, IEPS:=IEPSDetalle, PorcentajeRetISR:=0, PorcentajeIEPS:=PorcentajeIEPSDetalle) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
|
||||
Dim ConceptoContable As Integer = 1
|
||||
Dim ConceptoContablePago As Integer = 2
|
||||
If TipoDocto = "Egs" Then
|
||||
ConceptoContable = 12
|
||||
ConceptoContablePago = 91
|
||||
End If
|
||||
|
||||
If FolioFiscalActual <> "" Then
|
||||
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscalActual, CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim UsaComplementaria As Boolean = False
|
||||
|
||||
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
|
||||
|
||||
'PrePólizaDetalle
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
If IVA > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If IEPS > 0 Then
|
||||
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
End If
|
||||
|
||||
If RetIVA > 0 Then
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If RetISR > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If ImpuestoLocal > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
|
||||
If UsaComplementaria Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
'Saldo
|
||||
If Saldo < Total Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If Not ErrorVentas Then
|
||||
VentasAgregadas += VentasAgregadas
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
'ANTICIPOS
|
||||
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1, 1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
End If
|
||||
|
||||
'_______________________________________________________________
|
||||
|
||||
Else
|
||||
TipoCambio = GlobalTipoCambio(Fecha).ToString()
|
||||
NoEncontrados = NoEncontrados + 1
|
||||
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
|
||||
'ErrorVentas = True
|
||||
'Exit For
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
Else
|
||||
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
|
||||
|
||||
Dim Sucursal As String = dtsubp.FiltroPrimeroValor("CveSubProyecto", $"SubProyecto = '{Row("Sucursal").ToString()}'")
|
||||
Dim TipoDocto As String = Row("Tipo Documento").ToString().Trim
|
||||
Dim RFC As String = Row("RFC").ToString().Trim.Replace("-", "").Replace(" ", "")
|
||||
Dim Serie As String = Row("Serie").ToString().Trim
|
||||
Dim Folio As Integer = Row("Folio").ToString().ToEntero()
|
||||
Dim Fecha As Date = Row("Fecha").ToString().ToDate
|
||||
Dim FechaVencimiento As Date = Row("Fecha Vencimiento").ToString().ToDate
|
||||
Dim ImpuestoLocal As Decimal = If(dt.Columns.Contains("ImpuestoLocal"), Row("ImpuestoLocal").ToString().ToDecimal, 0D)
|
||||
Dim Amortizacion As Decimal = If(dt.Columns.Contains("Amort.Ant"), Row("Amort.Ant").ToString().ToDecimal, 0)
|
||||
Dim CveCliente As Integer = DtClientes.FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero()
|
||||
|
||||
If LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}" AndAlso UsuarioActual.CveEmpresa = 189 Then
|
||||
EsDetalle = True
|
||||
Else
|
||||
LastSerieFolioTipoDoc = $"{Serie}{Folio}{TipoDocto}"
|
||||
EsDetalle = False
|
||||
End If
|
||||
|
||||
|
||||
Dim SubTotal As Decimal = 0
|
||||
Dim IVA As Decimal = 0
|
||||
Dim Total As Decimal = 0
|
||||
Dim Saldo As Decimal = 0
|
||||
Dim RetIVA As Decimal = 0
|
||||
Dim RetISR As Decimal = 0
|
||||
Dim IEPS As Decimal = 0
|
||||
|
||||
If UsuarioActual.CveEmpresa = 189 AndAlso Not EsDetalle Then
|
||||
|
||||
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
|
||||
SubTotal += item("SubTotal").ToString().ToDecimal
|
||||
IVA += item("IVA").ToString().ToDecimal
|
||||
Total += item("Total").ToString().ToDecimal
|
||||
Saldo += item("Saldo").ToString().ToDecimal
|
||||
RetIVA += item("Ret IVA").ToString().ToDecimal
|
||||
RetISR += item("Ret ISR").ToString().ToDecimal
|
||||
IEPS += item("IEPS").ToString().ToDecimal
|
||||
Next
|
||||
|
||||
Else
|
||||
SubTotal = Row("SubTotal").ToString().ToDecimal
|
||||
IVA = Row("IVA").ToString().ToDecimal
|
||||
Total = Row("Total").ToString().ToDecimal
|
||||
Saldo = Row("Saldo").ToString().ToDecimal
|
||||
RetIVA = Row("Ret IVA").ToString().ToDecimal
|
||||
RetISR = Row("Ret ISR").ToString().ToDecimal
|
||||
IEPS = Row("IEPS").ToString().ToDecimal
|
||||
End If
|
||||
|
||||
Dim Moneda As String = Row("Moneda").ToString()
|
||||
Dim TipoCambio As String = Row("Tipo Cambio").ToString()
|
||||
Dim CveMoneda As Integer = 1
|
||||
Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "")
|
||||
Dim CveVendedor As Integer = 0
|
||||
|
||||
Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero()
|
||||
Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "")
|
||||
Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 2), 0)
|
||||
Dim PorcentajeRetIVA As Decimal = If(dt.Columns.Contains("PorcentajeRetIVA"), Round(Row("PorcentajeRetIVA").ToString().ToDecimal, 4), 0)
|
||||
Dim PorcentajeRetISR As Decimal = If(dt.Columns.Contains("PorcentajeRetISR"), Round(Row("PorcentajeRetISR").ToString().ToDecimal, 4), 0)
|
||||
Dim PedidoContrato As String = If(dt.Columns.Contains("Pedido"), Row("Pedido").ToString(), "")
|
||||
|
||||
GuardaLog(Sucursal + "-" + Row("Folio").ToString())
|
||||
'Temporalmente SE BORRARA
|
||||
Dim Transaccion As String = "" ' Row("Transaccion2").ToString()
|
||||
Dim Folio2 As String = "" ' Row("Folio2").ToString()
|
||||
Dim CodCliente As String = "" 'Row("CodCliente2").ToString()
|
||||
|
||||
Dim IEPSDetalle As Decimal = 0
|
||||
Dim CantidadDetalle As Decimal = 0
|
||||
Dim PUDetalle As Decimal = 0
|
||||
Dim IVADetalle As Decimal = 0
|
||||
Dim PorcentajeIEPS As Decimal = 0
|
||||
|
||||
If IEPS > 0 Then
|
||||
PorcentajeIEPS = If(dt.Columns.Contains("PorcentajeIEPS"), Round(Row("PorcentajeIEPS").ToString().ToDecimal, 4), 0)
|
||||
End If
|
||||
|
||||
If RblFormato.SelectedValue = "17" Then
|
||||
|
||||
Dim CodigoDetalle As String = Row("Codigo").ToString
|
||||
If CodigoDetalle.Trim.Length > 0 Then
|
||||
Dim DrDetalles As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"Codigo = '{CodigoDetalle}'")
|
||||
|
||||
If DrDetalles IsNot Nothing Then
|
||||
CvePS = DrDetalles("CvePS").ToString().ToEntero()
|
||||
CveUnidadMedida = DrDetalles("CveUnidadMedida").ToString().ToEntero()
|
||||
CveClasificacion = DrDetalles("CveClasificacion").ToString().ToEntero()
|
||||
Else
|
||||
Alert($"El código del producto no se encontro, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
Else
|
||||
Alert($"El código es requerido, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
|
||||
IEPSDetalle = Row("IEPS").ToString.ToDecimal
|
||||
CantidadDetalle = Row("Cantidad").ToString.ToDecimal
|
||||
PUDetalle = Row("PU").ToString.ToDecimal
|
||||
IVADetalle = Row("IVA").ToString.ToDecimal
|
||||
|
||||
If CantidadDetalle = 0 Then
|
||||
Alert($"No se especifico la cantidad, error en registro {CountRow}")
|
||||
ErrorVentas = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then
|
||||
|
||||
'Si no se especifica TC, se manda como pesos.
|
||||
If TipoCambio = "" Then TipoCambio = "1"
|
||||
|
||||
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
|
||||
|
||||
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
|
||||
FechaVencimiento = Fecha
|
||||
End If
|
||||
|
||||
|
||||
'Venta
|
||||
If CveCliente > 0 Then
|
||||
|
||||
|
||||
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
|
||||
GuardaLog(Serie & "-" & Folio)
|
||||
If Not EsDetalle Then
|
||||
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
|
||||
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
|
||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
|
||||
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
|
||||
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
Dim ObjCliente As New ClsClientes
|
||||
If ObjCliente.GetSucursales(CveCliente) Then
|
||||
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
||||
CveClienteSucursal = ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "SucursalCliente = '" & Row("Cliente Sucursal").ToString().Trim & "'").ToEntero
|
||||
End If
|
||||
CveVenta = ObjVentas.CveVenta
|
||||
End If
|
||||
|
||||
If Not EsDetalle Then
|
||||
SubTotal = Row("SubTotal").ToString().ToDecimal
|
||||
IVA = Row("IVA").ToString().ToDecimal
|
||||
Total = Row("Total").ToString().ToDecimal
|
||||
Saldo = Row("Saldo").ToString().ToDecimal
|
||||
RetIVA = Row("Ret IVA").ToString().ToDecimal
|
||||
RetISR = Row("Ret ISR").ToString().ToDecimal
|
||||
IEPS = Row("IEPS").ToString().ToDecimal
|
||||
ObjCliente.Dispose()
|
||||
End If
|
||||
|
||||
|
||||
'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For
|
||||
TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING", "FACTURA", "FACTURAS"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString()
|
||||
'PrePóliza
|
||||
If Not EsDetalle Then
|
||||
CvePrePoliza = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
End If
|
||||
|
||||
If Vendedor <> "" Then
|
||||
CveVendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero()
|
||||
If Not CveVendedor > 0 Then CveVendedor = 0
|
||||
Else
|
||||
CveVendedor = 0
|
||||
End If
|
||||
|
||||
'Moneda
|
||||
If Moneda.ToUpper.Contiene("PESOS", "PESO", "MXN") Then
|
||||
CveMoneda = 1
|
||||
TipoCambio = "1"
|
||||
ElseIf Moneda.ToUpper.Contiene("DÓLAR", "DÓLARES", "DOLARES", "USD") Then
|
||||
CveMoneda = 2
|
||||
|
||||
If TipoCambio.Trim.ToDecimal < 10 Then
|
||||
|
||||
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
|
||||
TipoCambio = GlobalTipoCambio(Fecha.AddDays(-1)).ToString()
|
||||
Else
|
||||
TipoCambio = GlobalTipoCambio(Fecha).ToString()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If RblFormato.SelectedValue = "17" Then
|
||||
End If
|
||||
|
||||
Dim TotalDetalles As Decimal = SubTotal
|
||||
If PUDetalle > 0 Then
|
||||
TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle
|
||||
'Si no se especifica TC, se manda como pesos.
|
||||
If TipoCambio = "" Then TipoCambio = "1"
|
||||
|
||||
If Not CveClienteSucursal > 0 Then CveClienteSucursal = -1
|
||||
|
||||
If FechaVencimiento = "".ToDate Or FechaVencimiento < "1900/01/01".ToDate Then
|
||||
FechaVencimiento = Fecha
|
||||
End If
|
||||
|
||||
|
||||
'Venta
|
||||
If CveCliente > 0 Then
|
||||
|
||||
|
||||
If TipoDocto.Contiene("Ing", "Egs", "Rem") Then
|
||||
GuardaLog(Serie & "-" & Folio)
|
||||
If Not EsDetalle Then
|
||||
If Not ObjVentas.AddVenta(TipoDocto, Folio, CveCliente.ToEntero(), CveClienteSucursal, SubTotal, 0, Amortizacion, IVA, RetIVA, RetISR, Total, CveMoneda, TipoCambio.ToDecimal,
|
||||
0, 0, 0, FechaVencimiento, Fecha, "", "", Fecha, CveVendedor, Folio2, "", "", 0, 0, 0, "-1".ToDate, "-1".ToDate, "-1".ToDate, -1, 0, CvePrePoliza,
|
||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Serie:=Serie, CveSubProyecto:=Sucursal.ToEntero(), CveSubProyectoEjecucion:=Sucursal.ToEntero(),
|
||||
CveSubProyectoCobranza:=Sucursal.ToEntero(), IEPS:=IEPS, ObservacionesAlmacen:=Transaccion, Entrega:=CodCliente, ImpuestoLocal:=ImpuestoLocal,
|
||||
PedidoContrato:=PedidoContrato, CveMetodoPago33:=3) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
Else
|
||||
VentasAgregadas += 1
|
||||
End If
|
||||
CveVenta = ObjVentas.CveVenta
|
||||
End If
|
||||
|
||||
If Math.Abs(TotalDetalles - Total) > 0.01 Then
|
||||
ErrorVentas = True
|
||||
Alert($"Registro {CountRow} El total no councide con el calculo de los detalles, total: {Total.ToString("###,###,###.00")} calculo detatalles: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
|
||||
Exit For
|
||||
If Not EsDetalle Then
|
||||
SubTotal = Row("SubTotal").ToString().ToDecimal
|
||||
IVA = Row("IVA").ToString().ToDecimal
|
||||
Total = Row("Total").ToString().ToDecimal
|
||||
Saldo = Row("Saldo").ToString().ToDecimal
|
||||
RetIVA = Row("Ret IVA").ToString().ToDecimal
|
||||
RetISR = Row("Ret ISR").ToString().ToDecimal
|
||||
IEPS = Row("IEPS").ToString().ToDecimal
|
||||
End If
|
||||
|
||||
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
|
||||
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
If RblFormato.SelectedValue = "17" Then
|
||||
|
||||
Dim TotalDetalles As Decimal = SubTotal
|
||||
If PUDetalle > 0 Then
|
||||
TotalDetalles = (CantidadDetalle * PUDetalle) + IVA - RetIVA - RetISR + IEPSDetalle
|
||||
End If
|
||||
|
||||
If Math.Abs(TotalDetalles - Total) > 0.01 Then
|
||||
ErrorVentas = True
|
||||
Alert($"Registro {CountRow} El total no coincide con el acumulado de los detalles, total: {Total.ToString("###,###,###.00")} detatalle: {TotalDetalles.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle, IVADetalle, TotalDetalles, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0,
|
||||
PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle, PorcentajeRetISR:=PorcentajeRetISR, PorcentajeIEPS:=PorcentajeIEPS) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Else
|
||||
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Dim ConceptoContable As Integer = 1
|
||||
Dim ConceptoContablePago As Integer = 2
|
||||
If TipoDocto = "Egs" Then
|
||||
ConceptoContable = 12
|
||||
ConceptoContablePago = 91
|
||||
End If
|
||||
|
||||
If FolioFiscal <> "" Then
|
||||
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim UsaComplementaria As Boolean = False
|
||||
|
||||
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
|
||||
|
||||
If Not EsDetalle Then
|
||||
|
||||
SubTotal = 0
|
||||
IVA = 0
|
||||
Total = 0
|
||||
Saldo = 0
|
||||
RetIVA = 0
|
||||
RetISR = 0
|
||||
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
|
||||
SubTotal += item("SubTotal").ToString().ToDecimal
|
||||
IVA += item("IVA").ToString().ToDecimal
|
||||
Total += item("Total").ToString().ToDecimal
|
||||
Saldo += item("Saldo").ToString().ToDecimal
|
||||
RetIVA += item("Ret IVA").ToString().ToDecimal
|
||||
RetISR += item("Ret ISR").ToString().ToDecimal
|
||||
IEPS += item("IEPS").ToString().ToDecimal
|
||||
Next
|
||||
|
||||
'PrePólizaDetalle
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
If IVA > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If IEPS > 0 Then
|
||||
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
End If
|
||||
|
||||
If RetIVA > 0 Then
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If RetISR > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If ImpuestoLocal > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
|
||||
If UsaComplementaria Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
'Saldo
|
||||
If Saldo < Total Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
Else
|
||||
If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Dim ConceptoContable As Integer = 1
|
||||
Dim ConceptoContablePago As Integer = 2
|
||||
If TipoDocto = "Egs" Then
|
||||
ConceptoContable = 12
|
||||
ConceptoContablePago = 91
|
||||
End If
|
||||
|
||||
If FolioFiscal <> "" Then
|
||||
If Not ObjVentas.UpdateVentaFolioFiscal(FolioFiscal, CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
ErrorVentas = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim UsaComplementaria As Boolean = False
|
||||
|
||||
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaComplementaria = True
|
||||
|
||||
If Not EsDetalle Then
|
||||
|
||||
SubTotal = 0
|
||||
IVA = 0
|
||||
Total = 0
|
||||
Saldo = 0
|
||||
RetIVA = 0
|
||||
RetISR = 0
|
||||
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
|
||||
SubTotal += item("SubTotal").ToString().ToDecimal
|
||||
IVA += item("IVA").ToString().ToDecimal
|
||||
Total += item("Total").ToString().ToDecimal
|
||||
Saldo += item("Saldo").ToString().ToDecimal
|
||||
RetIVA += item("Ret IVA").ToString().ToDecimal
|
||||
RetISR += item("Ret ISR").ToString().ToDecimal
|
||||
IEPS += item("IEPS").ToString().ToDecimal
|
||||
Next
|
||||
|
||||
'PrePólizaDetalle
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, SubTotal, 4, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero(), PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, ConceptoContable, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
If IVA > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, IVA, 13, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If IEPS > 0 Then
|
||||
'AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, Folio, 38, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=IEPS)
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, IEPS, 38, Folio.ToString, String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
|
||||
End If
|
||||
|
||||
If RetIVA > 0 Then
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 8, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If RetISR > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, RetISR, RetISR, 9, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeRetISR, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
If ImpuestoLocal > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImpuestoLocal, ImpuestoLocal, 27, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, PorcentajeImpuesto:=PorcentajeIVA, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
|
||||
If UsaComplementaria Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total * TipoCambio.ToDecimal - Total, Total * TipoCambio.ToDecimal - Total, 203, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteME:=Total, TipoCambio:=TipoCambio.ToDecimal, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
|
||||
'Saldo
|
||||
If Saldo < Total Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total - Saldo, Total - Saldo, ConceptoContablePago, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, CveVentaAmortizacion:=CveVenta, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total - Saldo, Total - Saldo, 95, Folio.ToString(), Folio.ToString(), CveVenta:=CveVenta, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not EsDetalle Then
|
||||
|
||||
SubTotal = 0
|
||||
IVA = 0
|
||||
Total = 0
|
||||
Saldo = 0
|
||||
RetIVA = 0
|
||||
RetISR = 0
|
||||
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
|
||||
SubTotal += item("SubTotal").ToString().ToDecimal
|
||||
IVA += item("IVA").ToString().ToDecimal
|
||||
Total += item("Total").ToString().ToDecimal
|
||||
Saldo += item("Saldo").ToString().ToDecimal
|
||||
RetIVA += item("Ret IVA").ToString().ToDecimal
|
||||
RetISR += item("Ret ISR").ToString().ToDecimal
|
||||
IEPS += item("IEPS").ToString().ToDecimal
|
||||
Next
|
||||
|
||||
'ANTICIPOS
|
||||
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
|
||||
1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
End If
|
||||
Encontrados = Encontrados + 1
|
||||
|
||||
Else
|
||||
|
||||
If Not EsDetalle Then
|
||||
|
||||
SubTotal = 0
|
||||
IVA = 0
|
||||
Total = 0
|
||||
Saldo = 0
|
||||
RetIVA = 0
|
||||
RetISR = 0
|
||||
For Each item As DataRow In dt.FiltraParametros($"RFC <> '' AND Folio = '{Row("Folio").ToString()}' AND Serie = '{Row("Serie").ToString()}' AND [Tipo Documento] = '{Row("Tipo Documento").ToString()}' ").Rows
|
||||
SubTotal += item("SubTotal").ToString().ToDecimal
|
||||
IVA += item("IVA").ToString().ToDecimal
|
||||
Total += item("Total").ToString().ToDecimal
|
||||
Saldo += item("Saldo").ToString().ToDecimal
|
||||
RetIVA += item("Ret IVA").ToString().ToDecimal
|
||||
RetISR += item("Ret ISR").ToString().ToDecimal
|
||||
IEPS += item("IEPS").ToString().ToDecimal
|
||||
Next
|
||||
|
||||
'ANTICIPOS
|
||||
Dim CveIE As Integer = ObjIE.AddBancos_IE(1, 1, Fecha, Folio.ToString(), "", Total, 1,
|
||||
1, "Anticipo Cliente", "", False, False, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Total, 30, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Total, 66, Folio.ToString(), String.Format("{0}-{1}", Serie, Folio), CveIE:=CveIE, CveCliente:=CveCliente, Contabilizable:=False) Then ErrorVentas = True : Exit For
|
||||
End If
|
||||
NoEncontrados = NoEncontrados + 1
|
||||
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
|
||||
'ErrorVentas = True
|
||||
'Exit For
|
||||
End If
|
||||
Encontrados = Encontrados + 1
|
||||
|
||||
Else
|
||||
NoEncontrados = NoEncontrados + 1
|
||||
StrRFCNoencontrados.AppendFormat("{0}<br/>", RFC)
|
||||
'ErrorVentas = True
|
||||
'Exit For
|
||||
End If
|
||||
CountRow = CountRow + 1
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
'**********************************************************************************************************************************************************************************
|
||||
|
||||
|
||||
|
||||
CountRow = CountRow + 1
|
||||
Next
|
||||
If Not ErrorVentas Then
|
||||
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
|
||||
|
||||
If UsuarioActual.CveEmpresa = 189 Then
|
||||
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", VentasAgregadas, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
|
||||
Else
|
||||
Alert(String.Format("Se agregaron: <b>{0}</b> Ventas correctamente. <b>{1} no encontrados</b><br/>{2} ", Encontrados, NoEncontrados, StrRFCNoencontrados), TipoMensaje.MsgInformacion)
|
||||
End If
|
||||
|
||||
|
||||
ObjVentas.Commit()
|
||||
TxtExcel.Text = ""
|
||||
UpDatos.Update()
|
||||
|
||||
Reference in New Issue
Block a user