Beispiel #1
0
        public void ClienteObtenerPorIdExistente()
        {
            var         pl      = new ClientePL();
            ClienteInfo cliente = pl.ObtenerPorID(3);

            Assert.AreNotEqual(cliente, null);
        }
        /// <summary>
        /// Método para guardar los valores del contexto
        /// </summary>
        private void Guardar()
        {
            bool guardar = ValidaGuardar();

            if (guardar)
            {
                try
                {
                    var clientePL = new ClientePL();
                    clientePL.Guardar(Contexto);
                    SkMessageBox.Show(this, Properties.Resources.GuardadoConExito, MessageBoxButton.OK, MessageImage.Correct);
                    confirmaSalir = false;
                    Close();
                }
                catch (ExcepcionGenerica)
                {
                    SkMessageBox.Show(this, Properties.Resources.Cliente_ErrorGuardar, MessageBoxButton.OK, MessageImage.Error);
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    SkMessageBox.Show(this, Properties.Resources.Cliente_ErrorGuardar, MessageBoxButton.OK, MessageImage.Error);
                }
            }
        }
Beispiel #3
0
        private bool ValidarCliente()
        {
            var retorno = false;

            if (skAyudaCliente.Clave.Trim() != "")
            {
                var clientePL   = new ClientePL();
                var clienteInfo = new ClienteInfo();
                clienteInfo.CodigoSAP = skAyudaCliente.Clave;
                clienteInfo           = clientePL.ObtenerClientePorCliente(clienteInfo);
                retorno = true;
                if (clienteInfo == null)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.SalidaIndividualGanado_MensajeClienteInvalido,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    skAyudaCliente.AsignarFoco();
                    retorno = false;
                }
            }
            else
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.SalidaIndividualGanado_MensajeValidacionCliente,
                                  MessageBoxButton.OK, MessageImage.Warning);
                skAyudaCliente.AsignarFoco();
            }

            return(retorno);
        }
