@@ -7836,6 +7839,61 @@
$("#BtnDirClienteValidar").click();
}
+ function ValidaCuentaEfectivo(val, args) {
+ //VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
+ var totalPago = ToDouble($get("TxtImporteEfectivo").value);
+ if (totalPago > 0) {
+ args.IsValid = (ToDouble(args.Value) > 0);
+ }else
+ {
+ args.IsValid = true;
+ }
+ }
+
+ function ValidaCuentaCredito(val, args) {
+ //VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
+ var totalPago = ToDouble($get("TxtImporteCredito").value);
+ if (totalPago > 0) {
+ args.IsValid = (ToDouble(args.Value) > 0);
+ }else
+ {
+ args.IsValid = true;
+ }
+ }
+
+ function ValidaCuentaDebito(val, args) {
+ //VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
+ var totalPago = ToDouble($get("TxtImporteDebito").value);
+ if (totalPago > 0) {
+ args.IsValid = (ToDouble(args.Value) > 0);
+ }else
+ {
+ args.IsValid = true;
+ }
+ }
+
+ function ValidaCuentaCheque(val, args) {
+ //VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
+ var totalPago = ToDouble($get("TxtImporteCheque").value);
+ if (totalPago > 0) {
+ args.IsValid = (ToDouble(args.Value) > 0);
+ }else
+ {
+ args.IsValid = true;
+ }
+ }
+
+ function ValidaCuentaTransferencia(val, args) {
+ //VALIDA SOLO SI EL IMPORTE ES MAYOR A CERO
+ var totalPago = ToDouble($get("TxtImporteTransferencia").value);
+ if (totalPago > 0) {
+ args.IsValid = (ToDouble(args.Value) > 0);
+ }else
+ {
+ args.IsValid = true;
+ }
+ }
+
//FUNCIONES PARA COMERCIO EXTERIOR
function CalculaTotalUSD(TotalUSD, ValorUnitario, TxtCantidad) {
TotalUSD.innerText = FormatoNumero(ToDouble(ValorUnitario.value) * ToDouble(TxtCantidad.value), 2);
@@ -8868,14 +8926,16 @@
} catch (e) { }
var total = totalEfectivo + totalCredito + totalDebito + totalCheque + totalTransferencia + TotalOtrosContado + totalRNC + totalAmortizado + totalProntoPago;
- var totalVenta = ToDouble($get('TxtTotal').value);
+ var totalVenta = ToDouble($get('TxtTotal').value);// - ToDouble($get('HdnPagadoContado').value);
if (total > totalVenta) {
- lblCambio.innerHTML = "Cambio:"
+ lblCambio.innerHTML = "Cambio:";
+ HdnCambioFaltante.value = "1";
$get("TxtCambio").value = FormatoNumero(total - totalVenta);
} else {
if ('<%= UsuarioActual.Empresa.Funcionalidad(531) %>' == '1') {
- lblCambio.innerHTML = "Faltante:"
+ lblCambio.innerHTML = "Faltante:";
+ HdnCambioFaltante.value = "2";
$get("TxtCambio").value = FormatoNumero(total - totalVenta, 2);
} else {
$get("TxtCambio").value = "$0.00"
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 3b480e592..5071be4a0 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -1869,6 +1869,24 @@ Partial Class Ventas
ViewState("CveEstatusCotizacion") = value
End Set
End Property
+
+ Private Property CveMetodoPago33Venta As Integer
+ Get
+ Return (IfNull(ViewState("CveMetodoPago33Venta"), "-1", ViewState("CveMetodoPago33Venta"))).ToString().ToEntero()
+ End Get
+ Set(value As Integer)
+ ViewState("CveMetodoPago33Venta") = value
+ End Set
+ End Property
+
+ Private Property CveFormaPago33Venta As Integer
+ Get
+ Return (IfNull(ViewState("CveFormaPago33Venta"), "-1", ViewState("CveFormaPago33Venta"))).ToString().ToEntero()
+ End Get
+ Set(value As Integer)
+ ViewState("CveFormaPago33Venta") = value
+ End Set
+ End Property
Private Property DiasCredito As Integer
Get
Return ViewState("DiasCredito").ToString().ToEntero()
@@ -4551,6 +4569,9 @@ Partial Class Ventas
DdlMetodoPago33.SelectedValueExist(DbRowVenta("CveMetodoPago33").ToString())
DdlFormaPago33.SelectedValueExist(DbRowVenta("CveFormaPago33").ToString().ToEntero())
+ Me.CveMetodoPago33Venta = DbRowVenta("CveMetodoPago33").ToString().ToEntero()
+ Me.CveFormaPago33Venta = DbRowVenta("CveFormaPago33").ToString().ToEntero()
+
If DdlFormaPago33.SelectedValue <> DbRowVenta("CveFormaPago33").ToString() And DbRowVenta("CveFormaPago33").ToString() <> "" Then
'sino está seleccionada la asginada la debe de cargar
Dim Nombre As String = GlobalDTVtaFormaPago().FiltroPrimeroValor("FormaPagoSAT", String.Format("CveFormaPago={0}", DbRowVenta("CveFormaPago33")))
@@ -6382,8 +6403,10 @@ Partial Class Ventas
If Not EsCreaApartirDe AndAlso (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then
DdlTipoComprobante.SelectedValueExist("Cot")
Else
- DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización")
- DdlTipoComprobante.SelectedValue = "PA"
+ If UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
+ DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización")
+ DdlTipoComprobante.SelectedValue = "PA"
+ End If
End If
TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString
@@ -6391,14 +6414,17 @@ Partial Class Ventas
If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then DdlTipoComprobante.SelectedValue = "Cot"
'quito remisión y factura
- DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing"))
- If Not UsuarioActual.TienePermisoProceso(325) Then
- DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant"))
+ If UsuarioActual.Empresa.Funcionalidad(531) <> "1" 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"))
End If
- DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem"))
+
'SI ES AUTORIZACION DEBE PERMITIR GENERARLA
- If (Not DdlTipoComprobante.SelectedValue.Contiene("PA")) Then
+ If (Not DdlTipoComprobante.SelectedValue.Contiene("PA")) AndAlso UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
BtnEmitirImprimir.Visible = False
BtnsFacturar.Visible = False
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
@@ -6434,7 +6460,7 @@ Partial Class Ventas
'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO
Select Case ValorAutorizacion
Case "1" 'CREAR DOCUMENTO DE AUTORIZACION PA
- If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") AndAlso Not (UsuarioActual.Empresa.Funcionalidad(702).Contiene("2")) Then
+ If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") AndAlso Not (UsuarioActual.Empresa.Funcionalidad(702).Contiene("2")) AndAlso UsuarioActual.Empresa.Funcionalidad(531) <> "1" Then
'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS
Dim Vta As New ClsVentas
@@ -7830,8 +7856,91 @@ Partial Class Ventas
ObjContrato.Dispose()
End If
+ Me.CveAutorizacion = -1
+ 'SI ES A CREDITO DEBE VERIFICAR SI TIENE AUTORIZACIONES
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs") AndAlso RBLPago.SelectedValue = "1" Then
+ Dim TipoDocumentoAutorizacion As String = ""
+ Dim ImporteAutorizacion As Decimal = 0
+ Dim TipoAutorizacion As Integer = 0
+ Dim DiasVencidosAutorizacion As Integer = 0
+ Dim CveVendedor As Integer = DdlVendedor.SelectedValue.ToEntero()
+ Dim ObjVentas As New ClsVentas
+ Try
+ If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, CveEstatus:=1) Then
+ Dim RowAutorizacion As DataRow = Nothing
+ 'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO
+ If TieneDiasVencidos Then
+ RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion IN(1,2) AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'", Orderby:="Importe DESC")
+ Else
+ RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'", Orderby:="Importe DESC")
+ End If
+
+ If RowAutorizacion IsNot Nothing Then
+ TipoDocumentoAutorizacion = RowAutorizacion("CveTipoDocumento").ToString()
+ ImporteAutorizacion = RowAutorizacion("Importe").ToString().ToDecimal()
+ CveAutorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero()
+ TipoAutorizacion = RowAutorizacion("TipoAutorizacion").ToString().ToEntero()
+ DiasVencidosAutorizacion = RowAutorizacion("DiasVencidos").ToString().ToEntero()
+ End If
+
+ End If
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener las autorizaciones", ex)
+ End Try
+ ObjVentas.Dispose()
+
+ If TipoDocumentoAutorizacion = "Ing" Then
+ If TipoAutorizacion = 1 Then
+ If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
+ CveAutorizacion = -1
+ Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ If TieneDiasVencidos Then
+ CveAutorizacion = -1
+ Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+
+ 'If TipoAutorizacion = 2 Then
+ ' If DiasVencidosCliente > DiasVencidosAutorizacion Then
+ ' CveAutorizacion = -1
+ ' Alert($"El crédito no esta autorizado. Los días vencidos del cliente son mayores a lo autorizado", TipoMensaje.MsgAdvertencia)
+ ' Exit Sub
+ ' End If
+ 'End If
+
+ 'SI NO SE ENCONTRO NINGUA AUTORIZACION
+ If TipoAutorizacion = 0 Then
+ If TieneDiasVencidos Then
+ CveAutorizacion = -1
+ Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+ End If
+
+ If TieneDiasVencidos AndAlso DdlTipoComprobante.SelectedValue = "Egs" AndAlso CveAutorizacion <= 0 Then
+ CveAutorizacion = -1
+ Alert($"El crédito no esta autorizado. No tiene autorización para generar notas de crédito. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ If TipoDocumentoAutorizacion = "Egs" Then
+ If TipoAutorizacion = 1 Then
+ If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
+ CveAutorizacion = -1
+ Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+ End If
+ End If
+
'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 Me.CveAutorizacion <= 0 AndAlso (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 Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then
@@ -8085,90 +8194,6 @@ Partial Class Ventas
Exit Sub
End If
- Me.CveAutorizacion = -1
- 'SI ES A CREDITO DEBE VERIFICAR SI TIENE AUTORIZACIONES
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs") AndAlso RBLPago.SelectedValue = "1" Then
- Dim TipoDocumentoAutorizacion As String = ""
- Dim ImporteAutorizacion As Decimal = 0
- Dim TipoAutorizacion As Integer = 0
- Dim DiasVencidosAutorizacion As Integer = 0
- Dim CveVendedor As Integer = DdlVendedor.SelectedValue.ToEntero()
- Dim ObjVentas As New ClsVentas
- Try
- If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, CveEstatus:=1) Then
- Dim RowAutorizacion As DataRow = Nothing
- 'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO
- If TieneDiasVencidos Then
- RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 2 AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'")
- Else
- RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='{DdlTipoComprobante.SelectedValue}'", Orderby:="Importe DESC")
- End If
-
- If RowAutorizacion IsNot Nothing Then
- TipoDocumentoAutorizacion = RowAutorizacion("CveTipoDocumento").ToString()
- ImporteAutorizacion = RowAutorizacion("Importe").ToString().ToDecimal()
- CveAutorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero()
- TipoAutorizacion = RowAutorizacion("TipoAutorizacion").ToString().ToEntero()
- DiasVencidosAutorizacion = RowAutorizacion("DiasVencidos").ToString().ToEntero()
- End If
-
- End If
- Catch ex As Exception
- OnError("Ocurrió un error al obtener las autorizaciones", ex)
- End Try
- ObjVentas.Dispose()
-
- If TipoDocumentoAutorizacion = "Ing" Then
- If TipoAutorizacion = 1 Then
- If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
- CveAutorizacion = -1
- Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
- If TieneDiasVencidos Then
- CveAutorizacion = -1
- Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
- End If
-
- 'If TipoAutorizacion = 2 Then
- ' If DiasVencidosCliente > DiasVencidosAutorizacion Then
- ' CveAutorizacion = -1
- ' Alert($"El crédito no esta autorizado. Los días vencidos del cliente son mayores a lo autorizado", TipoMensaje.MsgAdvertencia)
- ' Exit Sub
- ' End If
- 'End If
-
- 'SI NO SE ENCONTRO NINGUA AUTORIZACION
- If TipoAutorizacion = 0 Then
- If TieneDiasVencidos Then
- CveAutorizacion = -1
- Alert($"El crédito no esta autorizado. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
- End If
- End If
-
- If TieneDiasVencidos AndAlso DdlTipoComprobante.SelectedValue = "Egs" AndAlso CveAutorizacion <= 0 Then
- CveAutorizacion = -1
- Alert($"El crédito no esta autorizado. No tiene autorización para generar notas de crédito. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
-
- If TipoDocumentoAutorizacion = "Egs" Then
- If TipoAutorizacion = 1 Then
- If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
- CveAutorizacion = -1
- Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
- End If
- End If
-
- End If
-
EmitirImprimirNew(TipoDoctoViejo)
End Sub
@@ -11606,7 +11631,7 @@ Partial Class Ventas
factura.Timbre.Comprobante.Serie = ObjVentas.Serie
factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString()
- If UsuarioActual.CveRol = 1 AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso factura.TipoDocto = "Ing" AndAlso Me.CveAutorizacion > 0 Then
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Me.CveAutorizacion > 0 Then
If Not ObjVentas.UpdateAutorizacionLimite(Me.CveAutorizacion, factura.CveCliente, factura.CveVenta) Then
ErrorList.Add("Error al guardar los limites de la autorizacion")
End If
@@ -17068,8 +17093,9 @@ Partial Class Ventas
Private Function CalcularDescuentos(CvePS As Integer, Cantidad As Decimal, PU As Decimal) As Descuentos
Dim Descuento As Decimal = HdnDescuento.Value.ToDecimal
- If UsuarioActual.Empresa.Funcionalidad(572) = "1" AndAlso UsuarioActual.TienePermisoProceso(328) AndAlso Not TbDescuentosRNC.Visible Then
+ If UsuarioActual.Empresa.Funcionalidad(572) = "1" AndAlso Not TbDescuentosRNC.Visible Then
TbDescuentosRNC.Visible = True
+ LnkDescuentosRNC.Visible = UsuarioActual.TienePermisoProceso(328)
End If
If HdnTipoDescuento.Value = "0" Then
@@ -20504,7 +20530,7 @@ Partial Class Ventas
ImgDescTotal.Attributes.Add("onclick", "javascript:$('#ModalDescuento').modal(); $get('LblTitulo1').style.display = ''; $get('LblTitulo2').style.display = 'none'; $get('LblTituloTipo1').style.display = ''; $get('LblTituloTipo2').style.display = 'none'; $get('HdnTipoDescuento').value = '2'; $get('LblPrecio1').style.display = 'none'; $get('LblTotalPS1').style.display = 'none'; $get('LblSubTotal1').style.display = ''; $get('LblAmort').style.display = 'none'; $get('BtnAplicarDescP').style.display = 'none'; $get('BtnAplicarDescG').style.display = ''; $get('TrMotivoDescuento').style.display = '';")
LblSubTotal1.Text = TxtSubTotal.Text
LblAmort.Text = TxtSubTotal.Text
-
+ LimpiaEscondeContado()
UpPS.Update()
UpCliente.Update()
UPObservaciones.Update()
@@ -20992,8 +21018,18 @@ Partial Class Ventas
DdlMetodoPago33.SelectedValueExist("3")
DdlMetodoPago33.Enabled = False
+ If Me.CveVenta > 0 AndAlso (Not Me.EsCreaApartirDe) AndAlso (Not Me.ModalidadEdicion) AndAlso Me.CveMetodoPago33Venta > 0 Then
+ DdlMetodoPago33.SelectedValueExist(Me.CveMetodoPago33Venta)
+ End If
+
+ CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
+
+ If Me.CveVenta > 0 AndAlso (Not Me.EsCreaApartirDe) AndAlso Me.CveFormaPago33Venta > 0 Then
+ DdlFormaPago33.SelectedValueExist(Me.CveFormaPago33Venta)
+ End If
+
+
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
- CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
DdlFormaPago33.Enabled = False
DdlFormaPago33.SelectedValueExist("20")
End If
@@ -21016,7 +21052,11 @@ Partial Class Ventas
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
DdlFormaPago33.Enabled = True
- CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
+ End If
+ CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
+
+ If Me.CveVenta > 0 AndAlso (Not Me.EsCreaApartirDe) AndAlso (Not Me.ModalidadEdicion) AndAlso Me.CveFormaPago33Venta > 0 Then
+ DdlFormaPago33.SelectedValueExist(Me.CveFormaPago33Venta)
End If
End If
@@ -21073,10 +21113,15 @@ Partial Class Ventas
DtCC.Dispose()
DdlCuentaEfectivo.DataBind()
+ 'DdlCuentaEfectivo.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaTarjetaCredito.DataBind()
+ 'DdlCuentaTarjetaCredito.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaTarjetaDebito.DataBind()
+ 'DdlCuentaTarjetaDebito.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaCheque.DataBind()
+ 'DdlCuentaCheque.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlCuentaTransferencia.DataBind()
+ 'DdlCuentaTransferencia.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
@@ -21126,6 +21171,11 @@ Partial Class Ventas
Return Folio
End Function
Private Sub CargaGridContado()
+ 'If DtPagos IsNot Nothing Then
+ ' HdnPagadoContado.Value = DtPagos.SUMD("Importe").ToString()
+ 'Else
+ ' HdnPagadoContado.Value = "0"
+ 'End If
GvPagos.DataSource = DtPagos
GvPagos.DataBind()
End Sub
@@ -21148,6 +21198,12 @@ Partial Class Ventas
DtPagos = New DataTable
+ Dim Cambio As Decimal = TxtCambio.Text.ToDecimal
+ 'SI ES FALTANTE NO DEBE CONSIDERARSE
+ If HdnCambioFaltante.Value = "2" Then
+ Cambio = 0
+ End If
+
DtPagos.Columns.Add("CveTipoMovimiento", GetType(String))
DtPagos.Columns.Add("TipoMovimiento", GetType(String))
DtPagos.Columns.Add("CveCuenta", GetType(String))
@@ -21161,13 +21217,15 @@ Partial Class Ventas
If total <= 0 Then Alert("No se ha ingresado importe", TipoMensaje.MsgAdvertencia) : Exit Sub
- If TxtCambio.Text.ToDecimal > 0 And TxtImporteEfectivo.Text.ToDecimal < TxtCambio.Text.ToDecimal Then
+ If Cambio > 0 And TxtImporteEfectivo.Text.ToDecimal < Cambio Then
Alert("Debe haber un pago en efectivo y ser mayor que el cambio. Si no, ser pago exacto.", TipoMensaje.MsgAdvertencia)
+ CargaGridContado()
Exit Sub
End If
- If (DtPagos.SUM("Importe").ToString().ToDecimal + total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then
+ If (DtPagos.SUM("Importe").ToString().ToDecimal + total - Cambio) > TxtTotal.Text.ToDecimal Then
Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor rectifique.", TipoMensaje.MsgAdvertencia)
+ CargaGridContado()
Exit Sub
End If
@@ -21179,7 +21237,7 @@ Partial Class Ventas
DrEfectivo("TipoMovimiento") = "Pago en Efectivo"
DrEfectivo("CveCuenta") = DdlCuentaEfectivo.SelectedValue
DrEfectivo("Cuenta") = DdlCuentaEfectivo.SelectedItem.Text
- DrEfectivo("Importe") = TxtImporteEfectivo.Text.ToDecimal - TxtCambio.Text.ToDecimal
+ DrEfectivo("Importe") = TxtImporteEfectivo.Text.ToDecimal - Cambio
DrEfectivo("Folio") = CargaFolioContado(DdlCuentaEfectivo.SelectedValue.ToEntero(), 6)
DrEfectivo("Observaciones") = ""
DrEfectivo("Tipo") = "Caja Chica"
@@ -21422,6 +21480,53 @@ Partial Class Ventas
End If
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso RBLPago.SelectedValue = "2" AndAlso CveVenta <= 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") Then
+
+ If Not TienePagos AndAlso TxtTotal.Text.ToDecimal > 0 Then
+ If MostrarAlertas Then
+ Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia)
+ End If
+
+ Retorno = True
+ Return Retorno
+ End If
+
+ If TienePagos Then
+ Dim TotalPagoContado As Decimal = If(DtPagos IsNot Nothing, DtPagos.SUM("Importe").ToDecimal(), 0) + AmortizacionNC
+ Dim TotalProntoPago As Decimal = LblProntoPago.Text.ToDecimal()
+
+ If UsuarioActual.Empresa.Funcionalidad(572) = "1" Then
+ Dim TotalRNC As Decimal = If((ListaNCDesc IsNot Nothing AndAlso ListaNCDesc.Count > 0) OrElse (ListaNCBonificacion IsNot Nothing AndAlso ListaNCBonificacion.Count > 0), LblDescuentosRNC.Text.Trim().ToDecimal(), 0)
+
+ Dim ImporteTotal As Decimal = (TxtTotal.Text.ToDecimal).RoundSQL(2)
+ Dim TotalPagado = (TotalPagoContado + TotalRNC + TotalProntoPago).RoundSQL(2)
+
+ If TotalPagado <> ImporteTotal Then
+ If MostrarAlertas Then
+ Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia)
+ End If
+
+ Retorno = True
+ Return Retorno
+ End If
+
+ Else
+ Dim TotalPagado = (TotalPagoContado + TotalProntoPago).RoundSQL(2)
+ If TotalPagado <> TxtTotal.Text.ToDecimal.RoundSQL(2) Then
+ If MostrarAlertas Then
+ Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia)
+ End If
+
+ Retorno = True
+ Return Retorno
+ End If
+ End If
+
+
+ End If
+
+ End If
+
'SI TIENE SALDO PENDIENTE VALIDA SI TIENE PAGOS
If Me.SaldoVenta > 0 Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso (UsuarioActual.Empresa.Funcionalidad(531) = "1") AndAlso (Not PermiteCredito) AndAlso Not TienePagos And TxtTotal.Text.ToDecimal > 0 Then
@@ -21952,10 +22057,10 @@ Partial Class Ventas
Dim DtDireccionEnvio As DataTable = Nothing
- Dim ObjClientes As New ClsClientes
- If ObjClientes.DireccionEnvioGet(DdlDireccionEnvio.SelectedValue.ToEntero(), CveCliente, CveClienteSucursal) Then
- DtDireccionEnvio = ObjClientes.DtResultados
- End If
+ Dim ObjClientes As New ClsClientes
+ If ObjClientes.DireccionEnvioGet(DdlDireccionEnvio.SelectedValue.ToEntero(), CveCliente, CveClienteSucursal) Then
+ DtDireccionEnvio = ObjClientes.DtResultados
+ End If
ObjClientes.Dispose()
If DtDireccionEnvio IsNot Nothing And DtDireccionEnvio.Rows.Count > 0 Then
@@ -22000,7 +22105,7 @@ Partial Class Ventas
RegistraScript("$('#divAddDireccionEnvio').modal();")
End Sub
-#Region "D I R E C C I O N E N V I O - C O M B O S"
+#Region "D I R E C C I O N E N V I O - C O M B O S"
Protected Sub BtnDirClienteValidar_Click(sender As Object, e As EventArgs)
DirClientevalidaCodigoPostal()
End Sub
@@ -22014,27 +22119,27 @@ Partial Class Ventas
Private Sub CargaDirClientePais()
- DdlDirClientePais.DataSource = GlobalDTGralPaises()
- DdlDirClientePais.DataBind()
- DdlDirClientePais.SelectedValueExist("151")
- End Sub
-
- Private Sub CargaDirClienteEstado()
- DdlDirClienteEstado.Items.Clear()
- If DdlDirClientePais.SelectedValue.ToEntero > 0 Then
- DdlDirClienteEstado.DataSource = GlobalDTGralEstados("-1", DdlDirClientePais.SelectedValue.ToEntero)
- End If
- DdlDirClienteEstado.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlDirClienteEstado.DataBind()
+ DdlDirClientePais.DataSource = GlobalDTGralPaises()
+ DdlDirClientePais.DataBind()
+ DdlDirClientePais.SelectedValueExist("151")
End Sub
- Private Sub CargaDirClienteColonia()
- DdlDirClienteColonia.Items.Clear()
+ Private Sub CargaDirClienteEstado()
+ DdlDirClienteEstado.Items.Clear()
+ If DdlDirClientePais.SelectedValue.ToEntero > 0 Then
+ DdlDirClienteEstado.DataSource = GlobalDTGralEstados("-1", DdlDirClientePais.SelectedValue.ToEntero)
+ End If
+ DdlDirClienteEstado.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlDirClienteEstado.DataBind()
+ End Sub
+
+ Private Sub CargaDirClienteColonia()
+ DdlDirClienteColonia.Items.Clear()
If DdlDirClienteMunicipio.SelectedValue.ToEntero > 0 Then
DdlDirClienteColonia.DataSource = GlobalDTGralColonias("-1", "-1", "-1", DdlDirClienteMunicipio.SelectedValue.ToEntero, CodigoPostal:=If(TxtEnvioCP.Text.Trim.Length > 0, TxtEnvioCP.Text.ToEntero, -1))
- End If
- DdlDirClienteColonia.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlDirClienteColonia.DataBind()
+ End If
+ DdlDirClienteColonia.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlDirClienteColonia.DataBind()
End Sub
@@ -22051,24 +22156,24 @@ Partial Class Ventas
End Sub
Private Sub CargaDirClienteMunicipio()
- DdlDirClienteMunicipio.Items.Clear()
- If DdlDirClienteEstado.SelectedValue.ToEntero > 0 Then
- DdlDirClienteMunicipio.DataSource = GlobalDTGralMunicipios("-1", DdlDirClienteEstado.SelectedValue.ToEntero)
- End If
- DdlDirClienteMunicipio.Items.Insert(0, New ListItem("Seleccione", "-1"))
- DdlDirClienteMunicipio.DataBind()
+ DdlDirClienteMunicipio.Items.Clear()
+ If DdlDirClienteEstado.SelectedValue.ToEntero > 0 Then
+ DdlDirClienteMunicipio.DataSource = GlobalDTGralMunicipios("-1", DdlDirClienteEstado.SelectedValue.ToEntero)
+ End If
+ DdlDirClienteMunicipio.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlDirClienteMunicipio.DataBind()
End Sub
- Protected Sub DdlDirClientePais_SelectedIndexChanged(sender As Object, e As EventArgs)
- CargaDirClienteEstado()
- CargaDirClienteMunicipio()
- CargaDirClienteColonia()
- CargaDirClienteLocalidad()
- End Sub
- Protected Sub DdlDirClienteEstado_SelectedIndexChanged(sender As Object, e As EventArgs)
- CargaDirClienteMunicipio()
- CargaDirClienteColonia()
- CargaDirClienteLocalidad()
+ Protected Sub DdlDirClientePais_SelectedIndexChanged(sender As Object, e As EventArgs)
+ CargaDirClienteEstado()
+ CargaDirClienteMunicipio()
+ CargaDirClienteColonia()
+ CargaDirClienteLocalidad()
+ End Sub
+ Protected Sub DdlDirClienteEstado_SelectedIndexChanged(sender As Object, e As EventArgs)
+ CargaDirClienteMunicipio()
+ CargaDirClienteColonia()
+ CargaDirClienteLocalidad()
End Sub
Protected Sub DdlDirClienteMunicipio_SelectedIndexChanged(sender As Object, e As EventArgs)
@@ -25945,7 +26050,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio")
End If
ObjMovtos.Dispose()
@@ -26025,7 +26130,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio")
End If
ObjMovtos.Dispose()
@@ -26065,7 +26170,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -26140,7 +26245,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -26188,7 +26293,7 @@ Partial Class Ventas
'GvRemisionesNCBonDetalle.DataBind()
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -26234,7 +26339,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetRemisionesNCCliente(CveCliente, True, CveMoneda:=-1) Then
Me.TmpDTRNCBonificacionDetalle = ObjMovtos.DtResultados.Copy()
End If
ObjMovtos.Dispose()
@@ -32756,7 +32861,7 @@ Partial Class Ventas
Dim DtNC As DataTable = Nothing
Dim ObjMovtos As New ClsMovimientos()
- If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero()) Then
+ If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND TipoRNC = 3 AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio")
End If
ObjMovtos.Dispose()
@@ -32928,6 +33033,10 @@ Partial Class Ventas
Dim CveEstatus As Integer = 0
Dim TipoDocto As String = DdlTipoDocto.SelectedValue
Dim CveTipoAutorizacion As Integer = DdlTipoAutorizacion.SelectedValue.ToEntero()
+ If CveTipoAutorizacion <= 0 Then
+ Alert("Debe seleccionar un tipo de autorización", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
If CveTipoAutorizacion = 2 Then
DiasVencidos = TxtDiasVencidos.Text.ToEntero()