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); } }
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); } }