/// <summary> /// Permite anular el documento de venta actual /// </summary> /// <param name="Item"></param> /// <returns></returns> public Boolean SaveAnularFactura(ref DocsVta Item) { try { Boolean m_isCorrect = true; Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DABeginTransaction(); m_isCorrect = UpdateAnularFactura(ref Item); // Anular Asiento de Venta GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoVenta); genAsientos.ItemDocsVta = Item; m_isCorrect = genAsientos.Anular(Item.AUDI_UsrMod, GAsientos.TipoItem.DocVta); if (m_isCorrect) { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DACommitTransaction(); } else { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } }
public Boolean SaveDiferido(ref Movimiento Item) { try { DataAccessEnterpriseSQL.DABeginTransaction(); Boolean m_isCorrect = true; switch (Item.Instance) { case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified: m_isCorrect = UpdateEjecutarDiferido(ref Item); break; } #region [ Generar el asiento de Diferido ] GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoCajaDiferido); genAsientos.ItemMovimiento = Item; genAsientos.GenerarAsientoBD(Item.AUDI_UsrMod); #endregion if (m_isCorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } }
public bool AnularDocsVtaFacturacion(DocsVta item) { try { Boolean m_isCorrect = true; Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DABeginTransaction(); m_isCorrect = AnularDocsVta(item); // Anular Asiento de Venta GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoVenta); genAsientos.ItemDocsVta = item; m_isCorrect = genAsientos.Anular(item.AUDI_UsrMod, GAsientos.TipoItem.DocVta); if (m_isCorrect) { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DACommitTransaction(); } else { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception ex) { throw ex; } }
public DataSet GetImpresionFEDS(String x_procedure, ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL> x_filters, String x_usuario, Int16 x_sucr_codigo, Boolean x_transaccion = false, String Email = "") { DataSet dsResultado; try { Boolean m_iscorrect = true, m_generado = false; int CCCT_Codigo = 0; Int16 EMPR_Codigo = 0; String TIPO_CodFPG; DataAccessEnterpriseSQL.DABeginTransaction(); dsResultado = SelectDS(x_procedure, x_filters, ref EMPR_Codigo, ref CCCT_Codigo, ref m_generado, false); if (dsResultado.Tables.Count > 0 && dsResultado.Tables[0].Rows.Count > 0 && m_generado) { GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoVenta); genAsientos.ItemCtaCte = new CtaCte(); genAsientos.ItemCtaCte = BL_CtaCte.GetOne(EMPR_Codigo, CCCT_Codigo); m_iscorrect = genAsientos.GenerarAsiento(x_usuario, x_sucr_codigo); if (m_iscorrect) { m_iscorrect = genAsientos.ActualizarCtaCte(x_usuario); } } //FACTURACION ELECTRONICA if (m_iscorrect) { eFacturacionElectronica facturacionElectronica = new eFacturacionElectronica(); DataTable dtResultadoFacturacionElectronica = new DataTable(); dtResultadoFacturacionElectronica = facturacionElectronica.ProcesarFacturacionElectronica(dsResultado.Tables[0].Rows[0]["DOCV_Codigo"].ToString(), Email, x_usuario); dsResultado.Tables.Add(dtResultadoFacturacionElectronica); string Resultado = dtResultadoFacturacionElectronica.Rows[0]["resultado"].ToString(); string ResultadoDetalle = dtResultadoFacturacionElectronica.Rows[0]["mensajeerror"].ToString(); if (Resultado == "ERROR") { throw new System.Exception(ResultadoDetalle); } } if (m_iscorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { throw new Exception("No se completo el proce de generación de documento"); } } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); dsResultado = null; throw; } return(dsResultado); }
/// <summary> /// Anular documento generados par SLI /// </summary> /// <param name="item">The item.</param> /// <returns></returns> public bool AnularDocsVtaFacturacion(DocsVta item, string TipDocVta) { try { Boolean m_isCorrect = true; Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DABeginTransaction(); m_isCorrect = AnularDocsVta(item); // Anular Asiento de Venta GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoVenta); genAsientos.ItemDocsVta = item; m_isCorrect = genAsientos.Anular(item.AUDI_UsrMod, GAsientos.TipoItem.DocVta); if (TipDocVta == "eFact") { if (item.DOCV_Numero != null) { if (m_isCorrect) { //FACTURACION ELECTRONICA eFacturacionElectronica facturacionElectronica = new eFacturacionElectronica(); DataTable dtResultadoFacturacionElectronica = new DataTable(); dtResultadoFacturacionElectronica = facturacionElectronica.ProcesarBajaFacturacionElectronica(item.DOCV_Codigo.ToString(), item.AUDI_UsrMod); string Resultado = dtResultadoFacturacionElectronica.Rows[0]["resultado"].ToString(); string ResultadoDetalle = dtResultadoFacturacionElectronica.Rows[0]["mensajeerror"].ToString(); if (Resultado == "ERROR") { throw new System.Exception(ResultadoDetalle); } } } } if (m_isCorrect) { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DACommitTransaction(); } else { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception ex) { throw ex; } }
private Boolean SaveGAsientos(ref ObservableCollection <NaveViaje> Items) { try { DataAccessEnterpriseSQL.DABeginTransaction(); Boolean m_isCorrect = true; foreach (NaveViaje iNaveViaje in Items) { //NaveViaje x_NaveViaje = SelectOne(iNaveViaje.NVIA_Codigo); GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoSTATEMENT); genAsientos.ItemNaveViaje = iNaveViaje; //genAsientos.SUCR_Codigo = iNaveViaje.SUCR_Codigo; //genAsientos.CABA_Ano = x_NaveViaje.CABA_Ano; //genAsientos.CABA_Mes = x_NaveViaje.CABA_Mes; //genAsientos.TIPO_TabREG = x_NaveViaje.TIPO_TabREG; //genAsientos.TIPO_CodReg = x_NaveViaje.TIPO_CodREG; //genAsientos.CABA_NroVoucher = x_NaveViaje.CABA_NroVoucher; String x_usuario = String.IsNullOrEmpty(iNaveViaje.AUDI_UsrMod) ? iNaveViaje.AUDI_UsrCrea : iNaveViaje.AUDI_UsrMod; m_isCorrect = genAsientos.GenerarAsientoBD(x_usuario); //m_isCorrect = genAsientos.GenerarAsiento(x_NaveViaje.AUDI_UsrCrea, iNaveViaje.SUCR_Codigo); //if (m_isCorrect) //{ genAsientos.ActualizarNaveViaje(x_NaveViaje.AUDI_UsrCrea); } } if (m_isCorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } return(false); }
public DataSet GetImpresionDS(String x_procedure, ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL> x_filters, String x_usuario, Int16 x_sucr_codigo, Boolean x_transaccion = false) { DataSet dsResultado; try { Boolean m_iscorrect = true, m_generado = false; int CCCT_Codigo = 0; Int16 EMPR_Codigo = 0; String TIPO_CodFPG; DataAccessEnterpriseSQL.DABeginTransaction(); dsResultado = SelectDS(x_procedure, x_filters, ref EMPR_Codigo, ref CCCT_Codigo, ref m_generado, false); if (dsResultado.Tables.Count > 0 && dsResultado.Tables[0].Rows.Count > 0 && m_generado) { GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoVenta); genAsientos.ItemCtaCte = new CtaCte(); genAsientos.ItemCtaCte = BL_CtaCte.GetOne(EMPR_Codigo, CCCT_Codigo); m_iscorrect = genAsientos.GenerarAsiento(x_usuario, x_sucr_codigo); if (m_iscorrect) { m_iscorrect = genAsientos.ActualizarCtaCte(x_usuario); } } if (m_iscorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { throw new Exception("No se completo el proce de generación de documento"); } } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); dsResultado = null; throw; } return(dsResultado); }
public Boolean SaveAnular(ref Movimiento Item) { try { Boolean m_isCorrect = true; DataAccessEnterpriseSQL.DABeginTransaction(); Item.SetEstado(Movimiento.Estado.Anulado); m_isCorrect = UpdateAnular(ref Item); if (Item != null && m_isCorrect) { ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL> listFilters = new ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL>(); listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@psinEMPR_Codigo", FilterValue = Item.EMPR_Codigo, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Int16, FilterSize = 2 }); listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pintMOVI_Codigo", FilterValue = Item.MOVI_Codigo, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Int32, FilterSize = 4 }); Item.ListDetCtaCte = BL_DetCtaCte.GetAllFilter("CAJ_DCCTSS_TodosPorMovimiento", listFilters); Item.TIPO_Movimiento = BL_Tipos.GetOne(Item.TIPO_TabMOV, Item.TIPO_CodMOV); foreach (DetCtaCte iDetCtaCte in Item.ListDetCtaCte) { if (iDetCtaCte.DCCT_MontoDebe < iDetCtaCte.DCCT_MontoHaber) { iDetCtaCte.DCCT_MontoDebe = iDetCtaCte.DCCT_MontoHaber; iDetCtaCte.DCCT_MontoHaber = 0; iDetCtaCte.DCCT_MontoDebeD = iDetCtaCte.DCCT_MontoHaberD; iDetCtaCte.DCCT_MontoHaberD = 0; } else if (iDetCtaCte.DCCT_MontoDebe > iDetCtaCte.DCCT_MontoHaber) { iDetCtaCte.DCCT_MontoHaber = iDetCtaCte.DCCT_MontoDebe; iDetCtaCte.DCCT_MontoDebe = 0; iDetCtaCte.DCCT_MontoHaberD = iDetCtaCte.DCCT_MontoDebeD; iDetCtaCte.DCCT_MontoDebeD = 0; } iDetCtaCte.Instance = InstanceEntity.Added; iDetCtaCte.AUDI_UsrCrea = Item.AUDI_UsrMod; iDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); iDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Extorno); Entities.DetCtaCte _detCtaCte = iDetCtaCte; BL_DetCtaCte.Save(ref _detCtaCte); } GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoCaja); genAsientos.ItemMovimiento = Item; genAsientos.Anular(Item.AUDI_UsrMod, GAsientos.TipoItem.Movimiento); } if (m_isCorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } }
public Boolean Save(ref Planillas Item) { try { String x_usuario = ""; DataAccessEnterpriseSQL.DABeginTransaction(); Boolean m_isCorrect = true; switch (Item.Instance) { case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added: m_isCorrect = Insert(ref Item); x_usuario = Item.AUDI_UsrCrea; foreach (Entities.DetCtaCte item in Item.ListDetCtaCte) { item.Instance = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added; } break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified: m_isCorrect = Update(ref Item); x_usuario = Item.AUDI_UsrMod; break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted: m_isCorrect = Delete(ref Item); break; } /* * Grabar Detalle de las planillas */ foreach (Movimiento item in Item.ListMovimiento) { item.AUDI_UsrMod = x_usuario; item.PLAN_Codigo = Item.PLAN_Codigo; item.PLAN_Tipo = Item.PLAN_Tipo; String _tipo = ""; switch (Item.PLAN_Tipo) { case "DET": _tipo = Item.PLAN_Tipo; break; case "WWW": _tipo = "BAN"; break; default: _tipo = Item.PLAN_Tipo; break; } item.MOVI_Referencia = String.Format("[Cod. Pla.:{2}-{0}] {1}", Item.PLAN_Codigo, Item.PLAN_Concepto, _tipo); Entities.Movimiento _item = item; m_isCorrect = BL_Movimiento.Save(ref _item, Movimiento.TInterfazMovimiento.RegistroPlanilla); item.MOVI_Codigo = _item.MOVI_Codigo; } /* * Grabar detalle de Cta Cte */ foreach (DetCtaCte iDetCtaCte in Item.ListDetCtaCte) { switch (iDetCtaCte.Instance) { case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Unchanged: break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added: iDetCtaCte.AUDI_UsrCrea = x_usuario; break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified: iDetCtaCte.AUDI_UsrMod = x_usuario; break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted: break; default: break; } #region Guardar el detalle de Transacciones iDetCtaCte.EMPR_Codigo = Item.EMPR_Codigo; iDetCtaCte.MOVI_Codigo = Item.ListMovimiento[0].MOVI_Codigo; iDetCtaCte.TIPO_TabMND = Item.ItemCuentasBancarias.TIPO_TabMND; iDetCtaCte.TIPO_CodMND = Item.ItemCuentasBancarias.TIPO_CodMND; //iDetCtaCte.CCCT_TipoCambio = Item.TipoCambio; iDetCtaCte.DCCT_TipoCambio = iDetCtaCte.CCCT_TipoCambio.Value; //Item.TipoCambio; iDetCtaCte.DCCT_FechaTrans = DateTime.Now; iDetCtaCte.DCCT_PagoDetraccion = (Item.TPlanilla == Planillas.TipoPlanilla.Detracciones); Decimal TipoCambio = iDetCtaCte.DCCT_TipoCambio; #region Movimiento de Egreso /* * Realizar las operaciones correspondientes para un Egreso */ iDetCtaCte.DCCT_MontoHaber = 0; iDetCtaCte.DCCT_MontoHaberD = 0; iDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); iDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Pago); /* * Verificar la Moneda de la Cuenta Bancaria */ if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Soles))) { /* * Si la Moneda de la cuenta bancaria es S/. (Nuevos Soles) * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes */ if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles))) { iDetCtaCte.DCCT_PPago = 0; iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); iDetCtaCte.DCCT_PPagoD = 0; iDetCtaCte.DCCT_MontoDebeD = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) / TipoCambio, 2, MidpointRounding.AwayFromZero); } else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares))) { iDetCtaCte.DCCT_PPago = 0; iDetCtaCte.DCCT_MontoDebe = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_PPagoD = 0; iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); } } else if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Dolares))) { /* * Si la Moneda de la cuenta Bancaria es en US$ (Dolares Americanos) * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes */ if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles))) { iDetCtaCte.DCCT_PPago = 0; iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = 0; iDetCtaCte.DCCT_MontoDebeD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); } } else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares))) { iDetCtaCte.DCCT_PPago = 0; iDetCtaCte.DCCT_MontoDebe = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_PPagoD = 0; iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); } } #endregion /* * Realizar la Operación de Grabado en la Base de datosm según la Instancia de la Clase */ Entities.DetCtaCte _idetctacte = iDetCtaCte; BL_DetCtaCte.Save(ref _idetctacte); #endregion } #region [ Generar Asientos de los Movimientos Generados ] foreach (Movimiento iMovi in Item.ListMovimiento) { GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoCaja); genAsientos.ItemMovimiento = iMovi; genAsientos.GenerarAsientoBD(Item.AUDI_UsrCrea); } #endregion if (m_isCorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } }
public Boolean Save(ref Transferencia Item) { try { DataAccessEnterpriseSQL.DABeginTransaction(); Boolean m_isCorrect = true; String x_Usuario = ""; switch (Item.Instance) { case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added: x_Usuario = Item.AUDI_UsrCrea; m_isCorrect = Insert(ref Item); foreach (Movimiento iMov in Item.ListIngresos) { iMov.Instance = InstanceEntity.Added; iMov.AUDI_UsrCrea = x_Usuario; } foreach (Movimiento iMov in Item.ListEgresos) { iMov.Instance = InstanceEntity.Added; iMov.AUDI_UsrCrea = x_Usuario; } foreach (GastosBancarios iGas in Item.ListGastosBancarios) { iGas.Instance = InstanceEntity.Added; iGas.AUDI_UsrCrea = x_Usuario; } break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified: x_Usuario = Item.AUDI_UsrMod; m_isCorrect = Update(ref Item); break; // case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted: // m_isCorrect = Delete(ref Item); //break; } /* * Grabar Detalles */ /* * Movimientos de Ingresos */ foreach (Movimiento iMov in Item.ListIngresosEliminados) { Movimiento _mov = iMov; _mov.TRAN_Codigo = Item.TRAN_Codigo; _mov.EMPR_Codigo = Item.EMPR_Codigo; _mov.AUDI_UsrMod = x_Usuario; _mov.Instance = InstanceEntity.Deleted; BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia); } foreach (Movimiento iMov in Item.ListIngresos) { Movimiento _mov = iMov; _mov.TRAN_Codigo = Item.TRAN_Codigo; _mov.EMPR_Codigo = Item.EMPR_Codigo; _mov.AUDI_UsrMod = x_Usuario; m_isCorrect = BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia); } /* * Moviemientos de Egresos */ foreach (Movimiento iMov in Item.ListEgresosEliminados) { Movimiento _mov = iMov; _mov.TRAN_Codigo = Item.TRAN_Codigo; _mov.EMPR_Codigo = Item.EMPR_Codigo; _mov.AUDI_UsrMod = x_Usuario; _mov.Instance = InstanceEntity.Deleted; BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia); } foreach (Movimiento iMov in Item.ListEgresos) { Movimiento _mov = iMov; _mov.TRAN_Codigo = Item.TRAN_Codigo; _mov.EMPR_Codigo = Item.EMPR_Codigo; _mov.AUDI_UsrMod = x_Usuario; m_isCorrect = BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia); } /* * Gastos Bancarios */ foreach (GastosBancarios iGBan in Item.ListGastosBancariosEliminados) { GastosBancarios _gban = iGBan; _gban.Instance = InstanceEntity.Deleted; BL_GastosBancarios.Save(ref _gban); } foreach (GastosBancarios iGBan in Item.ListGastosBancarios) { GastosBancarios _gban = iGBan; _gban.TRAN_Codigo = Item.TRAN_Codigo; _gban.EMPR_Codigo = Item.EMPR_Codigo; switch (_gban.Instance) { case InstanceEntity.Added: _gban.AUDI_UsrCrea = x_Usuario; break; case InstanceEntity.Modified: _gban.AUDI_UsrMod = x_Usuario; break; } m_isCorrect = BL_GastosBancarios.Save(ref _gban); } if (m_isCorrect) { GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoTransferencia); genAsientos.ItemTransferencia = Item; genAsientos.GenerarAsientoBD(x_Usuario); } /* * Termninar la transacción */ if (m_isCorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } }
public Boolean Save(ref Movimiento Item) { try { Boolean m_isCorrect = true; DataAccessEnterpriseSQL.DABeginTransaction(); String x_Usuario = ""; GAsientos genAsientos; #region [ Cabecera de Movimiento ] genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoCaja); switch (Item.Instance) { case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added: m_isCorrect = Insert(ref Item); if (Item.ListDetCtaCte != null) { foreach (Entities.DetCtaCte item in Item.ListDetCtaCte) { item.CCCT_Pendiente = Math.Abs(item.CCCT_Pendiente.Value); item.Instance = InstanceEntity.Added; } } Item.ItemCtaCteDescuadre = new CtaCte(); Item.ItemCtaCteDescuadre.Instance = InstanceEntity.Added; Item.ItemCtaCteDescuadre.AUDI_UsrCrea = Item.AUDI_UsrCrea; Item.ItemCtaCteDescuadre.ItemDetCtaCte = new DetCtaCte(); Item.ItemCtaCteDescuadre.ItemDetCtaCte.AUDI_UsrCrea = Item.AUDI_UsrCrea; Item.ItemCtaCteDescuadre.CCCT_FechaEmision = Item.MOVI_FecEmision; x_Usuario = Item.AUDI_UsrCrea; if (Item.ListFlujos != null && Item.ListFlujos.Count > 0) { foreach (Entities.MovimientoFlujo _movimientoFlujo in Item.ListFlujos) { MovimientoFlujo movimientoFlujo = _movimientoFlujo; movimientoFlujo.EMPR_Codigo = Item.EMPR_Codigo; movimientoFlujo.AUDI_UsrCrea = Item.AUDI_UsrCrea; movimientoFlujo.MOVI_Codigo = Item.MOVI_Codigo; //iMovimientoFlujo.CUBA_Codigo = Item.CUBA_Codigo; _movimientoFlujo.Instance = InstanceEntity.Added; m_isCorrect = BL_MovimientoFlujo.Save(ref movimientoFlujo); if (!m_isCorrect) { //Item.SetMensajeError(String.Format("* No se puede grabar la Chequera Numero {0}.", iMovimientoFlujo.MFLU_Item)); break; } } } if (Item.ListTipificaciones != null && Item.ListTipificaciones.Count > 0) { foreach (Entities.Tipificaciones iTipificacion in Item.ListTipificaciones) { Tipificaciones _tipificacion = iTipificacion; _tipificacion.EMPR_Codigo = Item.EMPR_Codigo; _tipificacion.MOVI_Codigo = Item.MOVI_Codigo; _tipificacion.AUDI_UsrCrea = Item.AUDI_UsrCrea; _tipificacion.Instance = InstanceEntity.Added; m_isCorrect = BL_Tipificaciones.Save(ref _tipificacion); } } break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified: m_isCorrect = Update(ref Item); foreach (Entities.DetCtaCte item in Item.ListDetCtaCte) { item.CCCT_Pendiente = Math.Abs(item.CCCT_Pendiente.Value); } if (Item.ItemCtaCteDescuadre == null) { Item.ItemCtaCteDescuadre = new CtaCte(); Item.ItemCtaCteDescuadre.Instance = InstanceEntity.Added; } Item.ItemCtaCteDescuadre.AUDI_UsrMod = Item.AUDI_UsrMod; x_Usuario = Item.AUDI_UsrMod; #region [ Flujos ] /* Eliminar los registros */ if (Item.ListFlujosEliminados != null && Item.ListFlujosEliminados.Count > 0) { foreach (Entities.MovimientoFlujo iMovimientoFlujo in Item.ListFlujosEliminados) { MovimientoFlujo MovimientoFlujo = iMovimientoFlujo; MovimientoFlujo.Instance = InstanceEntity.Deleted; BL_MovimientoFlujo.Save(ref MovimientoFlujo); } } /* Agregar o actualizar los registros */ if (Item.ListFlujos != null && Item.ListFlujos.Count > 0) { foreach (Entities.MovimientoFlujo iMovimientoFlujo in Item.ListFlujos) { MovimientoFlujo MovimientoFlujo = iMovimientoFlujo; MovimientoFlujo.EMPR_Codigo = Item.EMPR_Codigo; if (MovimientoFlujo.Instance == InstanceEntity.Added) { MovimientoFlujo.AUDI_UsrCrea = Item.AUDI_UsrCrea; } else if (MovimientoFlujo.Instance == InstanceEntity.Modified) { MovimientoFlujo.AUDI_UsrMod = Item.AUDI_UsrMod; } MovimientoFlujo.MOVI_Codigo = Item.MOVI_Codigo; m_isCorrect = BL_MovimientoFlujo.Save(ref MovimientoFlujo); if (!m_isCorrect) {// Item.SetMensajeError(String.Format("* No se puede grabar la Chequera Numero {0}.", _iChequera.CHEQ_Codigo)); break; } } } #endregion #region [ Tipificaciones ] if (Item.ListTipificacionesEliminados != null && Item.ListTipificacionesEliminados.Count > 0) { foreach (Entities.Tipificaciones iTipEli in Item.ListTipificacionesEliminados) { Tipificaciones _tipificacion = iTipEli; _tipificacion.Instance = InstanceEntity.Deleted; BL_Tipificaciones.Save(ref _tipificacion); } } if (Item.ListTipificaciones != null && Item.ListTipificaciones.Count > 0) { foreach (Entities.Tipificaciones iTipificacion in Item.ListTipificaciones) { Tipificaciones _tipificacion = iTipificacion; _tipificacion.EMPR_Codigo = Item.EMPR_Codigo; if (_tipificacion.Instance == InstanceEntity.Added) { _tipificacion.AUDI_UsrCrea = Item.AUDI_UsrMod; } else if (_tipificacion.Instance == InstanceEntity.Modified) { _tipificacion.AUDI_UsrMod = Item.AUDI_UsrMod; } _tipificacion.MOVI_Codigo = Item.MOVI_Codigo; m_isCorrect = BL_Tipificaciones.Save(ref _tipificacion); } } #endregion break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted: m_isCorrect = Delete(ref Item); break; } #endregion #region Detalles de CtaCte if (Item.ListDetCtaCteEliminados != null && Item.ListDetCtaCteEliminados.Count > 0) { foreach (Entities.DetCtaCte iDetCtaCte in Item.ListDetCtaCteEliminados) { Entities.DetCtaCte _idetctacte = iDetCtaCte; _idetctacte.Instance = InstanceEntity.Deleted; BL_DetCtaCte.Save(ref _idetctacte); } } if (Item.ListDetCtaCte != null && Item.ListDetCtaCte.Count > 0) { foreach (Entities.DetCtaCte iDetCtaCte in Item.ListDetCtaCte) { switch (iDetCtaCte.Instance) { case InstanceEntity.Unchanged: break; case InstanceEntity.Added: iDetCtaCte.AUDI_UsrCrea = x_Usuario; break; case InstanceEntity.Modified: iDetCtaCte.AUDI_UsrMod = x_Usuario; break; case InstanceEntity.Deleted: break; default: break; } #region Guardar el detalle de Transacciones iDetCtaCte.EMPR_Codigo = Item.EMPR_Codigo; iDetCtaCte.MOVI_Codigo = Item.MOVI_Codigo; iDetCtaCte.TIPO_TabMND = Item.ItemCuentasBancarias.TIPO_TabMND; iDetCtaCte.TIPO_CodMND = Item.ItemCuentasBancarias.TIPO_CodMND; iDetCtaCte.CCCT_TipoCambio = Item.MOVI_TipoCambio; iDetCtaCte.DCCT_FechaTrans = DateTime.Now; String TipoMovimiento = Item.TIPO_Movimiento.TIPO_Desc2; if (Item.TIPO_Movimiento.TIPO_Desc2.Equals("I")) { if (iDetCtaCte.TipoCtaCte.Equals("-")) { if (iDetCtaCte.TIPO_CodTDO.Equals(Entities.Tipos.GetTipo(Entities.Tipos.TipoTDO.NotaCredito))) { Item.TIPO_Movimiento.TIPO_Desc2 = "E"; } else { Item.TIPO_Movimiento.TIPO_Desc2 = "E"; } } } else if (Item.TIPO_Movimiento.TIPO_Desc2.Equals("E")) { if (iDetCtaCte.TipoCtaCte.Equals("-")) { if (iDetCtaCte.TIPO_CodTDO.Equals(Entities.Tipos.GetTipo(Entities.Tipos.TipoTDO.NotaCredito))) { Item.TIPO_Movimiento.TIPO_Desc2 = "I"; } else { Item.TIPO_Movimiento.TIPO_Desc2 = "I"; } } } Decimal TipoCambio = iDetCtaCte.DCCT_TipoCambio; if (Item.TIPO_Movimiento.TIPO_Desc2.Equals("E")) { #region Movimiento de Egreso /* * Realizar las operaciones correspondientes para un Egreso */ iDetCtaCte.DCCT_MontoHaber = 0; iDetCtaCte.DCCT_MontoHaberD = 0; iDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); iDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Pago); /* * Verificar la Moneda de la Cuenta Bancaria */ if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Soles))) { /* * Si la Moneda de la cuenta bancaria es S/. (Nuevos Soles) * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes */ if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles))) { #region Realizar ajustes si es Diferido - DEBE /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos))) { iDetCtaCte.DCCT_PPago = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); //iDetCtaCte.DCCT_MontoDebe = 0; iDetCtaCte.DCCT_PPagoD = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) / TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoDebeD = 0; } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoDebeD = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) / TipoCambio, 2, MidpointRounding.AwayFromZero); } iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); iDetCtaCte.DCCT_MontoDebeD = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) / TipoCambio, 2, MidpointRounding.AwayFromZero); /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares))) { #region Realizar ajustes si es Diferido - DEBE /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos))) { iDetCtaCte.DCCT_PPago = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoDebe = 0; iDetCtaCte.DCCT_PPagoD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); //iDetCtaCte.DCCT_MontoDebeD = 0; } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoDebe = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); } iDetCtaCte.DCCT_MontoDebe = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } } else if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Dolares))) { /* * Si la Moneda de la cuenta Bancaria es en US$ (Dolares Americanos) * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes */ if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles))) { #region Realizar ajustes si es Diferido - DEBE /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos))) { iDetCtaCte.DCCT_PPago = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); //iDetCtaCte.DCCT_MontoDebe = 0; if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoDebeD = 0; } } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoDebeD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); } } iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_MontoDebeD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); } /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares))) { #region Realizar ajustes si es Diferido - DEBE /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos))) { iDetCtaCte.DCCT_PPago = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoDebe = 0; iDetCtaCte.DCCT_PPagoD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); //iDetCtaCte.DCCT_MontoDebeD = 0; } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoDebe = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); } iDetCtaCte.DCCT_MontoDebe = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } } #endregion } else if (Item.TIPO_Movimiento.TIPO_Desc2.Equals("I")) { #region Movimiento de Ingreso /* * Realizar las operaciones correspondientes para un Ingreso */ iDetCtaCte.DCCT_MontoDebe = 0; iDetCtaCte.DCCT_MontoDebeD = 0; iDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); iDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Provision); /* * Verificar la Moneda de la Cuenta Bancaria */ if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Soles))) { /* * Si la Moneda de la cuenta bancaria es S/. (Nuevos Soles) * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes */ if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles))) { TipoCambio = iDetCtaCte.DCCT_TipoCambio; #region Realizar ajustes si es Diferido - HABER /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido))) { iDetCtaCte.DCCT_PPago = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); //iDetCtaCte.DCCT_MontoHaber = 0; } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoHaber = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); } iDetCtaCte.DCCT_MontoHaber = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion if (iDetCtaCte.CCCT_Pendiente.HasValue) { #region Realizar ajustes si es Diferido - HABER /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido))) { iDetCtaCte.DCCT_PPagoD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoHaberD = 0; } else { iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoHaberD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); } iDetCtaCte.DCCT_MontoHaberD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } } else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares))) { TipoCambio = iDetCtaCte.DCCT_TipoCambio; #region Realizar ajustes si es Diferido - HABER /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido))) { //iDetCtaCte.DCCT_MontoHaber = 0; //iDetCtaCte.DCCT_MontoHaberD = 0; iDetCtaCte.DCCT_PPago = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_PPagoD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); } else { //iDetCtaCte.DCCT_MontoHaber = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoHaberD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); iDetCtaCte.DCCT_PPago = 0; iDetCtaCte.DCCT_PPagoD = 0; } iDetCtaCte.DCCT_MontoHaber = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); iDetCtaCte.DCCT_MontoHaberD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } } else if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Dolares))) { /* * Si la Moneda de la cuenta Bancaria es en US$ (Dolares Americanos) * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes */ if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles))) { TipoCambio = iDetCtaCte.DCCT_TipoCambio; #region Realizar ajustes si es Diferido - HABER /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido))) { iDetCtaCte.DCCT_PPago = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); //iDetCtaCte.DCCT_MontoHaber = 0; if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoHaberD = 0; } } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoHaber = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoHaberD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); } } iDetCtaCte.DCCT_MontoHaber = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_MontoHaberD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero); } /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares))) { TipoCambio = iDetCtaCte.DCCT_TipoCambio; #region Realizar ajustes si es Diferido - HABER /* Cambio - Cheques Diferidos - 02/05/2016 - Por Proceso Incompleto - El diferido debe grabarse igual que un cheque normal */ if (Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.IngresosDiferidos)) || Item.TIPO_CodMOV.Equals(Item.GetTipoMovimiento(Entities.Movimiento.TipoMovimiento.EgresosChequeDiferido))) { iDetCtaCte.DCCT_PPago = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); //iDetCtaCte.DCCT_MontoHaber = 0; if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = iDetCtaCte.CCCT_Pendiente.Value; //iDetCtaCte.DCCT_MontoHaberD = 0; } } else { iDetCtaCte.DCCT_PPago = 0; //iDetCtaCte.DCCT_MontoHaber = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_PPagoD = 0; //iDetCtaCte.DCCT_MontoHaberD = iDetCtaCte.CCCT_Pendiente.Value; } } iDetCtaCte.DCCT_MontoHaber = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero); if (iDetCtaCte.CCCT_Pendiente.HasValue) { iDetCtaCte.DCCT_MontoHaberD = iDetCtaCte.CCCT_Pendiente.Value; } /* Fin de Cambio - Cheques Diferidos - 02/05/2016 */ #endregion } } #endregion } /* * Realizar la Operación de Grabado en la Base de datosm según la Instancia de la Clase */ Entities.DetCtaCte _idetctacte = iDetCtaCte; BL_DetCtaCte.Save(ref _idetctacte); Item.TIPO_Movimiento.TIPO_Desc2 = TipoMovimiento; #endregion } #region Liquidacion - Terminar if (Item.EsLiquidacion) { Entities.Liquidacion _itemLiquidacion = new Liquidacion(); _itemLiquidacion.EMPR_Codigo = Item.EMPR_Codigo; _itemLiquidacion.LIQU_Codigo = Item.Liquidacion.LIQU_Codigo; _itemLiquidacion.AUDI_UsrMod = x_Usuario; _itemLiquidacion.SetEstado(Liquidacion.Estado.Liquidado); m_isCorrect = BL_Liquidacion.Save(ref _itemLiquidacion, Liquidacion.TOperacion.Liquidar); } #endregion } #region Guardar Si existe un Descuadre m_isCorrect = GuardarDescuadre(ref Item, x_Usuario); #endregion #endregion #region Grabar Flujos #endregion #region [ Generar Asiento Contable ] if (m_isCorrect) { genAsientos.ItemMovimiento = Item; switch (Item.Instance) { case InstanceEntity.Unchanged: break; case InstanceEntity.Added: genAsientos.GenerarAsientoBD(x_Usuario); //m_isCorrect = genAsientos.GenerarAsiento(x_Usuario, Item.SUCR_Codigo); //if (m_isCorrect) //{ genAsientos.ActualizarMovimiento(x_Usuario); } break; case InstanceEntity.Modified: genAsientos.GenerarAsientoBD(x_Usuario); //m_isCorrect = genAsientos.ActualizarAsiento(Item.AUDI_UsrMod, Item.SUCR_Codigo); break; case InstanceEntity.Deleted: break; default: break; } } #endregion if (m_isCorrect) { DataAccessEnterpriseSQL.DACommitTransaction(); } else { DataAccessEnterpriseSQL.DARollbackTransaction(); } return(m_isCorrect); } catch (Exception) { DataAccessEnterpriseSQL.DARollbackTransaction(); throw; } }