diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb
index d7134d6b8..c37e75652 100644
--- a/App_Code/ClsAcumuladores.vb
+++ b/App_Code/ClsAcumuladores.vb
@@ -898,7 +898,7 @@ Public Class ClsAcumuladores
End Function
#End Region
- Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,
+ Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Decimal, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,
CveEmpresa As Integer, ImporteCompras As Decimal, Observaciones As String, Optional CveMovimiento As Integer = -1) As Boolean
Dim Retorno As Boolean = False
'Data = New DataTable
@@ -907,7 +907,7 @@ Public Class ClsAcumuladores
With SqlAdapter.SelectCommand.Parameters
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
- .Add("@Cantidad", SqlDbType.Int).Value = Cantidad
+ .Add("@Cantidad", SqlDbType.Decimal).Value = Cantidad
.Add("@CveTamaño", SqlDbType.Int).Value = CveTamaño
.Add("@CveConcepto", SqlDbType.Int).Value = CveConcepto
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 2a0131d71..bbe9ae2b3 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -5129,7 +5129,7 @@ Namespace Modelos
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
+ Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index 08553cbad..ccd51ab6e 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -4570,7 +4570,7 @@
Contrato:
-
+
Moneda:
@@ -6038,6 +6038,15 @@
Facturas Relacionadas
+
+
+
+
+
+
+
+
+
@@ -6048,15 +6057,6 @@
Agregar
-
-
-
-
-
-
-
-
-
@@ -7235,13 +7235,14 @@
TxtImporte.value = FormatoNumero(Saldo, 2);
}
} else {
- if (SaldoMaximoUtilizable > 0) {
- TxtImporte.value = "";
- Chk.checked = false;
- } else {
- TxtImporte.value = FormatoNumero(Saldo, 2);
- }
-
+ TxtImporte.value = "";
+ Chk.checked = false;
+ //if (SaldoMaximoUtilizable > 0) {
+ // TxtImporte.value = "";
+ // Chk.checked = false;
+ //} else {
+ // TxtImporte.value = FormatoNumero(Saldo, 2);
+ //}
}
} else {
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 215665354..70a6134cf 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -2721,7 +2721,7 @@ Partial Class Ventas
ImgOtrosConceptos.Visible = False
TrFormaEntrega.Visible = False
TabDetalleVentas.Visible = False
- TabE.Visible = False
+ 'TabE.Visible = False
LnkOCs.Visible = False
GvPS.Columns(8).Visible = False
TrEdit.Visible = True
@@ -3526,6 +3526,8 @@ Partial Class Ventas
End If
End If
+ CalculaUsados()
+
CalculaTotalesVenta()
LbAgregar.Visible = False
UpPS.Update()
@@ -5690,7 +5692,7 @@ Partial Class Ventas
DivVentasUsados.Visible = True
Dim ObjClientes As New ClsClientes
- If ObjClientes.GetHistorialVentas(CveCliente, 1000, CveClienteSucursal:=-1, TipoDocto:="Ing", CveEstatusFactura:=-1, FechaI:=Now.AddMonths(-1)) Then
+ If ObjClientes.GetHistorialVentas(CveCliente, CveClienteSucursal:=-1, TipoDocto:="Ing", CveEstatusFactura:=-1, FechaI:=Now.AddMonths(-1)) Then
DdlVentaUsado.DataSource = ObjClientes.DtResultados.FiltraParametros("UsadoMarcado = 0")
End If
ObjClientes.Dispose()
@@ -5789,7 +5791,7 @@ Partial Class Ventas
UpFacturasRelacionadas.Update()
End Sub
Protected Sub CreaTmpFacturasRelacionadas()
- If CveVenta <= 0 Then
+ If CveVenta <= 0 OrElse EsCreaApartirDe Then
Me.TmpDTFacturasRelacionadas = New DataTable()
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("CveVenta", GetType(Integer)))
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("SerieFolio", GetType(String)))
@@ -5797,7 +5799,7 @@ Partial Class Ventas
End If
End Sub
Protected Sub LnkAgregarFacturaRelacionada_Click(sender As Object, e As EventArgs)
- If CveVenta <= 0 Then
+ If CveVenta <= 0 OrElse EsCreaApartirDe Then
If Me.TmpDTFacturasRelacionadas Is Nothing Then
CreaTmpFacturasRelacionadas()
End If
@@ -5827,7 +5829,7 @@ Partial Class Ventas
End Sub
Protected Sub BtnAgregarFacturasRelaciondas_Click(sender As Object, e As EventArgs)
- If CveVenta <= 0 Then
+ If CveVenta <= 0 OrElse EsCreaApartirDe Then
If Me.TmpDTFacturasRelacionadas Is Nothing OrElse Me.TmpDTFacturasRelacionadas.Rows.Count = 0 Then
Me.AplicaRelacionManual = False
Alert("No hay facturas para relacionar", TipoMensaje.MsgAdvertencia)
@@ -7002,7 +7004,7 @@ Partial Class Ventas
End If
If (CveVenta > 0 And DdlTipoComprobante.SelectedValue <> "Cot") AndAlso Not AplicaDevolucion Then
- If e.Row.DBCampo("CveConcepto").ToEntero() = 3 Then CveAlmacenDevolucion = e.Row.DBCampo("CveAlmacen").ToEntero()
+ If e.Row.DBCampo("CveConcepto").ToEntero().Contiene(3, 40) Then CveAlmacenDevolucion = e.Row.DBCampo("CveAlmacen").ToEntero()
e.Row.FCCheckBox("cbInv").Visible = False
End If
@@ -8197,7 +8199,7 @@ Partial Class Ventas
'MUESTA ALERT OK
' si es elrol 1165-Ventas,EMp:80, o la empresa 119, recarga ventas, para seguir registrando-.
- Dim Liga = If(UsuarioActual.CveRol = 1165 Or UsuarioActual.CveEmpresa = 119, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", If(CveEmpresaCRM > 0, $"document.location.href=""/CRM/EmpresaCRM.aspx?CveEmpresaCRM={CveEmpresaCRM}"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=3"";"))
+ Dim Liga = If(UsuarioActual.CveRol = 1165 Or UsuarioActual.CveEmpresa = 119, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", If(CveEmpresaCRM > 0, $"document.location.href=""/CRM/EmpresaCRM.aspx?CveEmpresaCRM={CveEmpresaCRM}"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=2"";"))
Alert(MensajeAlert.ToString(), TipoMensaje.MsgInformacion, Liga)
MensajeAlert.Clear()
@@ -9677,7 +9679,7 @@ Partial Class Ventas
If ObjFolios.GetFolios(TipoDoctoConsulta, UsuarioActual.CveEmpresa) Then
Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format(" CveSubProyecto = {0} And Estado = 'Activo'", DdlSubProyectoDatos.SelectedValue))
If DT.Rows.Count > 0 Then
- ObjFactura.Serie = DT.Rows(0)("Serie").ToString()
+ ObjFacturaDevolucion.Serie = DT.Rows(0)("Serie").ToString()
End If
DT.Dispose()
End If
@@ -10736,9 +10738,34 @@ Partial Class Ventas
'SI SE FACTURA UNA RNC SE MUESTRA
If UsuarioActual.CveEmpresa = 140 AndAlso factura.TipoDocto = "Egs" Then
If Row("CveVentaDetalleRNC").ToString().ToEntero() > 0 Then
+
If Not ObjVentas.AddVentaDetalleRNCFacturada(Row("CveVentaDetalleRNC").ToString().ToEntero(), ObjVentas.CveVentaDetalle, Row("Cantidad").ToString().ToDecimal()) Then
ErrorList.Add("Ocurrió un error al agregar la venta detalle devolución.")
End If
+
+ 'SI SE FACTURAN RNC DE CARGO, SE AGREGA EL CONCEPTO DE ACREDITAMIENTO
+ If ClienteEsDistribuidor AndAlso RblRNCTipo.SelectedValue = "1" Then
+ Dim ObjAcum As New ClsAcumuladores(ObjVentas.IniciaTransacSQL())
+
+ Dim CvePSCargo As Integer = -1
+ For Each RNC In ListaRemisionesNC
+ CvePSCargo = RNC.DtDetalle.FiltroPrimeroValor("CvePS", $"CveVentaDetalle={Row("CveVentaDetalleRNC").ToString()}").ToEntero()
+ If CvePSCargo > 0 Then
+ Exit For
+ End If
+ Next
+
+ Dim CveTamanio As Integer = GlobalDTAcumTamaños().FiltroPrimeroValor("CveTamaño", $"CvePSCargo={CvePSCargo}").ToEntero()
+
+ If CveTamanio > 0 Then
+ If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Row("Cantidad").ToString().ToDecimal(), CveTamanio, 6, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then
+ ErrorList.Add("Ocurrió un error al agregar la venta detalle devolución.")
+ Exit For
+ End If
+ End If
+
+ End If
+
End If
End If
@@ -14666,7 +14693,7 @@ Partial Class Ventas
'MUESTA Alert OK
'MensajeAlert.Append("El Documento se generó correctamente")
- Dim Liga = If(UsuarioActual.CveRol = 1165, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=3"";")
+ Dim Liga = If(UsuarioActual.CveRol = 1165, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=2"";")
Alert(MensajeAlert.ToString(), TipoMensaje.MsgInformacion, Liga)
TrEmitir.Visible = False
@@ -15728,7 +15755,13 @@ Partial Class Ventas
TrVistaPrevia.Visible = True
UpFacturar.Update()
Else
- Alert("No tiene registrados Folios para " & DdlTipoComprobante.SelectedItem.Text & " en esta sucursal.", TipoMensaje.MsgAdvertencia)
+
+ If DdlTipoComprobante.Items.Count > 0 Then
+ Alert("No tiene registrados Folios para " & DdlTipoComprobante.SelectedItem.Text & " en esta sucursal.", TipoMensaje.MsgAdvertencia)
+ Else
+ Alert("No tiene permisos para generar ningun tipo de documento.", TipoMensaje.MsgAdvertencia)
+ End If
+
TrEmitir.Visible = False
TrVistaPrevia.Visible = False
BtnCrearApartirDe.Enabled = False
@@ -17718,6 +17751,7 @@ Partial Class Ventas
DtRemConceptosSurtidos = Nothing
Dim TieneMovimientosSinCosto As Boolean = False
+ Dim TieneMovimientosContrato As Boolean = False
'Obtenemos los movimientos detalle
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
@@ -17755,6 +17789,8 @@ Partial Class Ventas
TieneMovimientosSinCosto = DtMovimientosDetalles.COUNT("CveTipoAlmacen", "CveTipoAlmacen=26") > 0
+ TieneMovimientosContrato = DtMovimientosDetalles.COUNT("CveTipoAlmacen", "CveTipoAlmacen IN (11)") > 0
+
For Each dr As DataRow In DtMovimientos.Rows
'Obtenemos los Movimientos de salida
If ObjInventario.GetMovimientos(dr("CveMovimiento").ToString().ToEntero(), ConceptoMovimiento, -1, UsuarioActual.CveEmpresa) Then
@@ -17777,7 +17813,12 @@ Partial Class Ventas
If TieneMovimientosSinCosto Then
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
Else
- MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND (TieneSalidaxFactura IS NULL OR SaldoAlmacen > 0)"))
+ If TieneMovimientosContrato Then
+ MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}"))
+ Else
+ MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND (TieneSalidaxFactura IS NULL OR SaldoAlmacen > 0)"))
+ End If
+
End If
Else
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
@@ -17831,10 +17872,6 @@ Partial Class Ventas
'Le damos salida normal
If ConSalida AndAlso Not OcurrioError Then
- If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
- OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura, ObjConta:=ObjConta)
- End If
-
If Not OcurrioError Then
GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenParaSalida, CveConceptoSalidaAlmacen, CveMoneda, ObjFactura.CveVenta, AplicaMovimientoDetalleEntrada:=AplicaMovimientoDetalleEntrada, MovimientoPrePoliza:=True, ObjConta:=ObjConta) > 0
@@ -17842,6 +17879,10 @@ Partial Class Ventas
OcurrioError = True
Exit For
End If
+
+ If Not OcurrioError AndAlso UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+ OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura, ObjConta:=ObjConta)
+ End If
End If
End If
@@ -18215,26 +18256,43 @@ Partial Class Ventas
Dim CveConceptoMovimientoVirtual As Integer = 37
Dim DtPSVirtual As DataTable = Nothing
Dim DtTamanios As DataTable = Nothing
- Dim CveMovimientoEntradaDev As Integer = -1
- Dim CveSubProyecto As Integer = -1
+ Dim CveMovimientoReferencia As Integer = -1
+ 'SI LA REMISION SE SURTIO CON USADOS UTILIZAR ESTE MOVIMIENTO
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
- Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND ((CveTipoAlmacen = 24 AND CveConcepto = 2) OR (CveTipoAlmacen = 1 AND CveConcepto = 8)) AND CveVenta > 0")
+ Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND (CveTipoAlmacen = 24 AND CveConcepto = 2) AND CveVenta > 0")
If RowMovimiento IsNot Nothing Then
- CveMovimientoEntradaDev = RowMovimiento("CveMovimiento").ToString().ToEntero()
+ CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero()
Dim tCveAlmacen = RowMovimiento("CveAlmacen").ToString().ToEntero()
- CveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {tCveAlmacen}").ToEntero()
CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=tCveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero()
-
- Else
- OcurrioError = True
End If
Else
OcurrioError = True
End If
- If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntradaDev, UsuarioActual.CveEmpresa) Then
+
+ 'SI NO SE SURTIO LA REMSION CON USADOS, UTILIZAR EL MOVIMIENTO DE SALIDA DEL INGRESO
+ If CveMovimientoReferencia <= 0 Then
+ If ObjInventario.GetInv_Mov(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then
+ Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND ( (CveTipoAlmacen = 1 AND CveConcepto = 3) OR (CveTipoAlmacen = 10 AND CveConcepto = 40) ) AND CveVenta > 0")
+
+ If RowMovimiento IsNot Nothing Then
+ CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero()
+ Dim tCveAlmacen = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=tCveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero()
+
+ Else
+ OcurrioError = True
+ End If
+
+ Else
+ OcurrioError = True
+ End If
+ End If
+
+
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoReferencia, UsuarioActual.CveEmpresa) Then
DtPSVirtual = ObjInventario.DtResultados.Copy()
Else
OcurrioError = True
@@ -18242,13 +18300,13 @@ Partial Class Ventas
If Not OcurrioError AndAlso DtPSVirtual.Rows.Count > 0 Then
- CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/VV", CveMovimientoRelacionado:=CveMovimientoEntradaDev)
+ CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/VV", CveMovimientoRelacionado:=CveMovimientoReferencia)
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
@@ -18318,6 +18376,123 @@ Partial Class Ventas
OcurrioError = True
End Try
+ Return Not OcurrioError
+
+ End Function
+ Private Function GenerarMovimientoAlmacenVirtualConsignacion(CveVenta As Integer, CveAlmacenContrato As Integer, ByRef ObjInventario As ClsInventarios, ObjFactura As Modelos.Factura, Optional ByRef ObjConta As ClsContabilidad = Nothing) As Boolean
+ Dim OcurrioError As Boolean = False
+
+ If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+ Try
+ Dim CveMovimientoVirtual As Integer = -1
+ Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacenContrato).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero()
+
+ Dim CveConceptoMovimientoVirtual As Integer = 37
+ Dim DtPSVirtual As DataTable = Nothing
+ Dim DtTamanios As DataTable = Nothing
+ Dim CveMovimientoReferencia As Integer = -1
+ Dim CveSubProyecto As Integer = -1
+
+
+ If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
+ Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND ((CveTipoAlmacen = 24 AND CveConcepto = 2) OR (CveTipoAlmacen = 17 AND CveConcepto = 8)) AND CveVenta > 0")
+
+ If RowMovimiento IsNot Nothing Then
+ CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero()
+ Else
+ OcurrioError = True
+ End If
+
+ Else
+ OcurrioError = True
+ End If
+
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoReferencia, UsuarioActual.CveEmpresa) Then
+ DtPSVirtual = ObjInventario.DtResultados.Copy()
+ Else
+ OcurrioError = True
+ End If
+
+ If Not OcurrioError AndAlso DtPSVirtual.Rows.Count > 0 Then
+
+ CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/VV", CveMovimientoRelacionado:=CveMovimientoReferencia)
+
+ If CveMovimientoVirtual > 0 Then
+ For Each RowUsado As DataRow In DtPSVirtual.Rows
+ Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
+ Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
+ Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
+ Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
+ OcurrioError = True
+ Exit For
+ End If
+ Next
+ Else
+ OcurrioError = True
+ End If
+
+ 'Agregamos las PrePolizas
+ If Not OcurrioError Then
+ If CveMovimientoVirtual > 0 Then
+ 'OcurrioError = Not GeneraPrePolizaMovimientoAlmacen(ObjInventario, ObjConta, ObjContPaq, ObjFactura, ObjFactura.CvePrePoliza, CveMovimientoInventario, CveAlmacen)
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
+ Dim DtCostos = ObjInventario.DtResultados.Copy
+ Dim DtCostosDistinct As DataTable = ObjInventario.DtResultados.FiltraParametros("", "", {"CveClasificacion"})
+ Dim IdCtaContable As Integer = 0
+ Dim CveCuenta As Integer = 0
+ Dim ValorInventario As Decimal
+ Dim TotalCostoAcumulado As Decimal = 0D
+ Dim Cont As Integer = 1
+ Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
+
+ For Each RowInv As DataRow In DtCostosDistinct.Rows
+ ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundSQL
+ IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
+ CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
+ TotalCostoAcumulado += ValorInventario
+
+ 'cuando es el último movimiento y hay diferencias en los importes
+ If Cont = DtCostosDistinct.Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
+ ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
+ End If
+
+ Try
+ 'If ValorInventario <> 0 Then
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ValorInventario, ObjFactura.SerieFolio, 69, ObjFactura.SerieFolio, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString().ToEntero(), CveMovimientoAlmacen:=CveMovimientoVirtual, ImporteMX:=ValorInventario, CveCuenta:=CveCuenta, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
+ OcurrioError = True
+ Exit For
+ End If
+ 'End If
+ Catch ex As Exception
+ OcurrioError = True
+ Alert("Error inesperado (15148). Por favor comuniquese con atención SIG.", TipoMensaje.ToastError)
+ End Try
+ Cont += 1
+ Next
+
+ If Not OcurrioError Then
+ IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", CveAlmacenVirtual)).ToEntero()
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, TotalCosto, ObjFactura.SerieFolio, 68, ObjFactura.SerieFolio, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveMovimientoAlmacen:=CveMovimientoVirtual, ImporteMX:=TotalCosto, CveCuenta:=CveCuenta, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
+ OcurrioError = True
+ End If
+ End If
+ Else
+ OcurrioError = True
+ End If
+ End If
+ End If
+
+ End If
+
+ Catch ex As Exception
+ OnError("Ocurrió un error al generar el almacen virtual.", ex)
+ OcurrioError = True
+ End Try
+ End If
+
+
Return Not OcurrioError
End Function
@@ -22349,7 +22524,7 @@ Partial Class Ventas
Dim CveUnidad As Integer
Dim Cantidad As Double
Dim Existencia As Double
- For Each Dr As DataRow In TmpDT.Rows
+ For Each Dr As DataRow In TmpDT.FiltraParametros("CveTipoPS=2").Rows
CveProducto = Dr("CvePS").ToString().ToEntero()
CveUnidad = Dr("CveUM").ToString().ToEntero()
Cantidad = Dr("Cantidad").ToString().ToDouble
@@ -22443,6 +22618,11 @@ Partial Class Ventas
End If
+ If Not GenerarMovimientoAlmacenVirtualConsignacion(factura.CveVenta, CveAlmacenExistenciasContrato, ObjInventario, factura, ObjConta) Then
+ Return False
+ End If
+
+
Return True
End Function
@@ -23910,10 +24090,18 @@ Partial Class Ventas
If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then
Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2)
DivSMU.Visible = True
- HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString()
- LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2)
+
+ Dim SaldoMaximo As Decimal = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal()
+ If SaldoMaximo > 0 Then
+ HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString()
+ LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2)
+ Else
+ HdnSaldoMaximoUsados.Value = "0"
+ LtlSMU.Text = "0"
+ End If
+
Else
- DivSMU.Visible = False
+ 'DivSMU.Visible = False
HdnSaldoMaximoUsados.Value = "0"
LtlSMU.Text = "0"
End If
@@ -23953,8 +24141,15 @@ Partial Class Ventas
DivSMU.Visible = True
Dim FacUsado As New Modelos.Factura(UsuarioActual, CveVentaUsado, UsuarioActual.CveEmpresa)
Dim SaldoMaximoUsados As Decimal = FacUsado.DtDetalle.SUM("Total", "EsCargo = True").ToDecimal() + FacUsado.DtDetalle.SUM("ImporteIVA", "EsCargo = True").ToDecimal()
- HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
- LtlSMU.Text = String.Format("{0:N2}", SaldoMaximoUsados)
+
+ If SaldoMaximoUsados > 0 Then
+ HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
+ LtlSMU.Text = String.Format("{0:N2}", SaldoMaximoUsados)
+ Else
+ HdnSaldoMaximoUsados.Value = "0"
+ LtlSMU.Text = "0"
+ End If
+
Else
Dim ObjAcum As New ClsAcumuladores
If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then
@@ -23963,7 +24158,7 @@ Partial Class Ventas
HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString()
LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2)
Else
- DivSMU.Visible = False
+ 'DivSMU.Visible = False
HdnSaldoMaximoUsados.Value = "0"
LtlSMU.Text = "0"
End If
@@ -23995,9 +24190,14 @@ Partial Class Ventas
GvDescNCBonificaciones.DataBind()
Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal()
+ If SaldoMaximoUsados > 0 Then
+ LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados)
+ HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
+ Else
+ HdnSaldoMaximoUsados.Value = "0"
+ LtlSMU.Text = "0"
+ End If
- LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados)
- HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
UpDescNC.Update()
End Sub
@@ -27301,6 +27501,13 @@ Partial Class Ventas
BloqueaCondiconesPago()
+
+ DivDdlFacturaRela.Visible = True
+ BtnAgregarFacturasRelaciondas.Visible = True
+ DdlTipoRelacionARelacionar.Enabled = True
+
+ GvFacturasRelacionadas.Columns(2).Visible = True
+
UpnTools.Update()
UpCliente.Update()
UpParametros.Update()
@@ -27313,6 +27520,7 @@ Partial Class Ventas
UpEstatus.Update()
UpParametros.Update()
UpINV.Update()
+ UpFacturasRelacionadas.Update()
End Sub
#End Region