diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 0ed55e76e..7ce9cd07e 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -551,6 +551,8 @@ Namespace Modelos
Public Property SeTimbro As Boolean
Public Property SeTimbroNotaCredito As Boolean
Public Property CveEstatus As Integer
+ Public Property CveMovimientoUsado As Integer
+ Public Property FolioUsado As String
End Class
Public Function RegenerarPrePolizas(Optional TransaccionCompartida As SqlClient.SqlTransaction = Nothing, Optional ObjACTransac As ClsContPAQi = Nothing) As Boolean
@@ -707,7 +709,7 @@ Namespace Modelos
Next
End If
- GuardarVenta(Me, ObjVentas, ObjConta, ObjInventario, ObjContr, DtDetalle, Me.CveNCaVincular, ObjContPaq, ObjBancos, ObjOS, ObjEventos, ObjCGame, ObjClientes, ObjAcum:=ObjAcum)
+ GuardarVenta(Me, ObjVentas, ObjConta, ObjInventario, ObjContr, DtDetalle, Me.CveNCaVincular, ObjContPaq, ObjBancos, ObjOS, ObjEventos, ObjCGame, ObjClientes, ObjAcum:=ObjAcum, Resp:=Retorno)
'SI ES REFACTURACION
Dim ObjNC As List(Of Object) = Nothing
@@ -1341,7 +1343,7 @@ Namespace Modelos
End If
End Sub
- Public Sub GuardarVenta(ByRef factura As Modelos.Factura, ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, ByRef TmpDTDetalle As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, Optional ByRef ObjOS As ClsOS = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjCGame As ClsCGame = Nothing, ByRef Optional ObjCliente As ClsClientes = Nothing, Optional EsNotaCredito As Boolean = False, Optional ObjAcum As ClsAcumuladores = Nothing)
+ Public Sub GuardarVenta(ByRef factura As Modelos.Factura, ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, ByRef TmpDTDetalle As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, Optional ByRef ObjOS As ClsOS = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjCGame As ClsCGame = Nothing, ByRef Optional ObjCliente As ClsClientes = Nothing, Optional EsNotaCredito As Boolean = False, Optional ObjAcum As ClsAcumuladores = Nothing, ByRef Optional Resp As MMensajeFactura = Nothing)
Dim Msgok As New StringBuilder
factura.CvePrePoliza = ObjConta.AddPrePolizas("Modelos/GuardarVentaM", factura.CvePlantillaPoliza, factura.TotalTC, factura.TotalTC, factura.CveMoneda, factura.Fecha, If(factura.CveEmpresaCRM > 0, factura.EmpresaCRM, factura.Cliente.Nombre), factura.CveUsuario, factura.CveEmpresa)
@@ -1375,11 +1377,6 @@ Namespace Modelos
factura.Timbre.Comprobante.Serie = ObjVentas.Serie
factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString
-
- If Not GuardarUsados(ObjVentas.IniciaTransacSQL, ObjVentas, factura) Then
- ErrorList.Add("Error al guardar usados")
- End If
-
If factura.TipoDocto = "Egs" AndAlso NuevaFactura = 1 Then
If DtVentasNC Is Nothing Then
InicializaDTVentasNC()
@@ -1452,6 +1449,11 @@ Namespace Modelos
End If
Next
+ 'GUARDAR USADOS
+ If Not GuardarUsados(ObjAcum, ObjVentas, ObjInventario, factura, Resp) Then
+ ErrorList.Add("Error al guardar usados")
+ End If
+
'BONIFICACION USADOS
If UsadosBonificacion IsNot Nothing AndAlso UsadosBonificacion.Count > 0 AndAlso TipoBonificacion > 0 Then
For Each CveMovto In UsadosBonificacion
@@ -1627,10 +1629,10 @@ Namespace Modelos
If ErrorList.Count = 0 Then
'prepoliza
- GuardarVentaPrePolizas(factura, ObjConta, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos)
+ GuardarVentaPrePolizas(factura, ObjConta, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, ObjInventario:=ObjInventario)
If ErrorList.Count = 0 Then
'inventarios
- GuardarVentaInventarios(factura, ObjInventario, ObjConta)
+ GuardarVentaInventarios(factura, ObjInventario, ObjConta, ObjVentas, ObjAcum)
'GuardaRecepcionUsados(factura, ObjInventario, ObjConta)
@@ -1910,7 +1912,7 @@ Namespace Modelos
DtVentasNC.Rows.Add(Dr)
End If
End Sub
- Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, ByRef ObjVentas As ClsVentas, factura As Modelos.Factura) As Boolean
+ Private Function GuardarUsados(ByRef ObjAcum As ClsAcumuladores, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, factura As Modelos.Factura, ByRef Optional Resp As MMensajeFactura = Nothing) As Boolean
Dim Resultado As Boolean = True
If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 AndAlso factura.TipoDocto.Contiene("Ing", "Rem") Then
@@ -1918,8 +1920,6 @@ Namespace Modelos
If factura.TipoDocto = "Ing" AndAlso factura.Cliente.EsDistribuidor Then
Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero
- Dim ObjAcum As New ClsAcumuladores(SqlTransaccion)
-
For Each drow As DataRow In factura.DtDetalle.Rows
If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, factura.CveVenta, UsuarioActual.CveUsuario,
@@ -1944,6 +1944,64 @@ Namespace Modelos
End If
End If
+ 'SI ES UNA RNC DE CARGO GENERA EL MOVIMIENTO DE ALMACEN AQUI
+ If factura.TipoDocto = "RNC" AndAlso factura.Num1 = 1 AndAlso factura.DtMovimientosUsados IsNot Nothing AndAlso ObjAcum IsNot Nothing Then
+ 'Dim Mensaje As String = ""
+ Dim CveMovimiento = ObjInventario.AddMovimiento(factura.CveAlmacen, factura.CveConceptoMovimiento, 1, factura.Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, factura.CveVenta,
+ CveSubProyecto, CveActivoFijo:=-1, Guia:="", Observaciones:=factura.ObservacionesMovimiento, CvePersonal:=-1, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, Modulo:="RU/G")
+ If CveMovimiento <= 0 Then
+ 'Mensaje = "Error al guardar los movimientos"
+ Resultado = False
+ Else
+
+
+ For Each Dr As DataRow In factura.DtMovimientosUsados.Rows
+
+ Dim ImporteConcepto As Decimal = 0
+ If factura.CveConceptoMovimiento = 42 AndAlso factura.CveMoneda = 2 Then
+ ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(factura.Fecha).ToDecimal
+ Else
+ ImporteConcepto = Dr("PU").ToString.ToDecimal
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ 'Mensaje = "Error al guardar los movimientos"
+ Resultado = False
+ Exit For
+ End If
+
+ If CveVenta > 0 AndAlso Not ObjVentas.UpdateVentaUsadoRecibido(CveVenta, Dr("CvePS").ToString.ToEntero, True, CveMovimiento) Then
+ 'Mensaje = "Error al actualizar el recibo de los usados"
+ Resultado = False
+ Exit For
+ End If
+
+ 'si es selectedvalue = 42, es entrada ,3 -salida
+ Dim CveConceptoUsados As Integer = If(factura.CveConceptoMovimiento = 42, 1, 2)
+
+ If factura.Cliente.EsDistribuidor AndAlso factura.CveConceptoMovimiento = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
+
+ If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
+ UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
+ ' Mensaje = "Error al guardar Movimientos de distribuidor"
+ Resultado = False
+ Exit For
+ End If
+
+ End If
+ Next
+ End If
+
+ Resp.CveMovimientoUsado = CveMovimiento
+
+ If CveMovimiento > 0 Then
+ If ObjInventario.GetMovimientos(CveMovimiento, -1, -1, UsuarioActual.CveEmpresa) Then
+ Resp.FolioUsado = ObjInventario.DtResultados.FiltroPrimeroValor("Folio")
+ End If
+ End If
+
+ End If
+
Return Resultado
End Function
@@ -1968,7 +2026,7 @@ Namespace Modelos
Return Resultado
End Function
- Private Sub GuardarVentaPrePolizas(ByRef factura As Modelos.Factura, ByRef ObjConta As ClsContabilidad, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing)
+ Private Sub GuardarVentaPrePolizas(ByRef factura As Modelos.Factura, ByRef ObjConta As ClsContabilidad, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjInventario As ClsInventarios = Nothing)
Dim CveIE As Integer = -1
Dim DT As DataTable = Nothing
@@ -1986,7 +2044,7 @@ Namespace Modelos
'P R E P O L I Z A S
If Me.TipoDocto <> "Cot" Then
If Me.CvePrePoliza > 0 Then
- If ProcesoPrepolizas(factura, ObjConta, CveIE, TmpDTDetalleMovimientos, objContPaqi, 1, ObjBancos, ObjVentas, ObjEventos:=ObjEventos) Then
+ If ProcesoPrepolizas(factura, ObjConta, CveIE, TmpDTDetalleMovimientos, objContPaqi, 1, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, ObjInventario:=ObjInventario) Then
ErrorList.Add("Ocurrió un error al agregar los Movimientos de la prepoliza.
Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
End If
Else
@@ -1997,7 +2055,7 @@ Namespace Modelos
Private Function ProcesoPrepolizas(ObjFactura As Factura, ByRef ObjConta As ClsContabilidad, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi,
Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing,
Optional ByRef DtRemisionesRelacionadas As DataTable = Nothing, Optional SeCancelaRemisionProceso As Boolean = False, Optional CancelarRemisiones As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing,
- Optional CveEstatusRefacturacion As Integer = 0) As Boolean
+ Optional CveEstatusRefacturacion As Integer = 0, Optional ByRef ObjInventario As ClsInventarios = Nothing) As Boolean
Dim ErrorPrepoliza As Boolean = False
Try
Dim DT As DataTable
@@ -2177,12 +2235,48 @@ Namespace Modelos
IdCtaContableCliente = IdCtaContable
CveCuentaCliente = CveCuenta
- If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ Dim CveMovimiento As Integer = -1
+ Dim CveAlmacen As Integer = -1
+
+ If ObjInventario IsNot Nothing AndAlso ObjInventario.GetInv_Mov(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then
+ CveMovimiento = ObjInventario.DtResultados.FiltroPrimeroValor("CveMovimiento", "CvePS IS NULL AND CveConcepto = 42").ToEntero()
+ CveAlmacen = ObjInventario.DtResultados.FiltroPrimeroValor("CveAlmacen", "CvePS IS NULL AND CveConcepto = 42").ToEntero()
+ End If
+
+ 'VERIFICA SI TIENE MOVIMIENTO DE ENTRADA DE USADO
+ If CveMovimiento > 0 AndAlso CveAlmacen > 0 Then
+
+ If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
+ Dim Importe68 As Decimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL
+
+ Dim IdCtaContable68 = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacen}").ToEntero
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, Importe68, Referencia, 68, Concepto, FechaMovimiento, IdCtaContable68, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=Importe68, Contabilizable:=False) Then
+ ErrorPrepoliza = True
+ End If
+
+ Dim Importe318 As Decimal = importeMovimiento - Importe68
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, Importe318, Referencia, 318, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Importe318, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ End If
+
+ Else
ErrorPrepoliza = True
End If
+
Else
- ErrorPrepoliza = True
+ If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ End If
+ Else
+ ErrorPrepoliza = True
+ End If
End If
importeMovimiento = 0
@@ -3487,7 +3581,7 @@ Namespace Modelos
Return OcurrioError
End Function
- Private Function GuardarVentaInventarios(ByRef factura As Modelos.Factura, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad) As Boolean
+ Private Function GuardarVentaInventarios(ByRef factura As Modelos.Factura, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, ObjVentas As ClsVentas, ObjAcum As ClsAcumuladores) As Boolean
Dim OcurrioError As Boolean = False
If UsuarioActual.Empresa.UsaInventarios AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then
@@ -4311,7 +4405,7 @@ Namespace Modelos
If CveEstatusFacturaAsignado <= 0 Then
Try
If ObjFactura.FolioFiscal <> "" Then
- If ObjFactura.TipoDocto.Contiene("Ing", "Ant", "Dev", "Egs", "RNC") Then
+ If ObjFactura.TipoDocto.Contiene("Ing", "Ant", "Dev", "Egs") Then
Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), UsuarioActual.Empresa.FacturaProduccion)
@@ -4891,6 +4985,8 @@ Namespace Modelos
CveEstatus = 12
Case "Com"
CveEstatus = 9
+ Case "Cot"
+ CveEstatus = 10
Case "Ped", "DPe"
CveEstatus = 14
End Select
@@ -5591,6 +5687,7 @@ Namespace Modelos
Public Property FacturaMateriales As Integer
Public Property TipoDescuento As Integer
Public Property SubProyectoPorcentajeIVA As Double
+ Public Property PorcentajeIVA As Double
Public Property CveAlmacenOrigenContrato As Integer
Public Property CveDevolucion As Integer
Public Property TotalOtrosConceptos As Decimal
@@ -5604,6 +5701,9 @@ Namespace Modelos
Public Property CveAnticipo As Integer
Public Property RemisionesLista As List(Of Integer)
Public Property CveAlmacen As Integer
+ Public Property CveConceptoMovimiento As Integer
+ Public Property ObservacionesMovimiento As String
+ Public Property DtMovimientosUsados As DataTable
Public Property CveAlmacenDevolucion As Integer
Public Property CveVenta As Integer
Public Property CveEmpresa As Integer
@@ -5982,14 +6082,16 @@ Namespace Modelos
Public Property FemsaFactura As Modelos.FemsaFactura
Public Sub SetSubProyecto()
- If CveSubProyecto > 0 Then
- SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
+ If CveSubProyecto > 0 AndAlso UsuarioActual IsNot Nothing Then
+ SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
End If
End Sub
Public Sub SetSubProyectoMatriz()
- Dim Row As Data.DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")
- If Not IsNothing(Row) Then
- SubProyectoMatriz = New Modelos.SubProyectoModel(Row)
+ If UsuarioActual IsNot Nothing Then
+ Dim Row As Data.DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")
+ If Not IsNothing(Row) Then
+ SubProyectoMatriz = New Modelos.SubProyectoModel(Row)
+ End If
End If
End Sub
Public Sub SetCliente()
@@ -6033,7 +6135,7 @@ Namespace Modelos
End Sub
Public Sub SetSubProyecto(obj As ClsPaginas)
If CveSubProyecto > 0 AndAlso Not IsNothing(obj) Then
- SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
+ SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=obj.UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
End If
End Sub
Public Sub SetSubProyectoMatriz(obj As ClsPaginas)
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb
index 95c54e78b..d2b995433 100644
--- a/Inventarios/RecepcionUsados.aspx.vb
+++ b/Inventarios/RecepcionUsados.aspx.vb
@@ -1052,10 +1052,11 @@ Partial Class Inventarios_RecepcionUsados
Protected Sub Guardar(Optional GenerarRNC As Boolean = False)
If GvM.Rows.Count > 0 Then
Dim Msg As New StringBuilder()
-
+ Dim Resp As Modelos.Factura.MMensajeFactura = Nothing
Dim ObjInventario As New ClsInventarios
Dim ObjAcum As New ClsAcumuladores(ObjInventario.IniciaTransacSQL())
Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL())
+ Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim ErrorMovInv As Boolean = False
Dim ErrorAC As Boolean = False
@@ -1089,93 +1090,116 @@ Partial Class Inventarios_RecepcionUsados
CveVenta = -1
End If
+
If Not ErrorMovInv AndAlso GenerarRNC AndAlso ObjRemisionNC IsNot Nothing Then
CargaDTDetalleRNC()
- Dim Resp = ObjRemisionNC.EmitirFactura(False, ObjInventario.IniciaTransacSQL)
- For Each mensaje2 As String In Resp.Mensajes
- Msg.AppendFormat("
{0}", mensaje2)
- Next
+ Resp = ObjRemisionNC.EmitirFactura(False, ObjInventario.IniciaTransacSQL)
+ 'For Each mensaje2 As String In Resp.Mensajes
+ ' Msg.AppendFormat("
{0}", mensaje2)
+ 'Next
If Resp.TieneError Then ErrorMovInv = True
- Alert(Msg.ToString, If(Resp.CveVenta > 0, TipoMensaje.MsgInformacion, TipoMensaje.MsgAdvertencia))
+ 'Alert(Msg.ToString, If(Resp.CveVenta > 0, TipoMensaje.MsgInformacion, TipoMensaje.MsgAdvertencia))
CveVenta = Resp.CveVenta
+
End If
- CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta,
+ Dim Mensaje As String = ""
+ Dim FolioInv As String = ""
+
+ If GenerarRNC Then
+ CveMovimiento = Resp.CveMovimientoUsado
+ FolioInv = Resp.FolioUsado
+ Else
+
+ CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta,
CveSubProyecto, ActivoFijo, Guia:=TxtGuia.Text, Observaciones:=TxtObservaciones.Text, CvePersonal:=DdlPersonal.SelectedValue.ToEntero,
Recibio:=TxtResponsable.Text.Trim, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, DepartamentoEntrega:=TxtDepartamentoEntrega.Text,
PedidoContrato:=TxtPedidoContrato.Text, CveProveedor:=tCveProveedor, Modulo:="RU/G")
- If CveMovimiento <= 0 Then
- Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- ObjInventario.RollBack() 'deshace lo insertado
- Else
- Dim Mensaje As String = ""
+ If CveMovimiento <= 0 Then
+ Mensaje = "Error al guardar los movimientos"
+ ErrorMovInv = True
+ Else
+ FolioInv = ObjInventario.Folio.ToString()
+ For Each Dr As DataRow In DtMovimientos.Rows
+ If CveConcepto = 42 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then
+ ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
+ Else
+ ImporteConcepto = Dr("PU").ToString.ToDecimal
+ End If
- For Each Dr As DataRow In DtMovimientos.Rows
-
- If CveConcepto = 42 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then
- ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
- Else
- ImporteConcepto = Dr("PU").ToString.ToDecimal
- End If
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
- Mensaje = "Error al guardar los movimientos"
- ErrorMovInv = True
- Exit For
- End If
-
- If CveVenta > 0 AndAlso Not ObjVentas.UpdateVentaUsadoRecibido(CveVenta, Dr("CvePS").ToString.ToEntero, True, CveMovimiento) Then
- Mensaje = "Error al actualizar el recibo de los usados"
- ErrorMovInv = True
- Exit For
- End If
- 'si es selectedvalue = 42, es entrada ,3 -salida
- Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 42, 1, 2)
-
- If EsDistribuidor AndAlso RBLOpcion.SelectedValue.ToEntero = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
-
- If Not ObjAcum.DistribuidorMovtosAdd(DdlClientes.SelectedValue.ToEntero, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
- UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
- Mensaje = "Error al guardar Movimientos de distribuidor"
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ Mensaje = "Error al guardar los movimientos"
ErrorMovInv = True
Exit For
End If
- End If
- Next
+ If CveVenta > 0 AndAlso Not ObjVentas.UpdateVentaUsadoRecibido(CveVenta, Dr("CvePS").ToString.ToEntero, True, CveMovimiento) Then
+ Mensaje = "Error al actualizar el recibo de los usados"
+ ErrorMovInv = True
+ Exit For
+ End If
- If Not ErrorMovInv Then
+ 'si es selectedvalue = 42, es entrada ,3 -salida
+ Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 42, 1, 2)
+ If EsDistribuidor AndAlso RBLOpcion.SelectedValue.ToEntero = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
- Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", ObjInventario.Folio, CveMovimiento)
- Msg.AppendFormat("
Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento)))
+ If Not ObjAcum.DistribuidorMovtosAdd(DdlClientes.SelectedValue.ToEntero, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
+ UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
+ Mensaje = "Error al guardar Movimientos de distribuidor"
+ ErrorMovInv = True
+ Exit For
+ End If
- If IDPoliza > 0 Then Msg = Msg.AppendFormat("
Ver Póliza", IDPoliza)
+ End If
+ Next
- ObjInventario.Commit() ' aplica los movimientos insertados
+ 'GENERA LA PREPOLIZA DE ALMACEN VS EL CONCEPTO DE RNC
+ 'If Not ErrorMovInv Then
+ ' ErrorMovInv = Not GeneraPrePoliza(CveMovimiento, ObjInventario, ObjConta, True)
+ 'End If
- 'Limpia Valores cuando inserta de campos especiales
- If UsuarioActual.CveEmpresa = 66 Then
- DdlSubProyecto.SelectedValueExist("-1")
- End If
-
- ' EnvioCorreo()
-
- CargaPendientesRecibir()
- UPDatos.Update()
-
- Else
- ObjInventario.RollBack() 'deshace lo insertado
- CveMovimiento = 0
- Alert("ocurrió un Error al registrar los movimientos", TipoMensaje.MsgError)
End If
End If
+
+
+ If Not ErrorMovInv Then
+ If Resp IsNot Nothing Then
+ For Each mensaje2 As String In Resp.Mensajes
+ Msg.AppendFormat("
{0}", mensaje2)
+ Next
+ End If
+ End If
+
+ If Not ErrorMovInv Then
+
+ Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", FolioInv, CveMovimiento)
+ Msg.AppendFormat("
Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento)))
+
+ If IDPoliza > 0 Then Msg = Msg.AppendFormat("
Ver Póliza", IDPoliza)
+
+ ObjInventario.Commit() ' aplica los movimientos insertados
+
+ 'Limpia Valores cuando inserta de campos especiales
+ If UsuarioActual.CveEmpresa = 66 Then
+ DdlSubProyecto.SelectedValueExist("-1")
+ End If
+
+ ' EnvioCorreo()
+
+ CargaPendientesRecibir()
+ UPDatos.Update()
+
+ Else
+ ObjInventario.RollBack() 'deshace lo insertado
+ CveMovimiento = 0
+ Alert("ocurrió un Error al registrar los movimientos", TipoMensaje.MsgError)
+ End If
End If
Catch ex As Exception
ObjInventario.RollBack() 'deshace lo insertado
@@ -1202,6 +1226,94 @@ Partial Class Inventarios_RecepcionUsados
End Sub
+ Private Function GeneraPrePoliza(CveMovimiento As Integer, ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad, EsContabilizable As Boolean) As Boolean
+ Dim Correcto As Boolean = True
+ Try
+ Dim DtCostos As DataTable = Nothing
+ Dim ValorInventario As Decimal = 0
+ Dim ValorInventarioME As Decimal = 0
+
+
+ ObjInventario.GetMovimientos(CveMovimiento, -1, -1, UsuarioActual.CveEmpresa)
+ Dim CveVenta As Integer = ObjInventario.CveVenta
+ Dim CveAlmacen As Integer = ObjInventario.CveAlmacen
+ Dim SerieFolio As String = ObjInventario.DtResultados.Rows(0)("SerieFolioVenta").ToString
+ Dim MovAlmacen As Boolean = True
+ Dim CveConcepto As Integer = ObjInventario.DtResultados.Rows(0)("CveConcepto").ToString().ToEntero()
+ Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & CveConcepto).ToEntero
+ If OrigenMov = 1 Then MovAlmacen = False Else MovAlmacen = True
+
+ If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
+ DtCostos = ObjInventario.DtResultados
+ Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
+ Dim IdCtaContable As Integer = 0
+ Dim ConceptoPoliza As String = String.Format("{0}-{1}", "Salida de Almacen", SerieFolio)
+
+ If tmpCostos.Rows.Count > 0 Then
+ Dim Concepto As String = ConceptoPoliza
+ Dim CvePrePoliza = ObjConta.AddPrePolizas("Inv_EntradaSalida", 74, DtCostos.SUM("Total"), DtCostos.SUM("Total"), 1, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ Dim tCveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen={CveAlmacen}").ToEntero
+ Dim tCveConcepto As Integer = 278
+
+ For Each RowInv As DataRow In tmpCostos.Rows
+ ValorInventario = DtCostos.SUM("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").ToString.ToDecimal.RoundSQL
+ If tCveConcepto = 69 Then
+ IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not MovAlmacen, ValorInventario, Concepto, tCveConcepto, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ValorInventario, CveSubProyecto:=tCveSubProyecto, Contabilizable:=EsContabilizable) Then
+ Correcto = False
+ Exit For
+ End If
+ Next
+
+ IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacen}").ToEntero
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, MovAlmacen, DtCostos.SUMD("Total").RoundSQL, Concepto, 68, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=DtCostos.SUMD("Total").RoundSQL, Contabilizable:=EsContabilizable) Then
+ Correcto = False
+ End If
+
+
+ If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
+ If ObjConta.ValorPolizaDescuadre > 0 Then
+ GuardaLogAD($"Inventarios/RecepcionAlmacen-PPCompOC | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
+ Correcto = False
+ End If
+ End If
+
+ 'CONTABILIZAR - SIMPLIFICAR
+ If Correcto Then
+ If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
+ If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then
+ Correcto = False
+ End If
+ End If
+
+ 'If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
+ ' If ObjContaContPAQ Is Nothing Then
+ ' ObjContaContPAQ = New ClsContPAQi(UsuarioActual.Empresa)
+ ' ObjContaContPAQ.IniciaTransacSQL()
+ ' End If
+
+ ' If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaContPAQ) Then
+ ' Retorno = False
+ ' End If
+ 'End If
+
+ End If
+ Else
+ Correcto = False
+ End If
+ Else
+ Correcto = False
+ End If
+ Catch ex As Exception
+ OnError("Ocurrió un error al guadar la prepoliza", ex)
+ Correcto = False
+ End Try
+
+ Return Correcto
+ End Function
#End Region
#Region " ADD INVENTARIO INICIAL "
@@ -2451,6 +2563,12 @@ Partial Class Inventarios_RecepcionUsados
ObjRemisionNC.IEPS = ImporteIEPS
ObjRemisionNC.Total = Total
ObjRemisionNC.TotalOtrosConceptos = 0
+
+
+ ObjRemisionNC.DtMovimientosUsados = DtMovimientos
+ ObjRemisionNC.CveAlmacen = DdlAlmacen.SelectedValue.ToEntero()
+ ObjRemisionNC.ObservacionesMovimiento = TxtObservaciones.Text
+ ObjRemisionNC.CveConceptoMovimiento = CveConcepto
End Sub
Protected Sub CargaTamaños()
diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index 32824988f..9b0f018b9 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -245,7 +245,7 @@