Funcionalidad para limite de credito y restricciones de venta

This commit is contained in:
2021-07-19 13:37:01 -07:00
parent 538f3b0985
commit fa562fec01

View File

@@ -2243,7 +2243,7 @@ Partial Class Ventas
CargaClasificaciones() CargaClasificaciones()
CargaPS(-1, DdlPS) CargaPS(-1, DdlPS)
CargaPSRemision(-1, DdlPSRemision) 'CargaPSRemision(-1, DdlPSRemision)
CargaPSPyME(-1, DdlPSPyME) CargaPSPyME(-1, DdlPSPyME)
CreaDTVentas() CreaDTVentas()
@@ -5181,7 +5181,8 @@ Partial Class Ventas
AgregarProductoServicio(dr("Cantidad").ToString().ToDecimal, dr("CveUM").ToString().ToEntero(), dr("UM").ToString(), dr("CveClasificacion").ToString().ToEntero(), dr("Clasificacion").ToString(), AgregarProductoServicio(dr("Cantidad").ToString().ToDecimal, dr("CveUM").ToString().ToEntero(), dr("UM").ToString(), dr("CveClasificacion").ToString().ToEntero(), dr("Clasificacion").ToString(),
dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal, dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal,
dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(), dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(),
CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True) CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(),
CveVentaDetalle:=dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True)
Next Next
@@ -5595,15 +5596,11 @@ Partial Class Ventas
ViewState("Vendedor") = ObjCliente.Vendedor ViewState("Vendedor") = ObjCliente.Vendedor
ViewState("CtaContable") = ObjCliente.CuentaContable ViewState("CtaContable") = ObjCliente.CuentaContable
ViewState("IdCtaContClientes") = ObjCliente.IdCtaContClientes ViewState("IdCtaContClientes") = ObjCliente.IdCtaContClientes
ViewState("CveCuentaClientes") = ObjCliente.CveCuentaClientes
ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera
ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria
ViewState("IdCtaContAnticipos") = ObjCliente.IdCtaContAnticipos ViewState("IdCtaContAnticipos") = ObjCliente.IdCtaContAnticipos
ViewState("CveCuentaAnticipos") = ObjCliente.CveCuentaAnticipos
ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA
ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA
ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR
ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR
ViewState("CodCliente") = ObjCliente.Codigo ViewState("CodCliente") = ObjCliente.Codigo
ViewState("CvePrecioLista") = ObjCliente.CvePrecioLista ViewState("CvePrecioLista") = ObjCliente.CvePrecioLista
@@ -6148,25 +6145,10 @@ Partial Class Ventas
End Sub End Sub
Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1) Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1)
'RMF. validacion temporal Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595)
'verifica si tiene autorizaciones de Nota de crédito autorizadas
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then ' si es empresa de acumuladores
Dim ObjVentas As New ClsVentas
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, -1, CveEstatus:=1) Then
Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="TipoAutorizacion")
If RowAutorizacion IsNot Nothing Then
DdlTipoComprobante.SelectedValueExistInsert("Egs", "Egresos")
End If
End If
ObjVentas.Dispose()
End If
'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO 'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO
If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta <= 0 Then
RBLPago.SelectedValue = "2" RBLPago.SelectedValue = "2"
RBLPago.Items(0).Enabled = False RBLPago.Items(0).Enabled = False
RBLPago_SelectedIndexChanged(Nothing, Nothing) RBLPago_SelectedIndexChanged(Nothing, Nothing)
@@ -6187,19 +6169,22 @@ Partial Class Ventas
End If End If
UPCondicionesPago.Update() UPCondicionesPago.Update()
'CARGAR CREDITO DISPONIBLE AL GENERAR UNA FACTURA 'CARGAR CREDITO DISPONIBLE AL GENERAR UNA FACTURA
ElseIf UsuarioActual.Empresa.Funcionalidad(596) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta < 1 Then End If
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0 AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito Then
If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then
RBLPago.SelectedValue = "1" RBLPago.SelectedValue = "1"
RBLPago_SelectedIndexChanged(Nothing, Nothing) RBLPago_SelectedIndexChanged(Nothing, Nothing)
UPCondicionesPago.Update() UPCondicionesPago.Update()
Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
If CreditoDispo > 0 Then If CreditoDispo > 0 Then
TrCreditoDisponible.Visible = True TrCreditoDisponible.Visible = True
LblCreditoDisponible.Text = CreditoDispo.FormatoNumero LblCreditoDisponible.Text = CreditoDispo.FormatoNumero
If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%" If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%"
If UsuarioActual.Empresa.Funcionalidad(597) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") Then
If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") Then
Dim Vta As New ClsVentas Dim Vta As New ClsVentas
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta) Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
@@ -6242,19 +6227,15 @@ Partial Class Ventas
TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString
End If End If
'Else
' 'que no de crédito, solo contado
' RBLPago.SelectedValue = "2"
' RBLPago.Items(0).Enabled = False
'End If
End If End If
Else Else
'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO 'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO
If UsuarioActual.Empresa.Funcionalidad(595) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") Then Select Case ValorAutorizacion
Case "1" 'CREAR DOCUMENTO DE AUTORIZACION PA
If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") Then
'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS 'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS
If UsuarioActual.Empresa.Funcionalidad(597) = "1" Then
Dim Vta As New ClsVentas Dim Vta As New ClsVentas
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta) Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
@@ -6265,8 +6246,7 @@ Partial Class Ventas
End If End If
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
Else Else
If Alertas AndAlso UsuarioActual.Empresa.Funcionalidad(518) = "1" Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
End If
End If End If
'RBLPago.SelectedValue = "2" 'RBLPago.SelectedValue = "2"
@@ -6289,8 +6269,19 @@ Partial Class Ventas
LnkPedido2SinFacturar.Visible = False LnkPedido2SinFacturar.Visible = False
LnkCotizaciones.Visible = False LnkCotizaciones.Visible = False
LnkOCs.Visible = False LnkOCs.Visible = False
End If
Else Case "2" 'Autorizacion desde una solicitud del catalogo de autorizaciones
'RMF. validacion temporal
'verifica si tiene autorizaciones de Nota de crédito autorizadas
Dim ObjVentas As New ClsVentas
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, -1, CveEstatus:=1) Then
Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="TipoAutorizacion")
If RowAutorizacion IsNot Nothing Then
DdlTipoComprobante.SelectedValueExistInsert("Egs", "Egresos")
End If
End If
ObjVentas.Dispose()
Case Else 'SI NO TIENE NINGUN TIPO DE AUTORIZACION CONFIGURADO
'RMF. codigo temporal para pruebas 'RMF. codigo temporal para pruebas
If Alertas AndAlso UsuarioActual.CveEmpresa = 140 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1937, 2275) AndAlso Now.Hour > 5 AndAlso Now.Hour < 9 Then If Alertas AndAlso UsuarioActual.CveEmpresa = 140 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1937, 2275) AndAlso Now.Hour > 5 AndAlso Now.Hour < 9 Then
Dim Vta As New ClsVentas Dim Vta As New ClsVentas
@@ -6310,7 +6301,7 @@ Partial Class Ventas
UPCondicionesPago.Update() UPCondicionesPago.Update()
Else Else
'este codigo no es temporal 'este codigo no es temporal
If Alertas AndAlso UsuarioActual.Empresa.Funcionalidad(518) = "1" Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
If UsuarioActual.CveEmpresa = 140 Then If UsuarioActual.CveEmpresa = 140 Then
LnkSolicitarCredito.Visible = True LnkSolicitarCredito.Visible = True
DdlTipoAutorizacion.SelectedValueExist("1") DdlTipoAutorizacion.SelectedValueExist("1")
@@ -6319,77 +6310,12 @@ Partial Class Ventas
End If End If
End If End Select
End If
UPPCreditoDisponible.Update()
'Si tiene credito disponible, Verificar limites de (verificar candados de venta, remisiones sin facturar, facturas que no tengan vencidas)
ElseIf UsuarioActual.Empresa.Funcionalidad(597) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso CveVenta > 0 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Pd2", "Cot") Or (DdlTipoComprobante.SelectedValue = "Rem" And ModalidadEdicion And ViewState("CveClienteAnterior").ToString().ToEntero() > 0 And LblRFC.Text.Trim <> "XAXX010101000")) Then
Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
If CreditoDispo > 0 Then
Dim Vta As New ClsVentas
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
Vta.Dispose()
If Opcion > 0 Then
If ModalidadEdicion AndAlso ViewState("CveCliente").ToString().ToEntero() <> ViewState("CveClienteAnterior").ToString().ToEntero() And DdlTipoComprobante.SelectedValue = "Rem" And ViewState("CveClienteAnterior").ToString().ToEntero() > 0 And LblRFC.Text.Trim <> "XAXX010101000" Then
ViewState("CveCliente") = ViewState("CveClienteAnterior").ToString().ToEntero()
CargaCliente(ViewState("CveCliente").ToString().ToEntero())
If Opcion > 0 Then
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
Else
If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
End If
BtnEmitirImprimir.Visible = False
BtnVistaPrevia.Visible = False
UpFacturar.Update()
Exit Sub
ElseIf DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso EsCreaApartirDe Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing"))
If Not UsuarioActual.TienePermisoProceso(325) Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant"))
End If
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem"))
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Pd2"))
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Egs"))
BtnGenerarRemision.Visible = False
BtnGenerarOS.Visible = False
BtnEmitirImprimir.Visible = True
BtnsFacturar.Visible = False
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
Else
If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then
BtnGeneraAutorizacion.Visible = If(CveEstatus <> 21, True, False)
End If
BtnGenerarRemision.Visible = False
BtnGenerarOS.Visible = False
BtnEmitirImprimir.Visible = False
BtnsFacturar.Visible = False
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
If ViewState("CveCliente").ToString().ToEntero() <> ViewState("CveClienteAnterior").ToString().ToEntero() Then
If Opcion > 0 Then
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
Else
If Alertas Then Alert("El cliente tiene límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
End If
End If
End If
Else
BtnGeneraAutorizacion.Visible = False
If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then
If UsuarioActual.TienePermisoProceso(199) Then
BtnGenerarRemision.Visible = If(CveEstatus <> 21, True, False)
Else
BtnGenerarRemision.Visible = False
End If
End If
End If
Else
BtnGenerarRemision.Visible = False
If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then
BtnGeneraAutorizacion.Visible = If(CveEstatus <> 21, True, False)
End If End If
End If End If
UPPCreditoDisponible.Update()
End If End If
'Puede hacer pedido 'Puede hacer pedido
@@ -6556,8 +6482,6 @@ Partial Class Ventas
End Sub End Sub
Private Function CargaCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal Private Function CargaCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal
Dim Retorno As Decimal = 0 Dim Retorno As Decimal = 0
If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then
Dim ObjVentasAplciar As ClsVentas = Nothing Dim ObjVentasAplciar As ClsVentas = Nothing
If ObjVentas IsNot Nothing Then If ObjVentas IsNot Nothing Then
ObjVentasAplciar = ObjVentas ObjVentasAplciar = ObjVentas
@@ -6598,8 +6522,6 @@ Partial Class Ventas
If ObjVentas Is Nothing Then If ObjVentas Is Nothing Then
ObjVentasAplciar.Dispose() ObjVentasAplciar.Dispose()
End If End If
End If
Return Retorno Return Retorno
End Function End Function
Private Sub CargaDdlSubProyectos() Private Sub CargaDdlSubProyectos()
@@ -7635,7 +7557,7 @@ Partial Class Ventas
'No exceder el limite de credito, Si no tiene contrato limita el credito, si tiene no hace nada. Si no tiene remisiones tampoco hace nada. 'No exceder el limite de credito, Si no tiene contrato limita el credito, si tiene no hace nada. Si no tiene remisiones tampoco hace nada.
If (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then If (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then
If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then 'If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then
Dim ObjVentas As New ClsVentas Dim ObjVentas As New ClsVentas
If ObjVentas.ObtenerCreditoRestante(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Then If ObjVentas.ObtenerCreditoRestante(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Then
@@ -7666,7 +7588,7 @@ Partial Class Ventas
Exit Sub Exit Sub
End If End If
ObjVentas.Dispose() ObjVentas.Dispose()
End If 'End If
End If End If
@@ -8239,15 +8161,17 @@ Partial Class Ventas
Dim DtMovDetalles As DataTable = Nothing Dim DtMovDetalles As DataTable = Nothing
If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then
DtMovDetalles = ObjInventario.DtResultados.Copy() DtMovDetalles = ObjInventario.DtResultados.Copy()
Else
ErrorList.Add("No se pudo verificar los movimientos de almacen de la factura")
End If End If
If DtMovDetalles IsNot Nothing Then If DtMovDetalles IsNot Nothing Then
For Each Row As DataRow In DtMovDetalles.Rows For Each Row As DataRow In DtMovDetalles.Rows
Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToEntero() Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToDecimal()
If SaldoAlmacen < 0 Then If SaldoAlmacen < 0 Then
ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) If Not ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) Then
ElseIf SaldoAlmacen = 0 Then ErrorList.Add("No se pudo actualizar el movimiento de almacen de la factura")
ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 0) End If
End If End If
Next Next
End If End If
@@ -14158,6 +14082,9 @@ Partial Class Ventas
saldo = e.Row.DataKey("SaldoSubTotal").ToString().ToDecimal saldo = e.Row.DataKey("SaldoSubTotal").ToString().ToDecimal
End If End If
e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero
ElseIf CveVenta > 0 AndAlso e.Row.DBCampo("Tipo").ToString() = "Ant" Then
saldo = e.Row.DataKey("SaldoConImpuestos").ToString().ToDecimal
e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero
End If End If
@@ -15019,7 +14946,6 @@ Partial Class Ventas
If IdCtaContRetIVA <> 0 Then If IdCtaContRetIVA <> 0 Then
IdCtaContable = IdCtaContRetIVA IdCtaContable = IdCtaContRetIVA
CveCuenta = CveCuentaRetIVA
Else Else
If ObjConta.GetRetCuenta(8, UsuarioActual.CveEmpresa) Then If ObjConta.GetRetCuenta(8, UsuarioActual.CveEmpresa) Then
If ObjConta.DtResultados.Rows.Count > 0 Then If ObjConta.DtResultados.Rows.Count > 0 Then
@@ -20592,9 +20518,9 @@ Partial Class Ventas
DdlMetodoPago33.Enabled = False DdlMetodoPago33.Enabled = False
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
DdlFormaPago33.Enabled = False DdlFormaPago33.Enabled = False
DdlFormaPago33.SelectedValueExist("20") DdlFormaPago33.SelectedValueExist("20")
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
End If End If
End If End If
@@ -20978,7 +20904,7 @@ Partial Class Ventas
Dim AmortizacionNC As Decimal = 0 Dim AmortizacionNC As Decimal = 0
'SI ES AMORTIZACION POR NOTA DE CREDITO DEBE SUMAR LA TOTALIDAD PARA COMPARAR EL PAGO 'SI ES AMORTIZACION POR NOTA DE CREDITO DEBE SUMAR LA TOTALIDAD PARA COMPARAR EL PAGO
If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
For Each gvr As GridViewRow In GVAnticipos.Rows For Each gvr As GridViewRow In GVAnticipos.Rows
If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then
AmortizacionNC += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal AmortizacionNC += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal
@@ -25198,6 +25124,7 @@ Partial Class Ventas
Me.TmpDTRNCBonificacionesSeleccionadas = Nothing Me.TmpDTRNCBonificacionesSeleccionadas = Nothing
If DtNC IsNot Nothing Then
Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2") Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2")
Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal)) Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal))
Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal)) Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal))
@@ -25246,6 +25173,10 @@ Partial Class Ventas
End If End If
ObjAcum.Dispose() ObjAcum.Dispose()
End If End If
Else
HdnSaldoMaximoUsados.Value = "0"
LtlSMU.Text = "0"
End If
UpModalRemisionesNC.Update() UpModalRemisionesNC.Update()
UpDescNC.Update() UpDescNC.Update()
@@ -25261,6 +25192,7 @@ Partial Class Ventas
Me.TmpDTRNCBonificacionesSeleccionadas = Nothing Me.TmpDTRNCBonificacionesSeleccionadas = Nothing
If DtNC IsNot Nothing Then
Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2") Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2")
Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal)) Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal))
Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal)) Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal))
@@ -25281,6 +25213,10 @@ Partial Class Ventas
Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal() Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal()
HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados) LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados)
Else
HdnSaldoMaximoUsados.Value = "0"
LblSaldoMaximoUsados.Text = "0"
End If
UpDescNC.Update() UpDescNC.Update()
End Sub End Sub
@@ -28471,7 +28407,7 @@ Partial Class Ventas
ChkRemProductos.Visible = True ChkRemProductos.Visible = True
Else Else
'DivPSRemision.Visible = True 'DivPSRemision.Visible = True
CargaPSRemision(-1, DdlPSRemision) 'CargaPSRemision(-1, DdlPSRemision)
ChkRemProductos.Visible = False ChkRemProductos.Visible = False
ChkRemProductos.Checked = False ChkRemProductos.Checked = False
End If End If