|
|
|
|
@@ -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
|
|
|
|
|
|