private void AbrirCtaCte() { try { if (BSItems.Current != null) { Entities.DetCtaCte _detctacte = (BSItems.Current as Entities.DetCtaCte); Presenter.AbriCtaCte(_detctacte); } } catch (Exception ex) { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Presenter.Title, "Ha ocurrido un error al Abrir Cta. Cte. del Item.", ex); } }
/// <summary> /// Abrir registro de cuenta corriente /// </summary> /// <param name="_detctacte"></param> public void AbriCtaCte(Entities.DetCtaCte _detctacte) { try { CAJ012IngresoLibrePresenter CAJ012_presenter; CAJ012_presenter = new CAJ012IngresoLibrePresenter(ContainerService, CAJ012IngresoLibrePresenter.TipoInicio.MostraCtaCte); CAJ012_presenter.Load(); CAJ012_presenter.ItemLView = new CtaCte(); CAJ012_presenter.ItemLView.EMPR_Codigo = _detctacte.EMPR_Codigo; CAJ012_presenter.ItemLView.CCCT_Codigo = _detctacte.CCCT_Codigo; CAJ012_presenter.Editar(); } catch (Exception) { throw; } }
public Boolean SaveExtornar(ref Movimiento Item) { try { Boolean m_isCorrect = true; DataAccessEnterpriseSQL.DABeginTransaction(); Item.MOVI_CodPadre = Item.MOVI_Codigo; Item.SetEstado(Movimiento.Estado.Ingresado); Item.Instance = InstanceEntity.Added; m_isCorrect = Insert(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_CodPadre, 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_MontoHaber = iDetCtaCte.DCCT_MontoDebe; iDetCtaCte.DCCT_MontoDebe = 0; iDetCtaCte.DCCT_MontoHaberD = iDetCtaCte.DCCT_MontoDebeD; iDetCtaCte.DCCT_MontoDebeD = 0; } else 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; } //iDetCtaCte.MOVI_Codigo = Item.MOVI_Codigo; //if (Item.TIPO_Movimiento.TIPO_Desc2.Equals("I")) //{ // iDetCtaCte.DCCT_MontoDebe = iDetCtaCte.DCCT_MontoHaber; // iDetCtaCte.DCCT_MontoHaber = 0; //} //else if (Item.TIPO_Movimiento.TIPO_Desc2.Equals("E")) //{ // iDetCtaCte.DCCT_MontoHaber = iDetCtaCte.DCCT_MontoDebe; // iDetCtaCte.DCCT_MontoDebe = 0; //} iDetCtaCte.Instance = InstanceEntity.Added; iDetCtaCte.AUDI_UsrCrea = Item.AUDI_UsrCrea; iDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); iDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Extorno); //iDetCtaCte.DCCT_TipoPago = Entities.DetCtaCte _detCtaCte = iDetCtaCte; BL_DetCtaCte.Save(ref _detCtaCte); } } 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; } }
private void btnBuscar_Click(object sender, EventArgs e) { try { Int32?ENCT_Codigo = null; if (txaENTC_Codigo.SelectedItem != null) { ENCT_Codigo = txaENTC_Codigo.SelectedItem.ENTC_Codigo; } DateTime?Fecha = null; if (dtpMOVI_FecEmision.NSFecha.HasValue) { Fecha = dtpMOVI_FecEmision.NSFecha; } String TipoDocumento = null; if (cmbTipoDocumento.ConstantesSelectedItem != null) { TipoDocumento = cmbTipoDocumento.ConstantesSelectedItem.CONS_CodTipo; } String MBL = null; if (!String.IsNullOrEmpty(txtMBL.Text)) { MBL = txtMBL.Text; } String HBL = null; if (!String.IsNullOrEmpty(txtHBL.Text)) { HBL = txtHBL.Text; } String F_TIPO_CodTDO = null; if (cmbTIPO_CodTDO.TiposSelectedItem != null) { F_TIPO_CodTDO = cmbTIPO_CodTDO.TiposSelectedItem.TIPO_CodTipo; } String F_CCCT_Serie = null; if (!String.IsNullOrEmpty(txtCCCT_Serie.Text)) { F_CCCT_Serie = txtCCCT_Serie.Text; } String F_CCCT_Numero = null; if (!String.IsNullOrEmpty(txtCCCT_Numero.Text)) { F_CCCT_Numero = txtCCCT_Numero.Text; } Boolean x_TipoDocumento = true; if (TipoMovimiento == TipoMovimientoCtaCte.Egresos) { if (String.IsNullOrEmpty(TipoDocumento)) { x_TipoDocumento = false; } } //grdItemsDocumentos.Columns["MODULO"].IsVisible = x_TipoDocumento; if (ENCT_Codigo.HasValue && Fecha.HasValue && x_TipoDocumento) { ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL> _listFilters = new ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL>(); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@psinEMPR_Codigo", FilterValue = Delfin.Controls.Entorno.ItemEmpresa.EMPR_Codigo, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Int16, FilterSize = 2 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pintENTC_Codigo", FilterValue = ENCT_Codigo, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Int32, FilterSize = 4 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pdtmCCCT_FechaEmision", FilterValue = Fecha, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.DateTime, FilterSize = 8 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@TipoDocumento", FilterValue = TipoDocumento, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Varchar, FilterSize = 8 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@HBL", FilterValue = HBL, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Varchar, FilterSize = 50 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@MBL", FilterValue = MBL, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Varchar, FilterSize = 50 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pchrTIPO_CodTDO", FilterValue = F_TIPO_CodTDO, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Varchar, FilterSize = 3 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pvchCCCT_Serie", FilterValue = F_CCCT_Serie, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Varchar, FilterSize = 20 }); _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pvchCCCT_Numero", FilterValue = F_CCCT_Numero, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Varchar, FilterSize = 20 }); if (txaNVIA_Codigo.Value != null) { _listFilters.Add(new Infrastructure.Aspect.DataAccess.DataAccessFilterSQL() { FilterName = "@pintNVIA_Codigo", FilterValue = (txaNVIA_Codigo.Value as Entities.NaveViaje).NVIA_Codigo, FilterType = Infrastructure.Aspect.DataAccess.DataAccessFilterTypes.Int32, FilterSize = 4 }); } String _procedure = "CAJ_CCCTSS_TodosPendientes"; switch (TipoMovimiento) { case TipoMovimientoCtaCte.Ingresos: _procedure = "CAJ_CCCTSS_TodosPendientesIngresos"; break; case TipoMovimientoCtaCte.Egresos: _procedure = "CAJ_CCCTSS_TodosPendientesEgresos"; if (cmbTipoDocumento.ConstantesSelectedItem.CONS_CodTipo.Equals("LI")) { FormatGridDocumentos(CAJ002IngresosEgresosPresenter.TBusqueda.Liquidaciones); Presenter.TipoBusqueda = CAJ002IngresosEgresosPresenter.TBusqueda.Liquidaciones; Presenter.Item.EsLiquidacion = true; } else { FormatGridDocumentos(CAJ002IngresosEgresosPresenter.TBusqueda.Base); Presenter.TipoBusqueda = CAJ002IngresosEgresosPresenter.TBusqueda.Base; Presenter.Item.EsLiquidacion = false; } break; } Items = Presenter.Client.GetAllDetCtaCteFilter(_procedure, _listFilters); if (Presenter.Item.ListDetCtaCte != null && Presenter.Item.ListDetCtaCte.Count > 0) { foreach (Entities.DetCtaCte idetCtaCte in Presenter.Item.ListDetCtaCte) { Entities.DetCtaCte _delete = Items.Where(Del => Del.CCCT_Codigo == idetCtaCte.CCCT_Codigo).FirstOrDefault(); if (_delete != null) { Items.Remove(_delete); } } } BSItems.DataSource = Items; BSItems.ResetBindings(true); grdItemsDocumentos.BestFitColumns(); } else { String msg = ""; if (!ENCT_Codigo.HasValue) { msg += "* Seleccione una Entidad" + Environment.NewLine; } if (!Fecha.HasValue) { msg += "* Seleccione una fecha" + Environment.NewLine; } if (String.IsNullOrEmpty(TipoDocumento)) { msg += "* Seleccione el tipo de busqueda" + Environment.NewLine; } Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Presenter.Title, "No puede realizar la busqueda, faltan datos, haga click en el boton detalles", msg); } } catch (Exception ex) { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Presenter.Title, "Ha Ocurrido al consultar", ex); } }
/// <summary> /// Permite guardar el documento nota de credito, realizando las respectivas operaciones para completar el proceso en finanzas /// </summary> /// <param name="Item"></param> /// <returns></returns> public Boolean SaveNotaCredito(ref DocsVta Item) { try { Boolean m_isCorrect = true; String x_usuario = ""; Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DABeginTransaction(); switch (Item.Instance) { case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added: m_isCorrect = InsertNotaCredito(ref Item); x_usuario = Item.AUDI_UsrCrea; /* CtaCte */ getCtaCte(ref Item); Item.ItemCtaCte.AUDI_UsrCrea = x_usuario; Item.ItemCtaCte.Instance = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added; Item.ItemDetCtaCte.AUDI_UsrCrea = x_usuario; Item.ItemDetCtaCte.Instance = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added; Item.ItemDetCtaCteFactura.Instance = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added; break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified: m_isCorrect = UpdateNotaCredito(ref Item); x_usuario = Item.AUDI_UsrMod; getDocsVta(ref Item); if (Item.ItemCtaCte != null) { getCtaCte(ref Item); Item.ItemCtaCte.AUDI_UsrMod = x_usuario; Item.ItemDetCtaCte.AUDI_UsrMod = x_usuario; } Item.ItemDetCtaCteFactura.AUDI_UsrMod = x_usuario; if (Item.ItemDetCtaCteFactura.Instance != Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added) { Item.ItemDetCtaCteFactura.Instance = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified; } break; case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted: m_isCorrect = Delete(ref Item); break; } /* CtaCte */ Entities.CtaCte _itemCtaCte = Item.ItemCtaCte; if (_itemCtaCte != null && BL_CtaCte.Save(ref _itemCtaCte)) { Entities.DetCtaCte _itemDetCtaCte = Item.ItemDetCtaCte; _itemDetCtaCte.CCCT_Codigo = _itemCtaCte.CCCT_Codigo; _itemDetCtaCte.DCCT_MontoDebe = 0; _itemDetCtaCte.DCCT_MontoDebeD = 0; _itemDetCtaCte.DCCT_MontoHaber = Item.DOCV_ValorVtaTotal; _itemDetCtaCte.DCCT_MontoHaberD = Item.DOCV_ValorVtaTotalD; _itemDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); _itemDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Provision); _itemDetCtaCte.DCCT_TipoCambio = Item.DOCV_TipoCambio; _itemDetCtaCte.TIPO_CodMND = Item.TIPO_CodMND; _itemDetCtaCte.TIPO_TabMND = Item.TIPO_TabMND; _itemDetCtaCte.DCCT_FechaTrans = Item.DOCV_FechaEmision.Value; _itemDetCtaCte.CCCT_CodReferencia = null; _itemDetCtaCte.DCCT_ItemReferencia = null; m_isCorrect = BL_DetCtaCte.Save(ref _itemDetCtaCte); Item.ItemDetCtaCte = _itemDetCtaCte; } /* Canjes en la Factura * * * if (m_isCorrect && Item.ItemDetCtaCteFactura.CCCT_Pendiente.HasValue && Item.ItemDetCtaCteFactura.CCCT_Pendiente > 0 && Item.ItemDetCtaCte != null) * { * Entities.DetCtaCte _itemDetCtaCte = Item.ItemDetCtaCteFactura; * _itemDetCtaCte.DCCT_MontoDebe = 0; * _itemDetCtaCte.DCCT_MontoDebeD = 0; * _itemDetCtaCte.DCCT_MontoHaber = Item.DOCV_ValorVtaTotal; * _itemDetCtaCte.DCCT_MontoHaberD = Item.DOCV_ValorVtaTotalD; * _itemDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); * _itemDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Canje); * _itemDetCtaCte.DCCT_TipoCambio = Item.DOCV_TipoCambio; * _itemDetCtaCte.TIPO_CodMND = Item.TIPO_CodMND; * _itemDetCtaCte.TIPO_TabMND = Item.TIPO_TabMND; * _itemDetCtaCte.DCCT_FechaTrans = Item.DOCV_FechaEmision.Value; * _itemDetCtaCte.CCCT_CodReferencia = Item.ItemCtaCte.CCCT_Codigo; * _itemDetCtaCte.AUDI_UsrCrea = x_usuario; * * m_isCorrect = BL_DetCtaCte.Save(ref _itemDetCtaCte); * Item.ItemDetCtaCteFactura = _itemDetCtaCte; * } * * if (m_isCorrect && Item.ItemDetCtaCteFactura.CCCT_Pendiente.HasValue && Item.ItemDetCtaCteFactura.CCCT_Pendiente > 0 && Item.ItemDetCtaCte!= null) * { * Entities.DetCtaCte _itemDetCtaCte = Item.ItemDetCtaCte; * _itemDetCtaCte.DCCT_MontoDebe = Item.DOCV_ValorVtaTotal; * _itemDetCtaCte.DCCT_MontoDebeD = Item.DOCV_ValorVtaTotalD; * _itemDetCtaCte.DCCT_MontoHaber = 0; * _itemDetCtaCte.DCCT_MontoHaberD = 0; * _itemDetCtaCte.CONS_TabTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(); * _itemDetCtaCte.CONS_CodTDC = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Canje); * _itemDetCtaCte.DCCT_TipoCambio = Item.DOCV_TipoCambio; * _itemDetCtaCte.TIPO_CodMND = Item.TIPO_CodMND; * _itemDetCtaCte.TIPO_TabMND = Item.TIPO_TabMND; * _itemDetCtaCte.CCCT_CodReferencia = Item.ItemDetCtaCteFactura.CCCT_Codigo; * _itemDetCtaCte.DCCT_ItemReferencia = Item.ItemDetCtaCteFactura.DCCT_Item; * _itemDetCtaCte.DCCT_FechaTrans = Item.DOCV_FechaEmision.Value; * _itemDetCtaCte.AUDI_UsrCrea = x_usuario; * * m_isCorrect = BL_DetCtaCte.Save(ref _itemDetCtaCte, DetCtaCte.TInterfazDetCtaCte.Canje); * } */ 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 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; } }