private bool GuardaRefDocumento(GastoDeAduanaAux itemGastoDeAduana, int?codGastoDeAduana)
        {
            ComprobanteEmisionData comprobanteEmisionData = new ComprobanteEmisionData();
            bool exitosa = comprobanteEmisionData.UpdateAsignaGastoDeAduana(itemGastoDeAduana.codDocumRegDestino,

                                                                            codGastoDeAduana.Value,
                                                                            itemGastoDeAduana.segUsuarioEdita);

            return(exitosa);
        }
        /// <summary>
        /// ELIMINA un registro de la Entidad GestionComercial.GastoDeAduana
        /// En la BASE de DATO la Tabla : [GestionComercial.GastoDeAduana]
        /// <summary>
        /// <returns>bool</returns>
        public ReturnValor Delete(GastoDeAduanaAux gastoDeAduana)
        {
            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    oReturnValor.Exitosa = oGastoDeAduanaData.Delete(gastoDeAduana.codDocumReg, gastoDeAduana.codRegistroGasto, gastoDeAduana.segUsuarioEdita, true);

                    ComprobanteEmisionData comprobanteEmisionData = new ComprobanteEmisionData();
                    bool sucede = comprobanteEmisionData.UpdateAsignaGastoDeAduanaDeshace(gastoDeAduana.codDocumRegDestino, gastoDeAduana.codGastoDeAduana, gastoDeAduana.segUsuarioEdita);
                    if (oReturnValor.Exitosa && sucede)
                    {
                        oReturnValor.Message = HelpMessages.Evento_DELETE;
                        tx.Complete();
                    }
                }
            }
            catch (Exception ex)
            {
                oReturnValor = HelpException.mTraerMensaje(ex);
            }
            return(oReturnValor);
        }
        /// <summary>
        /// Almacena el registro de una ENTIDAD de registro de Tipo GastoDeAduana
        /// En la BASE de DATO la Tabla : [GestionComercial.GastoDeAduana]
        /// <summary>
        /// <param name = >itemGastoDeAduana</param>
        public ReturnValor InsertUpdate(GastoDeAduanaAux itemGastoDeAduana)
        {
            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (string.IsNullOrEmpty(itemGastoDeAduana.codDocumentoDest))
                    {
                        itemGastoDeAduana.codDocumentoDest = null;
                    }
                    if (string.IsNullOrEmpty(itemGastoDeAduana.numDocumentoDest))
                    {
                        itemGastoDeAduana.numDocumentoDest = null;
                    }

                    if (itemGastoDeAduana.codDocumentoDest != null && itemGastoDeAduana.numDocumentoDest != null)
                    {
                        ComprobanteEmisionData comprobanteEmisionData = new ComprobanteEmisionData();
                        BEComprobanteEmision   comprobanteEmision     = new BEComprobanteEmision();
                        comprobanteEmision = comprobanteEmisionData.Find(itemGastoDeAduana.codDocumRegDestino);
                        if (itemGastoDeAduana.codRegistroMoneda != comprobanteEmision.CodigoArguMoneda)
                        {
                            throw new Exception("El gasto a registrar no tiene el mismo tipo de moneda del documento asigando.");
                        }
                        if (itemGastoDeAduana.codRegistroMoneda == ConfigCROM.AppConfig(ConfigTool.DEFAULT_MonedaNac))
                        {
                            if (itemGastoDeAduana.monValorDeGasto != comprobanteEmision.ValorTotalPrecioVenta)
                            {
                                throw new Exception("El monto del gasto a registrar no es igual que el documento asigando.  Se esperaba el monto de : [ " + comprobanteEmision.ValorTotalPrecioVenta.ToString("N2") + " ]");
                            }
                        }
                        else if (itemGastoDeAduana.codRegistroMoneda == ConfigCROM.AppConfig(ConfigTool.DEFAULT_MonedaInt))
                        {
                            if (itemGastoDeAduana.monValorDeGasto != comprobanteEmision.ValorTotalPrecioExtran)
                            {
                                throw new Exception("El monto del gasto a registrar no es igual que el documento asigando.  Se esperaba el monto de : [ " + comprobanteEmision.ValorTotalPrecioExtran.ToString("N2") + " ]");
                            }
                        }
                    }

                    int?resultado = null;

                    if (itemGastoDeAduana.codGastoDeAduana == 0)
                    {
                        resultado = oGastoDeAduanaData.Insert(itemGastoDeAduana);
                        if (resultado != null)
                        {
                            itemGastoDeAduana.codGastoDeAduana = resultado.Value;
                            oReturnValor.Exitosa = GuardaRefDocumento(itemGastoDeAduana, resultado);
                        }
                        if (oReturnValor.Exitosa && resultado != null)
                        {
                            oReturnValor.Message = HelpMessages.Evento_NEW;
                            tx.Complete();
                        }
                    }
                    else if (itemGastoDeAduana.codGastoDeAduana > 0)
                    {
                        bool resultadoB = oGastoDeAduanaData.Update(itemGastoDeAduana);
                        oReturnValor.Exitosa = GuardaRefDocumento(itemGastoDeAduana, itemGastoDeAduana.codGastoDeAduana);
                        if (oReturnValor.Exitosa && resultadoB)
                        {
                            oReturnValor.Message = HelpMessages.Evento_EDIT;
                            tx.Complete();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                oReturnValor.Message = ex.Message;
            }
            return(oReturnValor);
        }
 public LetraDeCambioLogic()
 {
     oLetraDeCambioData     = new LetraDeCambioData();
     comprobanteEmisionData = new ComprobanteEmisionData();
     oReturnValor           = new ReturnValor();
 }
 public CajaRegistroLogic()
 {
     oCajaRegistroData       = new CajaRegistroData();
     oComprobanteEmisionData = new ComprobanteEmisionData();
     oReturnValor            = new ReturnValor();
 }