This commit is contained in:
2024-07-12 18:24:07 -07:00
3 changed files with 140 additions and 29 deletions

View File

@@ -272,7 +272,8 @@
</asp:DropDownList>
</div>
<div class="col-md-3" id="divDD" runat="server" visible="false">
<asp:TextBox ID="TxtDDImporte" runat="server" MaxLength="12" CssClass="form-control input-sm" Width="80px"></asp:TextBox>
<asp:TextBox ID="TxtDDImporte" runat="server" MaxLength="12" ClientIDMode="Static" CssClass="form-control input-sm" Width="80px" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="TxtDDImporte" FilterType="Custom, Numbers" ValidChars="+-.," />
</div>
</div>
</div>
@@ -284,7 +285,7 @@
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div>
<asp:TextBox ID="Anexo" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
<asp:TextBox ID="Anexo" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server" ></asp:TextBox>
</div>
</ContentTemplate>
</asp:UpdatePanel>
@@ -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));
}
</script>
</asp:Content>

View File

@@ -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 = "";

View File

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