public PerdidaGanancia getPerdidaGanancia(DataTable pdtDetalla, string pCtaOrigen, string pCtaDestino) { PerdidaGanancia oPG = new PerdidaGanancia(); DataRow[] result = pdtDetalla.Select("VAT_GL_ACCT_ID = '" + pCtaOrigen + "' AND TRASLADO = '" + pCtaDestino + "'"); string sCtaPerdida = string.Empty; string sCtaGanancia = string.Empty; double dPerdidaGanancia = 0; foreach (DataRow rowDetalle in result) { dPerdidaGanancia = double.Parse(rowDetalle["PERDIDA_GANANCIA"].ToString()); if (dPerdidaGanancia != 0) { if (rowDetalle["VAT_GL_ACCT_ID"].ToString().Equals(pCtaOrigen) && rowDetalle["TRASLADO"].ToString().Equals(pCtaDestino) && dPerdidaGanancia < 0) { oPG.Perdida += Math.Abs(dPerdidaGanancia); oPG.CuentaPerdida = rowDetalle["CUENTA_PER_GANANCIA"].ToString(); } else { oPG.Ganancia += dPerdidaGanancia; oPG.CuentaGanancia = rowDetalle["CUENTA_PER_GANANCIA"].ToString(); } } } return(oPG); }
public PerdidaGanancia getPerdidaGanancia(DataTable dtDetalleMovimientos) { // Perdida Ganancia double dPerdidaGanancia = 0; double dPerdida = 0; double dGanancia = 0; PerdidaGanancia oPG = new PerdidaGanancia(); foreach (DataRow rowDetalle in dtDetalleMovimientos.Rows) { dPerdidaGanancia = double.Parse(rowDetalle["PERDIDA_GANANCIA"].ToString()); if (dPerdidaGanancia < 0) { dPerdida += Math.Abs(dPerdidaGanancia); } else { dGanancia += Math.Abs(dPerdidaGanancia); } } oPG.Perdida = Math.Round(dPerdida, 4); oPG.Ganancia = Math.Round(dGanancia, 4); return(oPG); }
public List <GJ_DIST> getListGJ_DIST() { List <GJ_DIST> lstGJ_DIST = new List <GJ_DIST>(); int iEntry_No = 1; double dMontoFactura = 0; double dMontoPago = 0; double dMonto_tipoCambio = 0; if (TipoCambio.Equals("FACTURA")) { foreach (DataRow item in _dtVMX_IVATRASTEMP.Rows) { GJ_DIST oGJ_DIST = new GJ_DIST(); dMontoFactura = double.Parse(item["MONTO"].ToString()); oGJ_DIST = getGJ_DIST_NATIVE(iEntry_No++, dMontoFactura, "DR", item["CUENTA_ORIGEN"].ToString()); lstGJ_DIST.Add(oGJ_DIST); oGJ_DIST = getGJ_DIST_NATIVE(iEntry_No++, dMontoFactura, "CR", item["CUENTA_DESTINO"].ToString()); lstGJ_DIST.Add(oGJ_DIST); } // Monedas rastreables foreach (DataRow item in _dtVMX_IVATRASTEMP.Rows) { foreach (MonedaRastreo moneda in _lstCurrencyTracking) { GJ_DIST oGJ_DIST_TRACK = new GJ_DIST(); dMontoFactura = double.Parse(item["MONTO"].ToString()); dMonto_tipoCambio = Math.Round((dMontoFactura / moneda.SELL_RATE), 2); oGJ_DIST_TRACK = getGJ_DIST_TRACK(iEntry_No++, dMonto_tipoCambio, "DR", item["CUENTA_DESTINO"].ToString(), moneda.ID); lstGJ_DIST.Add(oGJ_DIST_TRACK); oGJ_DIST_TRACK = getGJ_DIST_TRACK(iEntry_No++, dMonto_tipoCambio, "CR", item["CUENTA_ORIGEN"].ToString(), moneda.ID); lstGJ_DIST.Add(oGJ_DIST_TRACK); } } } else { // 1 - Moneda del sistema foreach (DataRow item in _dtVMX_IVATRASTEMP.Rows) { GJ_DIST oGJ_DIST = new GJ_DIST(); dMontoFactura = double.Parse(item["MONTO"].ToString()); dMontoPago = double.Parse(item["MONTO_IVA_DEPOSITO"].ToString()); oGJ_DIST = getGJ_DIST_NATIVE(iEntry_No++, dMontoFactura, "DR", item["CUENTA_ORIGEN"].ToString()); lstGJ_DIST.Add(oGJ_DIST); oGJ_DIST = getGJ_DIST_NATIVE(iEntry_No++, dMontoPago, "CR", item["CUENTA_DESTINO"].ToString()); lstGJ_DIST.Add(oGJ_DIST); // Perdida Ganancia PerdidaGanancia oPG = new PerdidaGanancia(); string sCta_Origen = item["CUENTA_ORIGEN"].ToString(); string sCta_Destino = item["CUENTA_DESTINO"].ToString(); oPG = oPG.getPerdidaGanancia(_dtDetalla_IVA, sCta_Origen, sCta_Destino); if (oPG.Ganancia > 0) { oGJ_DIST = getGJ_DIST_NATIVE(iEntry_No++, oPG.Ganancia, "DR", oPG.CuentaGanancia); lstGJ_DIST.Add(oGJ_DIST); } if (oPG.Perdida > 0) { oGJ_DIST = getGJ_DIST_NATIVE(iEntry_No++, oPG.Perdida, "CR", oPG.CuentaPerdida); lstGJ_DIST.Add(oGJ_DIST); } } // 2- Monedas rastreables foreach (DataRow item in _dtVMX_IVATRASTEMP.Rows) { dMontoFactura = double.Parse(item["MONTO"].ToString()); dMontoPago = double.Parse(item["MONTO_IVA_DEPOSITO"].ToString()); foreach (MonedaRastreo moneda in _lstCurrencyTracking) { GJ_DIST oGJ_DIST_TRACK = new GJ_DIST(); dMonto_tipoCambio = Math.Round((dMontoFactura / moneda.SELL_RATE), 2); oGJ_DIST_TRACK = getGJ_DIST_TRACK(iEntry_No++, dMonto_tipoCambio, "DR", item["CUENTA_DESTINO"].ToString(), moneda.ID); lstGJ_DIST.Add(oGJ_DIST_TRACK); dMonto_tipoCambio = Math.Round((dMontoPago / moneda.SELL_RATE), 2); oGJ_DIST_TRACK = getGJ_DIST_TRACK(iEntry_No++, dMonto_tipoCambio, "CR", item["CUENTA_ORIGEN"].ToString(), moneda.ID); lstGJ_DIST.Add(oGJ_DIST_TRACK); // Perdida Ganancia PerdidaGanancia oPG = new PerdidaGanancia(); string sCta_Origen = item["CUENTA_ORIGEN"].ToString(); string sCta_Destino = item["CUENTA_DESTINO"].ToString(); oPG = oPG.getPerdidaGanancia(_dtDetalla_IVA, sCta_Origen, sCta_Destino); if (oPG.Ganancia > 0) { dMonto_tipoCambio = Math.Round((oPG.Ganancia / moneda.SELL_RATE), 2); oGJ_DIST_TRACK = getGJ_DIST_TRACK(iEntry_No++, dMonto_tipoCambio, "DR", oPG.CuentaGanancia, moneda.ID); lstGJ_DIST.Add(oGJ_DIST_TRACK); } if (oPG.Perdida > 0) { dMonto_tipoCambio = Math.Round((oPG.Perdida / moneda.SELL_RATE), 2); oGJ_DIST_TRACK = getGJ_DIST_TRACK(iEntry_No++, dMonto_tipoCambio, "CR", oPG.CuentaPerdida, moneda.ID); lstGJ_DIST.Add(oGJ_DIST_TRACK); } } } } return(lstGJ_DIST); }