Beispiel #4
0
        public void ClienteObtenerPorId()
        {
            var         pl      = new ClientePL();
            ClienteInfo cliente = pl.ObtenerPorID(100);

            Assert.AreEqual(cliente, null);
        }
        private bool ValidarInicioProceso()
        {
            bool                resultado = false;
            ClientePL           clientepl = new ClientePL();
            MuertesEnTransitoPL muertesPl = new MuertesEnTransitoPL();
            string              mensaje   = string.Empty;
            int organizacionId            = AuxConfiguracion.ObtenerOrganizacionUsuario();

            if (clientepl.ObtenerTotalClientesActivos() > 0)
            {
                if (muertesPl.ObtenerTotalFoliosValidos(organizacionId) > 0)
                {
                    resultado = true;
                }
                else
                {
                    mensaje = Properties.Resources.MuertesEnTransito_NoExistenFoliosMuerteGanadoRegistrados;
                }
            }
            else
            {
                mensaje = Properties.Resources.MuertesEnTransito_NoExistenClientesActivos;
            }

            if (!resultado)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], mensaje, MessageBoxButton.OK, MessageImage.Error);
                deshabilitaControles();
            }
            return(resultado);
        }
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                if (string.IsNullOrWhiteSpace(Contexto.CodigoSAP))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ClienteEdicion_MsgCodigoSAPRequerida;
                    txtCodigoSAP.Focus();
                }
                else if (string.IsNullOrWhiteSpace(Contexto.Descripcion))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ClienteEdicion_MsgDescripcionRequerida;
                    txtDescripcion.Focus();
                }
                else if (cmbActivo.SelectedItem == null)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ClienteEdicion_MsgActivoRequerida;
                    cmbActivo.Focus();
                }
                else
                {
                    int clienteId = Contexto.ClienteID;

                    var         clientePL = new ClientePL();
                    ClienteInfo cliente   = clientePL.ObtenerPorDescripcion(Contexto.Descripcion);

                    if (cliente != null && (clienteId == 0 || clienteId != cliente.ClienteID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.ClienteEdicion_MsgDescripcionExistente, cliente.ClienteID);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }
Beispiel #7
0
        public void ClienteObtenerPorPagina()
        {
            var pl     = new ClientePL();
            var pagina = new PaginacionInfo {
                Inicio = 1, Limite = 15
            };
            var filtro = new ClienteInfo {
                Descripcion = null
            };

            ResultadoInfo <ClienteInfo> listaPaginada = pl.ObtenerPorPagina(pagina, filtro);

            Assert.AreNotEqual(listaPaginada, null);
        }
Beispiel #8
0
        public void ClienteObtenerPorPaginaSinDatos()
        {
            var pl     = new ClientePL();
            var pagina = new PaginacionInfo {
                Inicio = 1, Limite = 15
            };
            var filtro = new ClienteInfo {
                Descripcion = "1331312313khgdjkfghjkd"
            };

            ResultadoInfo <ClienteInfo> listaPaginada = pl.ObtenerPorPagina(pagina, filtro);

            Assert.AreEqual(listaPaginada, null);
        }
Beispiel #9
0
        private void Buscar()
        {
            try
            {
                if (!string.IsNullOrWhiteSpace(Contexto.Sociedad) && !string.IsNullOrWhiteSpace(Contexto.CodigoSAP))
                {
                    Contexto.CodigoSAP = Contexto.CodigoSAP.PadLeft(10, '0');
                    var clientePL = new ClientePL();

                    ClienteInfo      clienteExiste = clientePL.ObtenerClientePorCliente(Contexto);
                    MessageBoxResult resultado     = MessageBoxResult.No;
                    if (clienteExiste != null && clienteExiste.ClienteID > 0)
                    {
                        resultado = SkMessageBox.Show(this, Properties.Resources.ClienteNuevo_ClienteExiste, MessageBoxButton.YesNo,
                                                      MessageImage.Question);
                        if (resultado == MessageBoxResult.No)
                        {
                            return;
                        }
                    }

                    Contexto = clientePL.ObtenerClienteSAP(Contexto);
                    if (Contexto == null || string.IsNullOrWhiteSpace(Contexto.CodigoSAP))
                    {
                        SkMessageBox.Show(this, Properties.Resources.ClienteNuevo_ClienteNoEncontrado, MessageBoxButton.OK,
                                          MessageImage.Warning);
                        return;
                    }
                    if (Contexto.Bloqueado)
                    {
                        SkMessageBox.Show(this, Properties.Resources.ClienteNuevo_ClienteBloqueado, MessageBoxButton.OK,
                                          MessageImage.Warning);
                        return;
                    }
                    if (resultado == MessageBoxResult.Yes && clienteExiste != null)
                    {
                        Contexto.ClienteID             = clienteExiste.ClienteID;
                        Contexto.UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado();
                    }
                    btnGuardar.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(this, Properties.Resources.ClienteNuevo_ErrorBuscar, MessageBoxButton.OK,
                                  MessageImage.Error);
            }
        }
        public MuertesEnTransitoVenta()
        {
            InitializeComponent();
            ClientePL           clientepl = new ClientePL();
            MuertesEnTransitoPL muertesPl = new MuertesEnTransitoPL();

            if (ValidarInicioProceso())
            {
                organizacionID = Convert.ToInt32(Application.Current.Properties["OrganizacionID"]);
                usuarioID      = Convert.ToInt32(Application.Current.Properties["UsuarioID"]);
                AgregarAyudaFolioEntrada();
                dgAretes.ItemsSource = Animales;
                InicializaContexto();
                skAyudaCliente.ObjetoNegocio = new ClientePL();
                InicializarFormulario();
                skAyudaCliente.EsBindeable    = false;
                skAyudaCliente.AyudaConDatos += (sender, args) =>
                {
                    if (muertesEnTransitoInfoSeleccionado != null)
                    {
                        Contexto.Proveedor.EmbarqueID = muertesEnTransitoInfoSeleccionado.EmbarqueID;

                        ClienteInfo cliente = clientepl.ObtenerClientePorCliente(Contexto.Cliente);

                        if (cliente != null)
                        {
                            if (cliente.Activo == EstatusEnum.Activo)
                            {
                                Contexto.Cliente = cliente;
                                muertesEnTransitoInfoSeleccionado.Cliente = Contexto.Cliente;
                                skAyudaCliente.Contexto            = cliente;
                                skAyudaCliente.txtClave.Text       = cliente.CodigoSAP;
                                skAyudaCliente.txtDescripcion.Text = cliente.Descripcion;
                            }
                            else
                            {
                                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Cliente_ClienteNoActivo, MessageBoxButton.OK, MessageImage.Error);
                                skAyudaCliente.Contexto            = new ClienteInfo();
                                skAyudaCliente.txtClave.Text       = string.Empty;
                                skAyudaCliente.txtDescripcion.Text = string.Empty;
                            }
                        }
                    }
                };
                skAyudaFolioEntrada.AsignarFoco();
            }
        }
        //si se encontro o selecciono un cliente con la ayuda:
        private void SkAyudaClientes_OnAyudaConDatos(object sender, EventArgs e)
        {
            try
            {
                var clienteVentaPL = new ClientePL();
                var cliente        = clienteVentaPL.Obtener_Nombre_CodigoSAP_PorID(Contexto.Cliente);

                Contexto.Cliente.CodigoSAP          = cliente.CodigoSAP;
                skAyudaClientes.txtClave.Text       = Contexto.Cliente.CodigoSAP;//:se carga el codigoSAP del proveedor seleccionado
                skAyudaClientes.txtDescripcion.Text = Contexto.Cliente.Descripcion;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #12
0
        public void ClienteCrear()
        {
            var random       = new Random();
            int randomNumber = random.Next(0, 100);

            var pl      = new ClientePL();
            var cliente = new ClienteInfo
            {
                ClienteID         = 0,
                Descripcion       = string.Format("Prueba Unitaria {0}", randomNumber),
                CodigoSAP         = string.Format("{0:D10}", randomNumber),
                UsuarioCreacionID = 1,
                Activo            = EstatusEnum.Activo
            };

            cliente.ClienteID = pl.Guardar(cliente);
            Assert.AreNotEqual(cliente.ClienteID, 0);
        }
Beispiel #13
0
        public void ClienteGuardarDescripcionExistente()
        {
            var pl      = new ClientePL();
            var cliente = new ClienteInfo
            {
                ClienteID   = 0,
                Descripcion = "Cliente Administradores",
                Activo      = EstatusEnum.Activo
            };

            try
            {
                pl.Guardar(cliente);
            }
            catch (Exception)
            {
                Assert.AreEqual(cliente.ClienteID, 0);
            }
        }
Beispiel #14
0
        /// <summary>
        /// Obtiene la lista para mostrar en el grid
        /// </summary>
        private void ObtenerListaCliente(int inicio, int limite)
        {
            try
            {
                if (ucPaginacion.ContextoAnterior != null)
                {
                    bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior);
                    if (!contextosIguales)
                    {
                        ucPaginacion.Inicio = 1;
                        inicio = 1;
                    }
                }

                var         clientePL = new ClientePL();
                ClienteInfo filtros   = ObtenerFiltros();
                var         pagina    = new PaginacionInfo {
                    Inicio = inicio, Limite = limite
                };
                ResultadoInfo <ClienteInfo> resultadoInfo = clientePL.ObtenerPorPagina(pagina, filtros);
                if (resultadoInfo != null && resultadoInfo.Lista != null &&
                    resultadoInfo.Lista.Count > 0)
                {
                    gridDatos.ItemsSource       = resultadoInfo.Lista;
                    ucPaginacion.TotalRegistros = resultadoInfo.TotalRegistros;
                }
                else
                {
                    ucPaginacion.TotalRegistros = 0;
                    gridDatos.ItemsSource       = new List <Cliente>();
                }
            }
            catch (ExcepcionGenerica)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Cliente_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Cliente_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
            }
        }
Beispiel #15
0
        public void ClienteActualizar()
        {
            var         random       = new Random();
            int         randomNumber = random.Next(0, 100);
            var         pl           = new ClientePL();
            ClienteInfo cliente      = pl.ObtenerPorID(3);

            if (cliente != null)
            {
                string descripcion;
                try
                {
                    descripcion                   = string.Format("Cliente actualizado {0}", randomNumber);
                    cliente.Descripcion           = descripcion;
                    cliente.UsuarioModificacionID = 2;
                    pl.Guardar(cliente);
                }
                catch (Exception)
                {
                    descripcion = string.Empty;
                }
                Assert.AreEqual(cliente.Descripcion, descripcion);
            }
        }
Beispiel #16
0
        /// <summary>
        /// Método con el cual se valida el folio del ticket ingresado
        /// </summary>
        private bool ValidarFolioTicket()
        {
            if (txtFolioTicket.Text.Trim() != "")
            {
                var        venta        = new VentaGanadoPL();
                var        ventadetalle = new VentaGanadoDetallePL();
                var        usuarioPl    = new UsuarioPL();
                TicketInfo Ticket       = new TicketInfo();

                Ticket.FolioTicket = int.Parse(txtFolioTicket.Text.Trim());
                if ((string)cmbTipo.SelectedItem == Properties.Resources.SalidaIndividualDeGanado_cmbTipoExterno)
                {
                    Ticket.TipoVenta = TipoVentaEnum.Externo;
                }
                else
                {
                    Ticket.TipoVenta = TipoVentaEnum.Propio;
                }

                listaAretes.Items.Clear();
                skAyudaCliente.LimpiarCampos();

                Ticket.Organizacion = AuxConfiguracion.ObtenerOrganizacionUsuario();
                VentaGanadoInfo ganado = venta.ObtenerVentaGanadoPorTicket(Ticket);
                if (ganado != null)
                {
                    UsuarioInfo usuarioSubioGanado = usuarioPl.ObtenerPorID(ganado.UsuarioModificacionID);
                    var         clientePl          = new ClientePL();
                    var         cliente            = new ClienteInfo {
                        ClienteID = ganado.ClienteID, CodigoSAP = ganado.CodigoSAP
                    };
                    cliente = clientePl.ObtenerClientePorCliente(cliente);
                    skAyudaCliente.Clave       = cliente.CodigoSAP;
                    skAyudaCliente.Descripcion = cliente.Descripcion;
                    skAyudaCliente.Info        = cliente;
                    txtCorral.Text             = ganado.CodigoCorral;

                    var pesoTara = decimal.Parse(ganado.PesoTara.ToString(CultureInfo.InvariantCulture).Replace(".00", "").Replace(",00", ""));
                    txtPesoTara.Text = pesoTara.ToString(CultureInfo.CurrentCulture);

                    txtPesoTara.IsEnabled    = false;
                    txtFolioTicket.IsEnabled = false;
                    if (!basculaConectada)
                    {
                        txtPesoBruto.IsEnabled = true;
                    }
                    skAyudaCliente.IsEnabled = false;
                    _pesoTomado = false;
                    ObtenerPesoBascula();

                    List <VentaGanadoDetalleInfo> detalle = ventadetalle.ObtenerVentaGanadoPorTicket(ganado.VentaGanadoID);
                    if (Ticket.TipoVenta == TipoVentaEnum.Propio)
                    {
                        if (detalle != null)
                        {
                            if (detalle.Count > 0)
                            {
                                lblTotalCabezas.IsEnabled        = true;
                                lblNumeroTotalCabezas.IsEnabled  = true;
                                lblNumeroTotalCabezas.Content    = detalle.Count.ToString();
                                lblNumeroTotalCabezas.Visibility = Visibility.Visible;
                                lblTotalCabezas.Visibility       = Visibility.Visible;
                            }

                            listaAretes.Visibility = Visibility.Visible;
                            cmbTipo.IsEnabled      = false;
                            cmbTipo.SelectedIndex  = 0;

                            foreach (VentaGanadoDetalleInfo ventaGanadoDetalleInfo in detalle)
                            {
                                listaAretes.Items.Add(ventaGanadoDetalleInfo);
                            }
                            nombreUsuarioSubioGanado = usuarioSubioGanado.Nombre;
                        }
                        else
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.SalidaIndividualGanado_MensajeTicketNoTieneAretes,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            Limpiar();

                            return(false);
                        }
                    }
                    else
                    {
                        if (ganado.TotalCabezas > 0)
                        {
                            cmbTipo.SelectedIndex  = 1;
                            cmbTipo.IsEnabled      = false;
                            listaAretes.Visibility = Visibility.Hidden;

                            lblTotalCabezas.IsEnabled        = true;
                            lblNumeroTotalCabezas.IsEnabled  = true;
                            lblNumeroTotalCabezas.Content    = ganado.TotalCabezas.ToString();
                            lblNumeroTotalCabezas.Visibility = Visibility.Visible;
                            lblTotalCabezas.Visibility       = Visibility.Visible;

                            nombreUsuarioSubioGanado = usuarioSubioGanado.Nombre;
                        }
                        else
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.SalidaIndividualGanado_MensajeTicketNoTieneAretes,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            Limpiar();

                            return(false);
                        }
                    }
                }
                else
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.SalidaIndividualGanado_MensajeFolioTicketInvalido,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    Limpiar();
                    return(false);
                }
            }
            return(true);
        }
        /// <summary>
        /// Obtiene los datos del elemento seleccionado en la ayuda Folio de Entrada.
        /// </summary>
        /// <param name="filtro"></param>
        private void ObtenerDatosAyudaFolioEntrada(string filtro)
        {
            List <string> aretes = new List <string>();

            muertesEnTransitoInfoSeleccionado = skAyudaFolioEntrada.Info;
            InicializarAyudaFolioEntrada();
            skAyudaCliente.LimpiarCampos();
            MuertesEnTransitoPL          muertePl     = new MuertesEnTransitoPL();
            ValidacionesFolioVentaMuerte validaciones = new ValidacionesFolioVentaMuerte();

            if (muertesEnTransitoInfoSeleccionado != null && muertesEnTransitoInfoSeleccionado.EntradaGanadoID != 0)
            {
                foreach (AnimalInfo arete in dgAretes.Items)
                {
                    aretes.Add(arete.Arete);
                }
                validaciones = muertePl.ValidarFolio(muertesEnTransitoInfoSeleccionado.FolioEntrada, organizacionID, aretes);
                if (!validaciones.RegistroCondicionMuerte)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_FolioSinCondicionMuerte,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (validaciones.FolioConMuertesRegistradas)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_FolioConRegistroMuertes,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (muertesEnTransitoInfoSeleccionado.MuertesTransito == 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_msgNoTieneMuertes,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (muertesEnTransitoInfoSeleccionado.MuertesRegistradas != 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_msgMuertesRegistradas,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (!validaciones.EstatusLote)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_LoteInactivo,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (validaciones.Cabezas == 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_LoteSinCabezas,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else
                {
                    muertesEnTransitoInfoSeleccionado.OrganizacionID = organizacionID;
                    txtArete.IsEnabled    = true;
                    chkSinArete.IsChecked = false;
                    if (muertesEnTransitoInfoSeleccionado.TipoOrigenID == (int)TipoOrganizacion.CompraDirecta)
                    {
                        txtArete.IsEnabled    = false;
                        chkSinArete.IsChecked = true;
                    }
                    else
                    {
                        AnimalesDelCorral = new List <AnimalInfo>();
                        var muertesEnTransitoPl = new MuertesEnTransitoPL();
                        AnimalesDelCorral = muertesEnTransitoPl.ObtenerAretesPorFolioEntrada(muertesEnTransitoInfoSeleccionado);
                    }

                    if (ProveedoresAsignadosAlEmbarque(muertesEnTransitoInfoSeleccionado.EmbarqueID) <= 1)
                    {
                        var pl          = new ProveedorPL();
                        var cl          = new ClientePL();
                        var clienteInfo = new ClienteInfo();
                        var info        = new ProveedorInfo()
                        {
                            CodigoSAP = muertesEnTransitoInfoSeleccionado.CodigoProveedor
                        };

                        clienteInfo        = cl.ObtenerPorDescripcion(muertesEnTransitoInfoSeleccionado.Proveedor);
                        Contexto.Proveedor = pl.ObtenerPorCodigoSAP(info);
                        if (clienteInfo != null)
                        {
                            skAyudaCliente.IsEnabled = false;
                            muertesEnTransitoInfoSeleccionado.Cliente = clienteInfo;
                            skAyudaCliente.Clave       = muertesEnTransitoInfoSeleccionado.Cliente.CodigoSAP;
                            skAyudaCliente.Descripcion = muertesEnTransitoInfoSeleccionado.Cliente.Descripcion;
                            Contexto.Cliente           = clienteInfo;
                        }
                        else
                        {
                            skAyudaCliente.IsEnabled   = true;
                            skAyudaCliente.Clave       = string.Empty;
                            skAyudaCliente.Descripcion = string.Empty;
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.MuertesEnTransito_ProveedorNoEsCliente,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            skAyudaCliente.Focus();
                        }
                    }
                    else
                    {
                        skAyudaCliente.IsEnabled = true;
                    }

                    Contexto.Proveedor.EmbarqueID = muertesEnTransitoInfoSeleccionado.EmbarqueID;
                    countAreteGenerico            = muertesEnTransitoInfoSeleccionado.MuertesRegistradas + 1;
                    txtOrigen.Text            = muertesEnTransitoInfoSeleccionado.Origen;
                    txtTipoOrigen.Text        = muertesEnTransitoInfoSeleccionado.TipoOrigen;
                    txtCorral.Text            = muertesEnTransitoInfoSeleccionado.Corral;
                    txtLote.Text              = muertesEnTransitoInfoSeleccionado.Lote;
                    txtCabezas.Text           = muertesEnTransitoInfoSeleccionado.Cabezas.ToString();
                    txtMuertesEnTransito.Text = muertesEnTransitoInfoSeleccionado.MuertesTransito.ToString();
                    Animales.Clear();
                    dgAretes.Items.Refresh();
                    txtArete.Clear();
                    txtArete.Focus();
                }
            }
        }
Beispiel #18
0
        /// <summary>
        /// Metodo para armar los objetos para generar poliza
        /// </summary>
        /// <param name="datosPoliza">Objeto salidaGanadotransitoInfo</param>
        /// <returns>poliza</returns>
        public override IList <PolizaInfo> GeneraPoliza(object datosPoliza)
        {
            IList <PolizaInfo> polizaSalida = new List <PolizaInfo>();

            var noLinea         = 1;
            var costosPl        = new CostoPL();
            var cliente         = new ClientePL();
            var cuentasSap      = ObtenerCuentasSAP();
            var interfaceBl     = new InterfaceSalidaBL();
            var parOrganizacion = new ParametroOrganizacionBL();
            var parametroCentro = new ParametroOrganizacionInfo();
            var input           = (SalidaGanadoEnTransitoInfo)datosPoliza;
            var costosClaves    = costosPl.ObtenerTodos(EstatusEnum.Activo);
            var costoAbono      = new CostoInfo {
                ClaveContable = string.Empty
            };
            var costoGanado = input.Costos.FirstOrDefault(x => x.CostoID == Costo.CostoGanado.GetHashCode());
            var claveCuenta = parOrganizacion.ObtenerPorOrganizacionIDClaveParametro(input.OrganizacionID, ParametrosEnum.CTAFALTANTESOBRANTE.ToString());

            ClaveContableInfo clavecontablecargo;

            detalles      = input.DetallesSalida;
            datos         = obtenerDatosPolizaSalidaPorVenta(input);
            input.Cliente = cliente.ObtenerPorID(input.Cliente.ClienteID);

            //la var datos debe contener datos para poder acceder a su valor en la propiedad PostFijoRef3
            var ref3         = Ref3(input);
            var archivoFolio = ArchivoFolio(input);

            #region linea1(+) Proveedor
            var linea1 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
            linea1.Importe = input.Importe.ToString("N", CultureInfo.InvariantCulture);
            linea1.Cliente = input.Cliente.CodigoSAP;
            //linea1.Cuenta = input.Cliente.CodigoSAP;
            polizaSalida.Add(linea1);
            noLinea++;
            #endregion

            #region linea2(-) Beneficiario
            var linea2 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
            //linea2.Cliente = input.Cliente.CodigoSAP;
            linea2.Importe = "-" + input.Importe.ToString("N", CultureInfo.InvariantCulture);
            var claveContableAbono = interfaceBl.ObtenerCuentaInventario(costoAbono, input.OrganizacionID, ClaveCuenta.CuentaBeneficioInventario);

            if (claveContableAbono != null)
            {
                var cuentaSap = cuentasSap.FirstOrDefault(clave => clave.CuentaSAP == claveContableAbono.Valor);
                claveContableAbono.Descripcion = cuentaSap == null ? string.Empty : cuentaSap.Descripcion;
            }
            else
            {
                claveContableAbono = new ClaveContableInfo
                {
                    Valor = string.Empty
                };
            }

            var beneficio = false;
            if (claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroBeneficio))
            {
                parametroCentro = ObtenerParametroOrganizacionPorClave(input.OrganizacionID, ParametrosEnum.CTACENTROBENEFICIOENG.ToString());

                if (parametroCentro == null)
                {
                    throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO"));
                }
                beneficio = true;
            }
            else
            {
                if (claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroCosto) || claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroGasto))
                {
                    parametroCentro = ObtenerParametroOrganizacionPorClave(input.OrganizacionID, ParametrosEnum.CTACENTROCOSTOENG.ToString());

                    if (parametroCentro == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO"));
                    }
                }
            }
            if (beneficio)
            {
                linea2.CentroBeneficio = parametroCentro.Valor;
            }
            else
            {
                linea2.CentroCosto = parametroCentro.Valor;
            }

            linea2.Cuenta = claveContableAbono.Valor;
            polizaSalida.Add(linea2);
            noLinea++;
            #endregion

            #region linea3 cargo a cuenta costo ganado(-)
            //se elimino esta linea
            #endregion

            #region linea4 cargo a costo corral(-)
            if (costoGanado == null)
            {
                return(polizaSalida);
            }

            var linea4 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
            linea4.Cuenta = claveCuenta.Valor;

            if (claveCuenta.Valor.Substring(0, 4) == "5001")
            {
                linea4.CentroCosto = datos.ParametroOrganizacionValor;
            }

            var importeCostos = input.DetallesSalida.Sum(costo => costo.ImporteCosto);

            linea4.Importe = "-" + importeCostos.ToString(CultureInfo.InvariantCulture);
            polizaSalida.Add(linea4);
            noLinea++;
            #endregion

            #region linea5 cargoACuentaResultados (-)(importe total)
            var linea5 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);

            if (claveCuenta.Valor.Substring(0, 4) == "5001")
            {
                linea5.CentroCosto = datos.ParametroOrganizacionValor;
            }

            var salidaVentaTransito = input.DetallesSalida.FirstOrDefault(detalle => detalle.CostoId == Costo.CostoGanado.GetHashCode());
            if (salidaVentaTransito != null)
            {
                linea5.Importe = salidaVentaTransito.ImporteCosto.ToString(CultureInfo.InvariantCulture);
            }

            costos = ObtenerCostos();
            var firstOrDefault = costos.FirstOrDefault(x => x.CostoID == costoGanado.CostoID);

            if (firstOrDefault != null)
            {
                costoAbono.ClaveContable = firstOrDefault.ClaveContable;
                clavecontablecargo       = ObtenerCuentaInventario(costoAbono, input.OrganizacionID, TipoPoliza.PolizaMuerteTransito);
                if (clavecontablecargo != null)
                {
                    linea5.Cuenta = clavecontablecargo.Valor;
                }
            }

            polizaSalida.Add(linea5);
            noLinea++;
            #endregion

            #region linea6 abono a cuenta Resultados a la misma cuenta que el punto anterior en foreach
            var linea6 = new List <PolizaInfo>();

            foreach (var costoCargo in input.DetallesSalida.SkipWhile(costo => costo.CostoId == Costo.CostoGanado.GetHashCode()))
            {
                var temp = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
                temp.Importe = costoCargo.ImporteCosto.ToString(CultureInfo.InvariantCulture);

                var claveCosto = costosClaves.FirstOrDefault(x => x.CostoID == costoCargo.CostoId);
                if (claveCosto != null)
                {
                    costoAbono.ClaveContable = claveCosto.ClaveContable;
                    clavecontablecargo       = ObtenerCuentaInventario(costoAbono, input.OrganizacionID, TipoPoliza.PolizaMuerteTransito);
                    if (clavecontablecargo != null)
                    {
                        temp.Cuenta = clavecontablecargo.Valor;
                    }
                }

                if (claveCuenta.Valor.Substring(0, 4) == "5001")
                {
                    temp.CentroCosto = datos.ParametroOrganizacionValor;
                }

                linea6.Add(temp);
                noLinea++;
            }

            foreach (var polizaItem in linea6)
            {
                polizaSalida.Add(polizaItem);
            }
            #endregion

            return(polizaSalida);
        }