From 7a224cfd9938a8ad1ad9bcf9a8a8a8ba34efa4fa Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 3 Mar 2023 09:57:51 -0700 Subject: [PATCH] -- mejora en manejo de dolares/pesos/dolares --- Bancos/PagoAcreedor.aspx.cs | 202 ++++++++++++------------------------ 1 file changed, 67 insertions(+), 135 deletions(-) diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs index a486cae6a..df4599748 100644 --- a/Bancos/PagoAcreedor.aspx.cs +++ b/Bancos/PagoAcreedor.aspx.cs @@ -73,20 +73,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas ViewState["IDCtaContableAcreedorComplementaria"] = value; } } - - private bool UsaComplementaria - { - get - { - return Convert.ToBoolean(ViewState["UsaComplementaria"]); - } - - set - { - ViewState["UsaComplementaria"] = value; - } - } - + private int CveMonedaCuentaPago { get @@ -110,10 +97,9 @@ public partial class Bancos_PagoAcreedor : ClsPaginas protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) - { - UsaComplementaria = true; + { CveMonedaCuentaPago = 0; - rowComisiones.Visible = UsuarioActual.CveEmpresa.Contiene(1, 4, 5, 7, 11, 12, 72, 80, 126, 119, 122); + rowComisiones.Visible = true; CargaTipoTransaccion(); CargaCuentas(); @@ -318,17 +304,13 @@ public partial class Bancos_PagoAcreedor : ClsPaginas if (CveIE > 0) { - //GUARDA COMPROBANTE - if (!filemove.Equals("")) - { - filemove.FilesMove(CveIE.ToString(), string.Format(@"{0}IE", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase: false); - } + decimal Importe; decimal ImporteMN; decimal ImporteComision; decimal ImporteComisionMN; decimal AcumImporteMN = 0; - decimal ImportePago, ImporteAcreedor; + decimal ImporteBancosMN, ImporteAcreedorMN; bool TipoMovtoComision = false; int IdCtaContableOtrosGastos = 0; int CveConceptoDiferenciaCambiaria = 0; @@ -339,7 +321,8 @@ public partial class Bancos_PagoAcreedor : ClsPaginas Importe = gvr.FCTextBox("TxtAbonar").Text.ToDecimal(); ImporteComision = gvr.FCTextBox("TxtComision").Text.ToDecimal(); ImporteMN = Importe; - ImporteAcreedor = Importe; ImportePago = Importe; + ImporteAcreedorMN = Importe; + ImporteBancosMN = Importe; ImporteComisionMN = ImporteComision; ImporteComplementaria = 0; @@ -354,63 +337,47 @@ public partial class Bancos_PagoAcreedor : ClsPaginas { TipoMovtoComision = false; IdCtaContableOtrosGastos = UsuarioActual.Empresa.Funcionalidad(266).ToEntero(); - } - - Decimal TC = gvr.DataKey("TipoCambio").ToDecimal(); - if (gvr.DataKey("FechaDocumento").ToDate().Month != TxtFechaDocumento.Text.ToDate().Month || gvr.DataKey("FechaDocumento").ToDate().Year != TxtFechaDocumento.Text.ToDate().Year) - { - TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate().AddMonths(-1).LastDayOfMonth()).ToDecimal(); - } - + } if (gvr.FCCheckBox("Chk").Checked) { - int tCveMoneda = gvr.DataKey("CveMoneda").ToEntero(); - if (CveMonedaPago == 1 && tCveMoneda == 1) + Decimal TC = gvr.DataKey("TipoCambio").ToDecimal(); + int tCveMoneda = gvr.DataKey("CveMoneda").ToEntero(); + //Verifica Fluctuación mensual + if (tCveMoneda > 1 && gvr.DataKey("FechaDocumento").ToDate() < TxtFechaDocumento.Text.ToDate().FirstDayOfMonth()) { - ImporteMN = Importe; - ImporteComisionMN = ImporteComision; - ImportePago = Importe; + TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate().AddMonths(-1).LastDayOfMonth()).ToDecimal();//obtengo el TC del mes anterior del pago } - else if (CveMonedaPago == 1 && tCveMoneda == 2) - { - ImporteComisionMN = ImporteComision; - ImportePago = (Importe * TCPago).RoundSQL(); - if (UsaComplementaria) - { - ImporteMN = Importe; - ImporteComplementaria = (Importe * TC - Importe).RoundSQL(); - } - else - { - ImporteMN = Importe * TC; - ImporteComplementaria = 0; - } - } - else if (CveMonedaPago == 2 && tCveMoneda == 1) - { + ImporteBancosMN = (Importe * TCPago).RoundSQL(); + ImporteAcreedorMN = (Importe * TC).RoundSQL(); - ImporteMN = Importe; - ImporteComisionMN = ImporteComision; - ImporteComplementaria = 0; - } - else if (CveMonedaPago == 2 && tCveMoneda == 2) - { - ImporteComisionMN = ImporteComision; - if (UsaComplementaria) - { - ImporteMN = Importe; - ImporteComplementaria = (Importe * TC - Importe).RoundSQL(); - } - else - { - ImporteMN = (Importe * TC).RoundSQL(); - ImporteComplementaria = 0; - } - } + //if (CveMonedaPago == 1 && tCveMoneda == 1) + //{ + // ImporteMN = Importe; + // ImporteComisionMN = ImporteComision; + //} + //else if (CveMonedaPago == 1 && tCveMoneda == 2) + //{ + // ImporteComisionMN = ImporteComision; + + // ImporteMN = Importe; + // ImporteComplementaria = (Importe * TC - Importe).RoundSQL(); + //} + //else if (CveMonedaPago == 2 && tCveMoneda == 1) + //{ + // ImporteMN = Importe; + // ImporteComisionMN = ImporteComision; + // ImporteComplementaria = 0; + //} + //else if (CveMonedaPago == 2 && tCveMoneda == 2) + //{ + // ImporteComisionMN = ImporteComision; + // ImporteMN = Importe; + // ImporteComplementaria = (Importe * TC - Importe).RoundSQL(); + //} - ImporteMN = ImporteMN.RoundSQL(); - ImporteComplementaria = ImporteComplementaria.RoundSQL(); + //ImporteMN = ImporteMN.RoundSQL(); + //ImporteComplementaria = ImporteComplementaria.RoundSQL(); ImporteComisionMN = ImporteComisionMN.RoundSQL(); ImporteComision = ImporteComision.RoundSQL(); AcumImporteMN += ImporteMN; @@ -426,13 +393,14 @@ public partial class Bancos_PagoAcreedor : ClsPaginas break; } - if (UsaComplementaria && tCveMoneda > 1 && MsgError == "") + if (tCveMoneda > 1 && MsgError == "") { + ImporteComplementaria = (Importe * TC - Importe).RoundSQL(); if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, false, Importe, Ref, CveConceptoContablePrestamoComplementario, Conc, DateTime.Now, IDCtaContableAcreedorComplementaria, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyecto.SelectedValue.ToEntero())) MsgError = "No se pudo insertar concepto de acreedor complementaria"; } - if (ImportePago != ImporteAcreedor && MsgError == "") + if (ImporteBancosMN != ImporteAcreedorMN && MsgError == "") { bool TipoMovto = false; int IdCtaContableDiferenciaCambiaria = 0; @@ -440,24 +408,23 @@ public partial class Bancos_PagoAcreedor : ClsPaginas { CveConceptoDiferenciaCambiaria = 65; IdCtaContableDiferenciaCambiaria = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria; - TipoMovto = false; - Importe = (Importe * TCPago) - (Importe * TC); + TipoMovto = false; } else if (TCPago < TC) { CveConceptoDiferenciaCambiaria = 64; IdCtaContableDiferenciaCambiaria = UsuarioActual.Empresa.IdCuentaGananciaCambiaria; TipoMovto = true; - Importe = (Importe * TC) - (Importe * TCPago); } - ImporteMN = Importe; + Importe = ((Importe * TCPago) - (Importe * TC)).Abs(); - if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Ref, CveConceptoDiferenciaCambiaria, Conc, DateTime.Now, IdCtaContableDiferenciaCambiaria, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteMN, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Ref, CveConceptoDiferenciaCambiaria, Conc, DateTime.Now, IdCtaContableDiferenciaCambiaria, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: Importe, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) MsgError = "No se pudo insertar concepto de diferencia cambiaria"; } - if (ImporteComisionMN > 0 && MsgError == "") + if (ImporteComision != 0 && MsgError == "") { + ImporteComisionMN = (ImporteComision * TCPago).RoundSQL(); if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, Ref, 255, Conc, DateTime.Now, IdCtaContableOtrosGastos, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteComisionMN, CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) { MsgError = "No se pudo insertar concepto de pago acreedor"; @@ -468,46 +435,18 @@ public partial class Bancos_PagoAcreedor : ClsPaginas } if (CveMonedaPago != 1) - { - if (UsaComplementaria) - { - ImporteMNBanco = ImporteBanco; + { ImporteComplementaria = (ImporteBanco * TCPago - ImporteBanco).RoundSQL(); - } - else - { - ImporteMNBanco = (ImporteBanco * TCPago).RoundSQL(); - ImporteComplementaria = 0; - } } - if (MsgError == "" && !ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, ImporteBanco, Ref, 30, Conc, DateTime.Now, IDCtaContableBancos, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteMNBanco, ImporteME: ImporteBanco, TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) MsgError = "No se pudo insertar concepto de bancos"; + if (MsgError == "" && !ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, ImporteBanco, Ref, 30, Conc, DateTime.Now, IDCtaContableBancos, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteBanco, ImporteME: ImporteBanco, TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) MsgError = "No se pudo insertar concepto de bancos"; //movimiento de ajuste por sino se aplicó en el proceso anterior - if (MsgError == "" && CveMonedaPago != 1 && UsaComplementaria ) + if (MsgError == "" && CveMonedaPago != 1 ) { if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, ImporteBanco, Ref, 204, Conc, DateTime.Now, IDCtaContableBancosComplementario, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, ImporteME: ImporteBanco, TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) MsgError = "No se pudo insertar concepto de bancos complementaria"; - } - if (AcumImporteMN != (ImporteBanco + ImporteComplementaria) && CveConceptoDiferenciaCambiaria == 0) - { - int tCveConceptoOtIngresos = 0; - bool TipoMovtoOt = false; - decimal Dif = AcumImporteMN - (ImporteBanco + ImporteComplementaria); - if (Dif < 0) - { - tCveConceptoOtIngresos = 65; TipoMovtoOt = false; - } - else - { - tCveConceptoOtIngresos = 64; TipoMovtoOt = true; - } - - if (MsgError == "" && !ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOt, Dif.Abs(), Ref, tCveConceptoOtIngresos, Conc, DateTime.Now, 0, -1, CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), ImporteMX: Dif.Abs(), ImporteME: Dif.Abs(), TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero())) - { - MsgError = "No se pudo insertar concepto de ajuste en redondeo"; - } - } + } } else @@ -561,6 +500,11 @@ public partial class Bancos_PagoAcreedor : ClsPaginas Msg.AppendFormat("El Documento se guardo correctamente. Folio {1}
", CveIE, ObjIE.Folio); } + //GUARDA COMPROBANTE + if (!filemove.Equals("")) + { + filemove.FilesMove(CveIE.ToString(), string.Format(@"{0}IE", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase: false); + } System.IO.FileInfo archivo = null; if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(2, 8, 9)) @@ -726,18 +670,8 @@ public partial class Bancos_PagoAcreedor : ClsPaginas if (CveMoneda != 1) { - - if (UsaComplementaria) - { ImporteMN = Importe; - ImporteComplementaria = Importe * TC - Importe; - } - else - { - ImporteMN = Importe * TC; - ImporteComplementaria = 0; - } - + ImporteComplementaria = Importe * TC - Importe; } @@ -761,18 +695,16 @@ public partial class Bancos_PagoAcreedor : ClsPaginas if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePrestamo, Conc, DateTime.Now, IDCtaContableAcreedorExtranjera, -1, CveIE, CveProveedor: DdlProveedorPrestamo.SelectedValue.ToEntero(), ImporteMX: ImporteMN, TipoCambio: TC, TipoCambioPago: TC, CveSubProyecto: DdlSubProyecto.SelectedValue.ToEntero())) { MsgError = "No se pudo insertar concepto de acreedor"; - } - if (UsaComplementaria) + } + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, false, Importe, Ref, CveConceptoContableBancoComplementario, Conc, DateTime.Now, IDCtaContableBancosComplementario, -1, CveIE, CveProveedor: DdlProveedorPrestamo.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TC, CveSubProyecto: DdlSubProyecto.SelectedValue.ToEntero())) { - if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, false, Importe, Ref, CveConceptoContableBancoComplementario, Conc, DateTime.Now, IDCtaContableBancosComplementario, -1, CveIE, CveProveedor: DdlProveedorPrestamo.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TC, CveSubProyecto: DdlSubProyecto.SelectedValue.ToEntero())) - { - MsgError = "No se pudo insertar concepto de bancos complementaria"; - } - if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePrestamoComplementario, Conc, DateTime.Now, IDCtaContableAcreedorComplementaria, -1, CveIE, CveProveedor: DdlProveedorPrestamo.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TC, CveSubProyecto: DdlSubProyecto.SelectedValue.ToEntero())) - { - MsgError = "No se pudo insertar concepto de acreedor complementaria"; - } + MsgError = "No se pudo insertar concepto de bancos complementaria"; } + if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, true, Importe, Ref, CveConceptoContablePrestamoComplementario, Conc, DateTime.Now, IDCtaContableAcreedorComplementaria, -1, CveIE, CveProveedor: DdlProveedorPrestamo.SelectedValue.ToEntero(), ImporteMX: ImporteComplementaria, ImporteME: Importe, TipoCambio: TC, TipoCambioPago: TC, CveSubProyecto: DdlSubProyecto.SelectedValue.ToEntero())) + { + MsgError = "No se pudo insertar concepto de acreedor complementaria"; + } + } else {