diff --git a/Bancos/PagoAcreedor.aspx b/Bancos/PagoAcreedor.aspx
index 704c2ed38..56deee488 100644
--- a/Bancos/PagoAcreedor.aspx
+++ b/Bancos/PagoAcreedor.aspx
@@ -272,7 +272,8 @@
@@ -284,7 +285,7 @@
@@ -637,7 +638,21 @@
txt.value = "";
}
- $get('TxtImporte').value = FormatoNumero(SumaValores(CveMonedaPago), 2);
+ let Suma = SumaValores(CveMonedaPago);
+ let TxtDDImporte;
+ if ($('#TxtDDImporte').length > 0) {
+ TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
+ } else {
+ TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe
+ }
+
+ //let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
+
+ if (!isNaN(TxtDDImporte)) {
+ Suma = Suma + TxtDDImporte;
+ }
+
+ $get('TxtImporte').value = FormatoNumero(Suma, 2);
}
function FnCambia(chk, txt, saldo, op, text, CveMonedaPago) {
@@ -653,7 +668,21 @@
txt.value = saldo;
alert(text);
}
- var Suma = SumaValores(CveMonedaPago);
+
+ let Suma = SumaValores(CveMonedaPago);
+
+ //let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
+ let TxtDDImporte;
+ if ($('#TxtDDImporte').length > 0) {
+ TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
+ } else {
+ TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe
+ }
+
+ if (!isNaN(TxtDDImporte) ) {
+ Suma = Suma + TxtDDImporte;
+ }
+
$get('TxtImporte').value = FormatoNumero(Suma, 2);
if ($get('TxtTotal') != null) {
@@ -720,6 +749,28 @@
return Importe
}
}
+
+
+ function validaDeudoresDiversos(CveMoneda) {
+
+ $get('TxtImporte').value = FormatoNumero(SumaValores(CveMoneda), 2)
+
+ let TxtImporte = parseFloat($get('TxtImporte').value.replace(/,/g, ''));
+ let TxtDDImporte = parseFloat($get('TxtDDImporte').value.replace(/,/g, ''));
+
+
+
+ if (isNaN(TxtImporte) || isNaN(TxtDDImporte)) {
+ return;
+ }
+ let resultado = TxtImporte + TxtDDImporte;
+
+ $get('TxtImporte').value = resultado.toFixed(2);
+ // $('#TxtDDImporte').val(TxtDDImporte.toFixed(2));
+
+
+ }
+
diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs
index d72929c9c..dbae5d93f 100644
--- a/Bancos/PagoAcreedor.aspx.cs
+++ b/Bancos/PagoAcreedor.aspx.cs
@@ -6,6 +6,7 @@ using System.Text;
using System.Web;
using System.Web.UI.WebControls;
using static Extensiones.ModExtensiones;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
public partial class Bancos_PagoAcreedor : ClsPaginas
{
@@ -140,6 +141,10 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
Folio = bancos.GetNextFolio(DdlCuenta.SelectedValue.ToEntero(), DdlTipoTransaccion.SelectedValue.ToEntero());
bancos.Dispose();
TxtFolio.Text = Folio.ToString();
+
+
+ TxtDDImporte.Attributes.Add("onblur",$"validaDeudoresDiversos({CveMonedaCuentaPago});FormatoMoneda(this);");
+ UpDatos.Update();
}
protected void DdlProveedores_selectedindexchange(object sender, EventArgs e)
@@ -345,12 +350,13 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
MsgError = "No se pudo insertar concepto de diferencia cambiaria";
}
- if (ImporteComision != 0 && MsgError == "")
+ if (ImporteComision != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "2" )
{
+
ImporteComisionMN = (ImporteComision * TCPago).RoundSQL();
int tTipoConceptoOtro = 255;
- if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos
+ //if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos
if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(),CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero()))
{
MsgError = "No se pudo insertar concepto de pago acreedor";
@@ -360,6 +366,39 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
}
}
+ if (TxtDDImporte.Text.ToDecimal() != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "3")
+ {
+ ImporteComision = TxtDDImporte.Text.ToDecimal();
+ ImporteComisionMN = ImporteComision;
+
+ if (TxtDDImporte.Text.ToDecimal() < 0)
+ {
+ TipoMovtoComision = true;
+ ImporteComision = ImporteComision * -1;
+ ImporteComisionMN = ImporteComisionMN * -1;
+ }
+ else
+ {
+ TipoMovtoComision = false;
+ }
+
+ //Decimal TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate()).ToDecimal();
+ //int tCveMoneda = get_GlobalDTBancosCuentas(-1, DdlCuenta.SelectedValue.ToEntero()).FiltroPrimeroValor("CveMoneda").ToEntero();
+ //CveMonedaPago
+
+ ImporteComision = ImporteComision.RoundSQL();
+ ImporteComisionMN = (ImporteComision * TCPago).RoundSQL() ;
+
+ ImporteComisionMN = (ImporteComision * TCPago).RoundSQL();
+
+
+ int tTipoConceptoOtro = 43; //deudores diversos
+ if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero()))
+ {
+ MsgError = "No se pudo insertar concepto de pago acreedor";
+ }
+ }
+
if (CveMonedaPago != 1)
{
ImporteComplementaria = (ImporteBanco * TCPago - ImporteBanco).RoundSQL();
@@ -767,7 +806,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
divDD.Visible = false;
if (DdlOtrosPagos.SelectedValue == "2")
{
- TxtOtrosImportes.Visible = true;
+ TxtOtrosImportes.Visible = true;
TxtTotal.Visible = true;
GvMovAcreedor.Columns[8].Visible = true;
TxtOtrosImportes.Text = "";
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index c9326985c..1b81cae90 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -8915,8 +8915,18 @@ Partial Class Ventas
End If
If CveUM <> CveUMInicial Then ValidaExistencia = True
+
'SOLO VALIDA EXISTENCIAS Y COSTO: SI USA INVENTARIOS, SOLO PRODUCTOS TIPO PRODUCTO, SOLO REMISIONES E INGRESOS
- If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119))) Then
+ Dim ValidaExistenciasCosto As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119)))
+
+ 'VALIDA COSTO PARA LAS COTIZACIONES
+ If Not ValidaExistenciasCosto Then
+ If DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso (UsuarioActual.Empresa.Funcionalidad(382) = "1" OrElse UsuarioActual.CveEmpresa = 1) Then
+ ValidaExistenciasCosto = True
+ End If
+ End If
+
+ If ValidaExistenciasCosto Then
Dim ObjInventarios As New ClsInventarios
Dim Existencia As Decimal
If ValidaExistencia Then
@@ -18839,33 +18849,24 @@ Partial Class Ventas
' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR
If Not UsuarioActual.TienePermisoProceso(169) AndAlso RBLTipoVenta.SelectedValue.ToEntero <> 5 Then
'SOLO VALIDA EXISTENCIAS Y COSTO: SI USA INVENTARIOS, SOLO PRODUCTOS TIPO PRODUCTO, SOLO REMISIONES E INGRESOS
- If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") OrElse ((DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119)) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ped") And UsuarioActual.CveEmpresa.Contiene(186)))) Then
+ Dim ValidaExistenciasCosto As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") OrElse ((DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119)) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ped") And UsuarioActual.CveEmpresa.Contiene(186))))
+
+ 'VALIDA COSTO PARA LAS COTIZACIONES
+ If Not ValidaExistenciasCosto Then
+ If DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso (UsuarioActual.Empresa.Funcionalidad(382) = "1" OrElse UsuarioActual.CveEmpresa = 1) Then
+ ValidaExistenciasCosto = True
+ End If
+ End If
+
+ If ValidaExistenciasCosto Then
Dim ObjInventarios As New ClsInventarios
- Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False)
-
-
- Dim Existencia As Decimal = 0D
-
- If RBLTipoVenta.SelectedValue.ToEntero = 6 Then
- Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, CveAlamcenFiltroDdl, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=-1,
- CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=0, PendientePorSurtir:=1,
- RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla)
- Else
- Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(),
- CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1,
- RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla)
- End If
-
-
-
-
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
-
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
+
Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo
If UsuarioActual.CveEmpresa = 119 Then
@@ -18881,9 +18882,29 @@ Partial Class Ventas
End If
- If DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
+ Dim ValidaExistencia As Boolean = (DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False) Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1
+
+ If ValidaExistencia Then
+
'VALIDA EXISTENCIA
If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153, 140, 186, 190}) Then
+
+ Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False)
+
+ Dim Existencia As Decimal = 0D
+
+ Using ObjInv2 As New ClsInventarios
+ If RBLTipoVenta.SelectedValue.ToEntero = 6 Then
+ Existencia = ObjInv2.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, CveAlamcenFiltroDdl, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=-1,
+ CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=0, PendientePorSurtir:=1,
+ RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla)
+ Else
+ Existencia = ObjInv2.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(),
+ CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1,
+ RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla)
+ End If
+ End Using
+
If CveVenta <= 0 OrElse Me.EsCreaApartirDe Then
If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < (If(CantidadModal > 0, CantidadModal, TxtCantidad.Text.ToDouble)) Then
Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia)