EMD - registro de una factura con OC y y anticipo

This commit is contained in:
rakcsle
2024-05-20 19:27:19 -07:00
parent c52b59e32d
commit 8244fd7b6a
2 changed files with 50 additions and 18 deletions

View File

@@ -5918,7 +5918,7 @@
} }
function chkAnt(t, txt, importe, TotalSaldoCompra, CveMonedaAnticipo, TCAnticipo, CveMonedaOriginal, TCCompra) { function chkAnt(t, txt, importe, TotalSaldoCompra, CveMonedaAnticipo, TCAnticipo, CveMonedaOriginal, TCCompra, txtComision) {
var Total = ToDouble($get('TxtTotal').value); var Total = ToDouble($get('TxtTotal').value);
debugger; debugger;
var txtvalue = ToDouble(txt.value); var txtvalue = ToDouble(txt.value);
@@ -5939,6 +5939,8 @@
else { TCC = 1; } else { TCC = 1; }
var DifSaldo = (TotalSaldoCompra - FnSumaValoresAnt()).toFixed(2); // le agrego lo del valor actual para validarlo var DifSaldo = (TotalSaldoCompra - FnSumaValoresAnt()).toFixed(2); // le agrego lo del valor actual para validarlo
if (t.checked) if (t.checked)
{ {
if (DifSaldo > importevalue) { if (DifSaldo > importevalue) {
@@ -5946,6 +5948,14 @@
} else { } else {
txt.value = toFixed(ToDouble(DifSaldo * TCC), 2); txt.value = toFixed(ToDouble(DifSaldo * TCC), 2);
} }
let difFinal = (DifSaldo - importevalue) * TCC;
if (difFinal > 0 && difFinal < 1) {
txtComision.value = toFixed(ToDouble(difFinal), 2);
}
} else { } else {
txt.value = ""; txt.value = "";
} }

View File

@@ -4193,11 +4193,26 @@ Partial Class Compras_Compras
'------------------ INICIA VALIDACIONES ------------------ '------------------ INICIA VALIDACIONES ------------------
If MetodoPagoOC = 0 AndAlso RBLPago.SelectedValue.ToEntero <> 2 AndAlso LblSaldoFactura.Text.ToDecimal > 0 Then
If MetodoPagoOC = 0 AndAlso RBLPago.SelectedValue.ToEntero <> 2 Then
Dim ImporteAnticipoComision As Decimal = 0
If ArrAnticipos.Count > 0 Then
For Each Ant As Compras_Compras.Anticipos In ArrAnticipos
ImporteAnticipoComision += Ant.ImporteComision
Next
End If
If (LblSaldoFactura.Text.ToDecimal - ImporteAnticipoComision) > 0 Then
Alert("La orden de compra se definió de contado, favor de especificar la compra de contado.", TipoMensaje.MsgAdvertencia) Alert("La orden de compra se definió de contado, favor de especificar la compra de contado.", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub
End If End If
End If
Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal() Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal()
If Not CveSubProyectoPrincipal > 0 Then If Not CveSubProyectoPrincipal > 0 Then
@@ -7240,20 +7255,22 @@ Partial Class Compras_Compras
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
Else Else
Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt 'Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt
Dim ImporteAntMNComision As Decimal = (ImporteAnt) * TipoCambioAnt
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt + ImporComisionAnticipo), ImporteAntMNComision, ConceptoContableAnticipo, Referencia, Concepto, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then 'If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt + ImporComisionAnticipo), ImporteAntMNComision, ConceptoContableAnticipo, Referencia, Concepto, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt), ImporteAntMNComision, ConceptoContableAnticipo, Referencia, Concepto, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
End If End If
If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then
Dim Pago As New CompraPago Dim Pago As New CompraPago
Pago.ImportePago = importeMovimiento Pago.ImportePago = importeMovimiento + ImporComisionAnticipo
Pago.CveIE = Ant.CveIE Pago.CveIE = Ant.CveIE
Pago.TCPago = Ant.TCCompra Pago.TCPago = Ant.TCCompra
Pago.CveMonedaPago = If(Ant.TCCompra > 1, 2, 1) Pago.CveMonedaPago = If(Ant.TCCompra > 1, 2, 1)
Pago.OtroGastoIngreso = ImporComisionAnticipo Pago.OtroGastoIngreso = -ImporComisionAnticipo
ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
End If End If
@@ -8480,7 +8497,8 @@ Partial Class Compras_Compras
Dim ImporteAnticipo As Decimal = 0 Dim ImporteAnticipo As Decimal = 0
If ArrAnticipos.Count > 0 Then If ArrAnticipos.Count > 0 Then
For Each Ant As Compras_Compras.Anticipos In ArrAnticipos For Each Ant As Compras_Compras.Anticipos In ArrAnticipos
ImporteAnticipo += Ant.Importe 'ImporteAnticipo += (Ant.Importe + Ant.ImporteComision)
ImporteAnticipo += (Ant.Importe)
Next Next
End If End If
@@ -9762,22 +9780,26 @@ Partial Class Compras_Compras
Dim tTCFecha As Double = If(Not e.Row.DBCampo("TCCompra").ToDouble > 1, GlobalTipoCambio(e.Row.DBCampo("Fecha").ToDate), e.Row.DBCampo("TCCompra").ToDouble) Dim tTCFecha As Double = If(Not e.Row.DBCampo("TCCompra").ToDouble > 1, GlobalTipoCambio(e.Row.DBCampo("Fecha").ToDate), e.Row.DBCampo("TCCompra").ToDouble)
e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2},{3},{4},{5},{6});", e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2},{3},{4},{5},{6},{7});",
e.Row.FCTextBox("TxtAnticipo").ClientID, e.Row.FCTextBox("TxtAnticipo").ClientID,
e.Row.DBCampo("Saldo"), e.Row.DBCampo("Saldo"),
If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), If(CveCompra > 0, CompraSaldo, ImporteAmortizacion),
e.Row.DBCampo("CveMoneda"), e.Row.DBCampo("CveMoneda"),
e.Row.DBCampo("TCCompra").ToDouble, e.Row.DBCampo("TCCompra").ToDouble,
DdlMoneda.SelectedValue, DdlMoneda.SelectedValue,
IIf(DdlMoneda.SelectedValue = "1", 1, TxtTC.Text))) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO IIf(DdlMoneda.SelectedValue = "1", 1, TxtTC.Text),
e.Row.FCTextBox("TxtComision").ClientID
)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO
If UsuarioActual.Empresa.CveEmpresa.Contiene(13, 83) Then If UsuarioActual.Empresa.CveEmpresa.Contiene(13, 83) Then
e.Row.FCTextBox("TxtAnticipo").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1},{2},{3},{4},{5},{6});", e.Row.FCTextBox("TxtAnticipo").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1},{2},{3},{4},{5},{6});",
e.Row.FCCheckBox("Chk").ClientID, e.Row.FCCheckBox("Chk").ClientID,
e.Row.DBCampo("Saldo"), e.Row.DBCampo("Saldo"),
If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, If(CveCompra > 0, CompraSaldo, ImporteAmortizacion),
e.Row.DBCampo("CveMoneda").ToEntero,
tTCFecha, tTCFecha,
DdlMoneda.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero,
e.Row.FCTextBox("TxtComision").ClientID)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO e.Row.FCTextBox("TxtComision").ClientID)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO