Beispiel #1
0
        public void Editar()
        {
            try
            {
                if (!isMViewShow)
                {
                    MView           = new PRO001MView();
                    MView.Presenter = this;
                    MView.LoadView();
                }
                if (ItemLView != null)
                {
                    MView.ClearItem();
                    /* Encabezado  :) */
                    ItemCAB_Tarifa = Client.GetOneCab_Tarifa(ItemLView.CTAR_Tipo, ItemLView.CTAR_Codigo);
                    if (ItemCAB_Tarifa != null)
                    {
                        ItemCAB_Tarifa.AUDI_UsrMod = Session.UserName;
                        ItemCAB_Tarifa.AUDI_FecMod = Session.Fecha;
                        ItemCAB_Tarifa.Instance    = InstanceEntity.Modified;
                        MView.SetItem();

                        /* Detalle Tarifa :) */
                        MView.ClearItemsDetalles();
                        ItemsDet_Tarifa = Client.GetAllDet_TarifaByTarifario(ItemCAB_Tarifa.CTAR_Codigo, ItemCAB_Tarifa.CTAR_Tipo);
                        if (TipoTarifa.Equals("L"))
                        {
                            DView.SetItemST20_ST40(ref m_ItemsDet_Tarifa);
                        }
                        MView.ShowItemsDetalleTarifario();

                        /* Detalle Servicio :) */
                        MView.ClearItemsDetalleServicios();
                        ItemsDet_TarifaServicio = Client.GetAllDet_ServicioByTarifario(ItemCAB_Tarifa.CTAR_Codigo, ItemCAB_Tarifa.CTAR_Tipo);
                        MView.ShowItemsDetalleServicios();

                        MView.SetInstance(InstanceView.Edit);

                        isMViewShow = true;
                        ((PRO001MView)MView).Show();
                        ((PRO001MView)MView).BringToFront();
                    }
                    else
                    {
                        Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeInformacion(Title, "No se encontro la Tarifa Seleccionada");
                    }
                }
                else
                {
                    Dialogos.MostrarMensajeInformacion(Title, "Debe seleccionar un elemento de la grilla");
                }
            }
            catch (Exception ex)
            { Dialogos.MostrarMensajeError(Title, Mensajes.EditPresenter, ex); }
        }
Beispiel #2
0
        public void AgregarDetalleTarifario()
        {
            try
            {
                if (TipoTarifa.Equals("L"))
                {
                    if (InstanciaDet_Tarifa == InstanceView.Edit)
                    {
                        if (ItemDET_Tarifa.DTAR_Item > 0)
                        {
                            //ItemsDet_Tarifa.Remove(ItemDET_Tarifa);
                            ItemDET_Tarifa.Instance    = InstanceEntity.Modified;
                            ItemDET_Tarifa.AUDI_UsrMod = Session.UserName;
                        }
                        else
                        {
                            while (ItemsDet_Tarifa.FirstOrDefault(tipo => tipo.CTAR_Tipo == TipoTarifa && tipo.TIPE_Codigo == ItemDET_Tarifa.TIPE_Codigo && tipo.ENTC_Codigo == ItemDET_Tarifa.ENTC_Codigo) != null)
                            {
                                var item = ItemsDet_Tarifa.FirstOrDefault(tipo => tipo.CTAR_Tipo == TipoTarifa && tipo.TIPE_Codigo == ItemDET_Tarifa.TIPE_Codigo && tipo.ENTC_Codigo == ItemDET_Tarifa.ENTC_Codigo);
                                ItemsDet_Tarifa.Remove(item);
                            }
                        }
                        ItemsGrillaDet_Tarifa.Remove(ItemDET_Tarifa);

                        //continuar:
                        //foreach (var item in ItemsDet_Tarifa)
                        //{
                        //    if (ItemDET_Tarifa.DTAR_Fila == item.DTAR_Fila)
                        //    {
                        //        if (item.DTAR_Item > 0)
                        //        {
                        //            item.Instance = InstanceEntity.Deleted;
                        //        }
                        //        else
                        //        {
                        //            ItemsDet_Tarifa.Remove(item);
                        //            goto continuar;
                        //        }
                        //    }
                        //}
                    }
                    else
                    {
                        ItemDET_Tarifa.Instance     = InstanceEntity.Added;
                        ItemDET_Tarifa.AUDI_UsrCrea = Session.UserName;
                    }
                    //ItemDET_Tarifa = new Det_Tarifa
                    //{
                    //    AUDI_UsrCrea = Session.UserName,
                    //    AUDI_FecCrea = Session.Fecha,
                    //    Instance = InstanceEntity.Added
                    //};
                    DView.GetItem();
                    if (ItemDET_Tarifa.Validar())
                    {
                        if (ItemsDet_Tarifa != null && ItemsDet_Tarifa.Count > 0)
                        {
                            if (ItemDET_Tarifa.TIPE_Codigo != null && ItemDET_Tarifa.TIPE_Codigo.Value.ToString(CultureInfo.InvariantCulture).Equals("13")) //maritimo
                            {
                                const short tipeCodigo = 13;
                                if (ItemsGrillaDet_Tarifa.Count(tipo => tipo.TIPE_Codigo != null && tipo.TIPE_Codigo.Value == tipeCodigo) > 0)
                                {
                                    Dialogos.MostrarMensajeInformacion(Title, "No puede haber mas de un agente maritimo."); return;
                                }
                            }
                            else
                            {
                                if (ItemsGrillaDet_Tarifa.Any(entCodigo => entCodigo.ENTC_Codigo == ItemDET_Tarifa.ENTC_Codigo && entCodigo.TIPE_Codigo == ItemDET_Tarifa.TIPE_Codigo && entCodigo.Instance == InstanceEntity.Added))
                                {
                                    Dialogos.MostrarMensajeInformacion(Title, "No puede haber mas de una entidad duplicada."); return;
                                }
                            }
                        }
                        // if (InstanciaDet_Tarifa == InstanceView.New)
                        ItemsGrillaDet_Tarifa.Add(ItemDET_Tarifa);

                        DView.GenerarST20_ST40_HBL();
                        MView.ShowItemsDetalleTarifario();
                        DView.CerrarVenta();
                    }
                    else
                    {
                        DView.ShowValidation();
                    }
                }
                else   // Tarifa Aduanera || Tarifa Transporte
                {
                    if (InstanciaDet_Tarifa == InstanceView.Edit)
                    {
                        if (ItemDET_Tarifa.DTAR_Item > 0)
                        {
                            ItemDET_Tarifa.AUDI_UsrMod = Session.UserName;
                            ItemDET_Tarifa.Instance    = InstanceEntity.Modified;
                        }
                        else
                        {
                            ItemsDet_Tarifa.Remove(ItemDET_Tarifa);
                        }
                    }
                    else
                    {
                        ItemDET_Tarifa.AUDI_UsrCrea = Session.UserName;
                        ItemDET_Tarifa.Instance     = InstanceEntity.Added;
                        TempItemDET_Tarifa          = new Det_Tarifa
                        {
                            AUDI_UsrCrea = Session.UserName,
                            AUDI_FecCrea = Session.Fecha,
                            Instance     = InstanceEntity.Added
                        };
                    }
                    DView.GetItem();
                    if (TempItemDET_Tarifa.Validar())
                    {
                        if (ItemsDet_Tarifa != null && ItemsDet_Tarifa.Count > 0)
                        {
                            if (TempItemDET_Tarifa.CTAR_Tipo.Equals("A"))
                            {
                                if (ItemsDet_Tarifa.Any(codBase => codBase.CONS_CodBas == TempItemDET_Tarifa.CONS_CodBas && codBase.Instance != InstanceEntity.Modified))
                                {
                                    Dialogos.MostrarMensajeInformacion(Title, "No puede haber mas de un base duplicada."); return;
                                }
                            }
                            if (TempItemDET_Tarifa.CTAR_Tipo.Equals("T"))
                            {
                                if (ItemsDet_Tarifa.Any(data => data.CONS_CodTRA == TempItemDET_Tarifa.CONS_CodTRA && data.TIPO_CodZONDestino == TempItemDET_Tarifa.TIPO_CodZONDestino && data.Instance != InstanceEntity.Modified))
                                {
                                    Dialogos.MostrarMensajeInformacion(Title, "No puede haber mas de una mismo tipo y destino."); return;
                                }
                            }
                        }
                        if (ItemsDet_Tarifa != null && InstanciaDet_Tarifa != InstanceView.Edit)
                        {
                            ItemsDet_Tarifa.Add(TempItemDET_Tarifa);
                        }
                        MView.ShowItemsDetalleTarifario();
                        DView.CerrarVenta();
                    }
                    else
                    {
                        DView.ShowValidation();
                    }
                }
            }
            catch (Exception ex)
            { Dialogos.MostrarMensajeError(Title, Mensajes.NewPresenter, ex); }
        }