public Boolean OPE_Save(ref Cab_Cotizacion_OV Item, ref String CCOT_MensajeError)
        {
            Boolean m_isCorrect = true;
            Boolean m_isAdded   = true;
            String  m_usuario   = "";

            try
            {
                Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DABeginTransaction();
                if (Item.Instance != Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added && !OPE_ValidateVersion(ref Item))
                {
                    Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction();

                    Item = OPE_SelectOne(Item.EMPR_Codigo.Value, Item.SUCR_Codigo.Value, Item.CCOT_Tipo, Item.CCOT_Numero);
                    CCOT_MensajeError = String.Format("El registro que esta editando ha sido modificado(Usuario: {0} - Fecha: {1}), el sistema cargará el registro con los valores actualizados, sus cambios no se han guardado.", (!String.IsNullOrEmpty(Item.AUDI_UsrMod) ? Item.AUDI_UsrMod : ""), (Item.AUDI_FecMod.HasValue ? Item.AUDI_FecMod.Value.ToLongDateString() : ""));

                    return(false);
                }
                else
                {
                    switch (Item.Instance)
                    {
                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added:
                        m_isCorrect = OPE_Insert(ref Item); m_isAdded = true; m_usuario = Item.AUDI_UsrCrea; break;

                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified:
                        m_isCorrect = OPE_Update(ref Item); m_isAdded = false; m_usuario = Item.AUDI_UsrMod; break;

                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted:
                        m_isCorrect = OPE_Delete(ref Item);

                        if (m_isCorrect)
                        {
                            Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DACommitTransaction(); return(true);
                        }
                        else
                        {
                            Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); return(false);
                        }
                    }
                    if (m_isCorrect)
                    {
                        for (int indexFlete = 0; indexFlete < Item.ItemsFlete.Count; indexFlete++)
                        {
                            Det_Cotizacion_OV_Flete _itemFlete = Item.ItemsFlete[indexFlete];
                            _itemFlete.CCOT_Tipo   = Item.CCOT_Tipo;
                            _itemFlete.CCOT_Numero = Item.CCOT_Numero;

                            if (_itemFlete.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                            {
                                _itemFlete.AUDI_UsrCrea = m_usuario;
                            }
                            else if (_itemFlete.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                            {
                                _itemFlete.AUDI_UsrMod = m_usuario;
                            }

                            m_isCorrect = BL_Det_Cotizacion_OV_Flete.Save(ref _itemFlete, false);
                            if (!m_isCorrect)
                            {
                                break;
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexFlete = 0; indexFlete < Item.ItemsFleteDeleted.Count; indexFlete++)
                            {
                                Det_Cotizacion_OV_Flete _itemFlete = Item.ItemsFleteDeleted[indexFlete];
                                _itemFlete.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemFlete.CCOT_Numero = Item.CCOT_Numero;
                                m_isCorrect            = BL_Det_Cotizacion_OV_Flete.Save(ref _itemFlete, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexServicio = 0; indexServicio < Item.ItemsServicio.Count; indexServicio++)
                            {
                                Det_Cotizacion_OV_Servicio _itemServicio = Item.ItemsServicio[indexServicio];
                                _itemServicio.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemServicio.CCOT_Numero = Item.CCOT_Numero;

                                if (_itemServicio.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                                {
                                    _itemServicio.AUDI_UsrCrea = m_usuario;
                                }
                                else if (_itemServicio.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    _itemServicio.AUDI_UsrMod = m_usuario;
                                }

                                m_isCorrect = BL_Det_Cotizacion_OV_Servicio.Save(ref _itemServicio, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexServicio = 0; indexServicio < Item.ItemsServicioDeleted.Count; indexServicio++)
                            {
                                Det_Cotizacion_OV_Servicio _itemServicio = Item.ItemsServicioDeleted[indexServicio];
                                _itemServicio.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemServicio.CCOT_Numero = Item.CCOT_Numero;
                                m_isCorrect = BL_Det_Cotizacion_OV_Servicio.Save(ref _itemServicio, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }

                        if (m_isCorrect)
                        {
                            for (int indexServicioChangeControl = 0; indexServicioChangeControl < Item.ItemsServicioChangeControl.Count; indexServicioChangeControl++)
                            {
                                Det_Cotizacion_OV_Servicio _itemServicioChangeControl = Item.ItemsServicioChangeControl[indexServicioChangeControl];
                                _itemServicioChangeControl.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemServicioChangeControl.CCOT_Numero = Item.CCOT_Numero;

                                if (_itemServicioChangeControl.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                                {
                                    _itemServicioChangeControl.AUDI_UsrCrea = m_usuario;
                                }
                                else if (_itemServicioChangeControl.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    _itemServicioChangeControl.AUDI_UsrMod = m_usuario;
                                }

                                m_isCorrect = BL_Det_Cotizacion_OV_Servicio.Save(ref _itemServicioChangeControl, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexServicioChangeControl = 0; indexServicioChangeControl < Item.ItemsServicioChangeControlDeleted.Count; indexServicioChangeControl++)
                            {
                                Det_Cotizacion_OV_Servicio _itemServicioChangeControl = Item.ItemsServicioChangeControlDeleted[indexServicioChangeControl];
                                _itemServicioChangeControl.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemServicioChangeControl.CCOT_Numero = Item.CCOT_Numero;
                                m_isCorrect = BL_Det_Cotizacion_OV_Servicio.Save(ref _itemServicioChangeControl, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }

                        if (m_isCorrect)
                        {
                            for (int indexEventoServicio = 0; indexEventoServicio < Item.ItemsEventosTareas.Count; indexEventoServicio++)
                            {
                                Det_Cotizacion_OV_EventosTareas _itemEventoTarea = Item.ItemsEventosTareas[indexEventoServicio];
                                _itemEventoTarea.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemEventoTarea.CCOT_Numero = Item.CCOT_Numero;

                                if (_itemEventoTarea.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                                {
                                    _itemEventoTarea.AUDI_UsrCrea = m_usuario;
                                }
                                else if (_itemEventoTarea.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    _itemEventoTarea.AUDI_UsrMod = m_usuario;
                                }

                                m_isCorrect = BL_EventosTareas.Save(ref _itemEventoTarea, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexEventoServicio = 0; indexEventoServicio < Item.ItemsEventosTareasDeleted.Count; indexEventoServicio++)
                            {
                                Det_Cotizacion_OV_EventosTareas _itemEventoTarea = Item.ItemsEventosTareasDeleted[indexEventoServicio];
                                _itemEventoTarea.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemEventoTarea.CCOT_Numero = Item.CCOT_Numero;
                                _itemEventoTarea.Instance    = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted;
                                m_isCorrect = BL_EventosTareas.Save(ref _itemEventoTarea, false);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }

                        if (m_isCorrect)
                        {
                            for (int indexAnexos = 0; indexAnexos < Item.ItemsAnexos.Count; indexAnexos++)
                            {
                                Anexos _itemAnexo = Item.ItemsAnexos[indexAnexos];
                                _itemAnexo.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemAnexo.CCOT_Numero = Item.CCOT_Numero;

                                if (_itemAnexo.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                                {
                                    _itemAnexo.AUDI_UsrCrea = m_usuario;
                                }
                                else if (_itemAnexo.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    _itemAnexo.AUDI_UsrMod = m_usuario;
                                }

                                m_isCorrect = BL_Anexos.Save(ref _itemAnexo);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexAnexos = 0; indexAnexos < Item.ItemsAnexosDeleted.Count; indexAnexos++)
                            {
                                Anexos _itemAnexo = Item.ItemsAnexosDeleted[indexAnexos];
                                _itemAnexo.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemAnexo.CCOT_Numero = Item.CCOT_Numero;
                                m_isCorrect            = BL_Anexos.Save(ref _itemAnexo);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }


                        if (m_isCorrect)
                        {
                            for (int indexArchivos = 0; indexArchivos < Item.ItemsArchivo.Count; indexArchivos++)
                            {
                                Det_Cotizacion_OV_Archivo _itemArchivo = Item.ItemsArchivo[indexArchivos];

                                if (_itemArchivo.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                                {
                                    _itemArchivo.AUDI_UsrCrea = m_usuario;
                                }
                                else if (_itemArchivo.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    _itemArchivo.AUDI_UsrMod = m_usuario;
                                }

                                if (_itemArchivo.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    m_isCorrect = BL_Det_Cotizacion_OV_Archivo.Save(ref _itemArchivo);
                                }
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }

                        if (m_isCorrect)
                        {
                            for (int indexDet_CNTR = 0; indexDet_CNTR < Item.ItemsDet_CNTR.Count; indexDet_CNTR++)
                            {
                                Det_CNTR _itemDet_CNTR = Item.ItemsDet_CNTR[indexDet_CNTR];
                                _itemDet_CNTR.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemDet_CNTR.CCOT_Numero = Item.CCOT_Numero;

                                if (_itemDet_CNTR.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added)
                                {
                                    _itemDet_CNTR.AUDI_UsrCrea = m_usuario;
                                }
                                else if (_itemDet_CNTR.Instance == Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified)
                                {
                                    _itemDet_CNTR.AUDI_UsrMod = m_usuario;
                                }

                                m_isCorrect = BL_Det_CNTR.Save(ref _itemDet_CNTR);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }
                        if (m_isCorrect)
                        {
                            for (int indexDet_CNTR = 0; indexDet_CNTR < Item.ItemsDet_CNTRDeleted.Count; indexDet_CNTR++)
                            {
                                Det_CNTR _itemDet_CNTR = Item.ItemsDet_CNTRDeleted[indexDet_CNTR];
                                _itemDet_CNTR.CCOT_Tipo   = Item.CCOT_Tipo;
                                _itemDet_CNTR.CCOT_Numero = Item.CCOT_Numero;
                                m_isCorrect = BL_Det_CNTR.Save(ref _itemDet_CNTR);
                                if (!m_isCorrect)
                                {
                                    break;
                                }
                            }
                        }

                        if (m_isCorrect)
                        {
                            m_isCorrect = InsertDetalleViaje(Item.CCOT_Tipo, Item.CCOT_Numero, m_usuario, ref CCOT_MensajeError);
                        }
                    }
                    if (m_isCorrect)
                    {
                        Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DACommitTransaction();

                        if (Item.EMPR_Codigo.HasValue && Item.SUCR_Codigo.HasValue)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction();
                        return(false);
                    }
                }
            }
            catch (Exception)
            { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); throw; }
        }
Esempio n. 2
0
        public Cab_Cotizacion_OV SavePrefacturados(ref Cab_Cotizacion_OV Item, ref String CCOT_MensajeError)
        {
            Boolean m_isCorrect = true;
            Boolean m_isAdded   = true;
            String  m_usuario   = "";

            try
            {
                Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DABeginTransaction();
                switch (Item.Instance)
                {
                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added:
                    break;

                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified:
                    m_isAdded = false;
                    m_usuario = Item.AUDI_UsrMod;
                    break;

                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted:

                default:
                    break;
                }

                if (m_isCorrect)
                {
                    for (int indexServicio = 0; indexServicio < Item.ItemsServicio.Count; indexServicio++)
                    {
                        Det_Cotizacion_OV_Servicio _itemServicio = Item.ItemsServicio[indexServicio];
                        _itemServicio.CCOT_Tipo   = Item.CCOT_Tipo;
                        _itemServicio.CCOT_Numero = Item.CCOT_Numero;
                        m_isCorrect = BL_Det_Cotizacion_OV_Servicio.Save(ref _itemServicio, false);
                        if (!m_isCorrect)
                        {
                            break;
                        }
                    }
                }
                if (m_isCorrect)
                {
                    Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DACommitTransaction();

                    if (Item.EMPR_Codigo.HasValue && Item.SUCR_Codigo.HasValue)
                    {
                        return(GetOne(Item.EMPR_Codigo.Value, Item.SUCR_Codigo.Value, Item.CCOT_Numero, Item.CCOT_Tipo));
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); return(null);
                }
            }
            catch (Exception)
            { Infrastructure.Aspect.DataAccess.DataAccessEnterpriseSQL.DARollbackTransaction(); throw; }
            return(null);
        }