예제 #1
0
        public void Crea(object sender, EventArgs e)
        {
            if (!FormulariComplert())
            {
                return;
            }

            Parcela parcela = propietaris_manager.GetParcelesSeleccionades()[0];

            tblAnaliticaFincaParcela analitica = new tblAnaliticaFincaParcela();

            analitica.Fecha             = data_dataselect.GetDate();
            analitica.IC                = decimal.Parse(intensitat_colorant_text_input.GetText());
            analitica.ph                = decimal.Parse(ph_text_input.GetText());
            analitica.grauAlc           = decimal.Parse(grau_text_input.GetText());
            analitica.DensitatProduccio = decimal.Parse(densitat_text_input.GetText());
            analitica.EstatSanitari     = estat_sanitari_text_input.GetText();
            analitica.Observaciones     = observacions_text_input.GetText();
            analitica.CodigoEmpresa     = parcela.GetTbl().CodigoEmpresa;
            analitica.idAnalitica       = GetAnaliticaNewId();
            analitica.idFinca           = parcela.GetTbl().idFinca;
            analitica.idParte           = propietaris_manager.GetPartesNewId();
            analitica.idParcela         = parcela.GetTbl().idParcela;

            Analitica a = new Analitica(analitica);

            analitiques_per_afegir.Add(a);

            ActualitzaLlistaAnalitiques();
        }
예제 #2
0
        public void ActualitzaLlistaPartesLlista()
        {
            grid.Clear();

            if (propietaris_manager.parte_actual == null)
            {
                return;
            }

            List <tblLineasPartesFinca> lineas = propietaris_manager.GetLineasPerParteId(propietaris_manager.parte_actual.idParte);

            List <Parcela> parceles = propietaris_manager.GetParcelesSeleccionades();

            for (int i = 0; i < lineas.Count; i++)
            {
                Parcela parcela = null;
                for (int p = 0; p < parceles.Count; p++)
                {
                    if (parceles[p].GetTbl().idParcela == lineas[i].idParcela)
                    {
                        parcela = parceles[p];
                    }
                }

                if (parcela == null)
                {
                    continue;
                }

                Treball        treball  = propietaris_manager.GetTreballPerTreballId(lineas[i].idFamiliaCoste);
                tblPartesFinca parte    = propietaris_manager.GetPartePerParteId(propietaris_manager.parte_actual.idParte);
                Personal       personal = propietaris_manager.GetPersonalPerId(lineas[i].idAplicador.ToString());
                Maquina        maquina  = propietaris_manager.GetMaquinaPerId(lineas[i].idMaquinaria.ToString());
                Adob           adob     = propietaris_manager.GetAdobPerId(lineas[i].idProduteFito.ToString());

                string metrica_nom = "";
                if (lineas[i].idUnitatMetrica != null)
                {
                    UnitatMetrica metrica = propietaris_manager.GetUnitatMetricaPerId((int)lineas[i].idUnitatMetrica);
                    metrica_nom = metrica.GetTbl().Unitat;
                }

                grid.AddRow(treball, lineas[i].Descripcion, lineas[i].Unidades, lineas[i].idLinea.ToString(), metrica_nom, parte.Estat,
                            parcela.GetTbl().idParcelaVinicola, parcela.GetTbl().Ha, (bool)lineas[i].FertirrigacioSiNo ? "Si" : "No",
                            lineas[i].EficaciaTractament, personal, maquina, adob);
            }

            grid.CleanSelection();
        }
예제 #3
0
        public List <tblCoordenadesFincaParcela> GetCoordenadesPerParcela(Parcela pa)
        {
            List <tblCoordenadesFincaParcela> ret = new List <tblCoordenadesFincaParcela>();

            List <tblCoordenadesFincaParcela> coordenades = GetCoordenades();

            for (int i = 0; i < coordenades.Count; i++)
            {
                if (coordenades[i].idParcela == pa.GetTbl().idParcela)
                {
                    ret.Add(coordenades[i]);
                }
            }

            return(ret);
        }
예제 #4
0
        public Varietat GetVarietatPerParcela(Parcela parcela)
        {
            Varietat ret = null;

            List <Varietat> varietats = GetVarietats();

            for (int i = 0; i < varietats.Count; i++)
            {
                if (parcela.GetTbl().idVarietat == varietats[i].GetTbl().idTipoUva)
                {
                    ret = varietats[i];
                    break;
                }
            }

            return(ret);
        }
예제 #5
0
        public Parcela GetParcelaPerParcelaID(string id)
        {
            Parcela ret = null;

            List <Parcela> parceles = GetParceles();

            for (int i = 0; i < parceles.Count; i++)
            {
                Parcela parcela_actual = parceles[i];
                if (parcela_actual.GetTbl().idParcela.ToString().Replace(" ", "") == id.ToString().Replace(" ", ""))
                {
                    ret = parcela_actual;
                    break;
                }
            }

            return(ret);
        }
예제 #6
0
        public Finca GetFincaPerParcela(Parcela p)
        {
            Finca ret = null;

            List <Finca> finques = GetFinques();

            for (int i = 0; i < finques.Count; i++)
            {
                Finca finca_actual = finques[i];

                if (finca_actual.GetTbl().idFinca == p.GetTbl().idFinca)
                {
                    ret = finca_actual;
                    break;
                }
            }

            return(ret);
        }
예제 #7
0
        private void ActualitzaLlistaAnalitiques()
        {
            if (propietaris_manager.parcela_actual == null)
            {
                return;
            }

            grid.Clear();
            grid.CleanSelection();

            List <Analitica> analitiques = propietaris_manager.GetAnalitiques();

            Parcela parcela = propietaris_manager.GetParcelesSeleccionades()[0];

            List <Analitica> to_grid = new List <Analitica>();

            for (int i = 0; i < analitiques.Count; i++)
            {
                Analitica a = analitiques[i];

                if (a.GetTbl().idParcela == parcela.GetTbl().idParcela)
                {
                    if (!analitiques_per_eliminar.Contains(a) && !analitiques_per_afegir.Contains(a))
                    {
                        to_grid.Add(a);
                    }
                }
            }

            for (int i = 0; i < analitiques_per_afegir.Count; i++)
            {
                Analitica a    = analitiques_per_afegir[i];
                DateTime  data = (DateTime)a.GetTbl().Fecha;

                if (a.GetTbl().idParcela == parcela.GetTbl().idParcela)
                {
                    to_grid.Add(a);
                }
            }

            while (to_grid.Count > 0)
            {
                Analitica older = to_grid[0];

                for (int i = 0; i < to_grid.Count; i++)
                {
                    DateTime old  = (DateTime)older.GetTbl().Fecha;
                    DateTime curr = (DateTime)to_grid[i].GetTbl().Fecha;

                    int result = old.CompareTo(curr);

                    if (result < 0)
                    {
                        older = to_grid[i];
                    }
                }

                DateTime data = (DateTime)older.GetTbl().Fecha;
                grid.AddRow(data.ToLongDateString(), older.GetTbl().IC.ToString(), older.GetTbl().ph.ToString(), older.GetTbl().grauAlc.ToString(), older.GetTbl().DensitatProduccio.ToString(), older.GetTbl().idAnalitica.ToString());

                to_grid.Remove(older);
            }
        }
예제 #8
0
        private void Accepta(object sender, EventArgs e)
        {
            if (grid.GetRows().Count == 0)
            {
                return;
            }

            List <Parcela> parceles = propietaris_manager.GetParcelesSeleccionades();
            List <Finca>   finques  = new List <Finca>();

            for (int i = 0; i < parceles.Count; i++)
            {
                Finca finca = propietaris_manager.GetFincaPerParcela(parceles[i]);

                if (!finques.Contains(finca))
                {
                    finques.Add(finca);
                }
            }

            for (int f = 0; f < finques.Count; f++)
            {
                Finca finca_actual = finques[f];

                tblPartesFinca parte = new tblPartesFinca();
                parte.Fecha         = data_dataselect.GetDate();
                parte.CodigoEmpresa = finca_actual.GetTbl().CodigoEmpresa;
                parte.idFinca       = finca_actual.GetTbl().idFinca;
                parte.idParte       = propietaris_manager.GetPartesNewId();
                parte.Estat         = GetEstat();

                propietaris_manager.AfegirParte(parte);
                server_manager.AddParteFinca(parte);

                for (int r = 0; r < grid.GetRows().Count; r++)
                {
                    tblLineasPartesFinca li = grid.GetRowCell(r, "tblLinea").Value as tblLineasPartesFinca;

                    for (int p = 0; p < parceles.Count; p++)
                    {
                        Parcela parcela_actual = parceles[p];

                        if (parcela_actual.GetTbl().idFinca == finca_actual.GetTbl().idFinca&& parcela_actual.GetTbl().idParcela == li.idParcela)
                        {
                            tblLineasPartesFinca linea = new tblLineasPartesFinca();
                            linea.Descripcion       = grid.GetRows()[r].Cells[1].Value as string;
                            linea.idFamiliaCoste    = li.idFamiliaCoste;
                            linea.CodigoEmpresa     = parcela_actual.GetTbl().CodigoEmpresa;
                            linea.idParcela         = parcela_actual.GetTbl().idParcela;
                            linea.idLinea           = propietaris_manager.GetPartesLineaNewId();
                            linea.idParte           = parte.idParte;
                            linea.FertirrigacioSiNo = (bool)grid.GetRowCell(r, "Fertirrigació").Value;

                            if (grid.GetRows()[r].Cells[8].Value != null)
                            {
                                linea.EficaciaTractament = int.Parse((string)grid.GetRowCell(r, "Eficacia tractament").Value);
                            }

                            if (grid.GetRows()[r].Cells[4].Value != null)
                            {
                                linea.idUnitatMetrica = propietaris_manager.GetUnitatMetricaPerNom((string)grid.GetRowCell(r, "Unitat Metrica").Value).GetTbl().id;
                            }

                            if (grid.GetRows()[r].Cells[9].Value != null)
                            {
                                linea.idAplicador = int.Parse(propietaris_manager.GetPersonalPerNom((string)grid.GetRowCell(r, "Aplicador").Value).GetTbl().id);
                            }

                            if (grid.GetRows()[r].Cells[10].Value != null)
                            {
                                linea.idMaquinaria = int.Parse(propietaris_manager.GetMaquinaPerNom((string)grid.GetRowCell(r, "Maquinaria").Value).GetTbl().id);
                            }

                            if (grid.GetRows()[r].Cells[11].Value != null)
                            {
                                linea.idProduteFito = int.Parse(propietaris_manager.GetAdobPerNom((string)grid.GetRowCell(r, "Adob").Value).GetTbl().id.ToString());
                            }

                            string dec = grid.GetRowCell(r, "Unitats").Value.ToString();
                            linea.Unidades = decimal.Parse(dec);

                            propietaris_manager.AfegirParteLinea(linea);
                            server_manager.AddLineaParteFinca(linea);
                        }
                    }
                }
            }

            server_manager.SubmitChanges();

            grid.CleanSelection();

            this.Close();
        }
예제 #9
0
        public void ModificaParteSeleccionat(object sender, EventArgs e)
        {
            decimal test;

            if (!grid.IsSelected() || !treballs_combobox.IsSelected() || propietaris_manager.parte_linea_actual == null || !decimal.TryParse(unitats_text_input.GetText(), out test))
            {
                return;
            }

            Treball       treball  = treballs_combobox.GetSelected() as Treball;
            UnitatMetrica unitat   = unitats_mesura_combobox.GetSelected() as UnitatMetrica;
            Maquina       maquina  = maquinaria_combobox.GetSelected() as Maquina;
            Personal      personal = personal_combobox.GetSelected() as Personal;
            Adob          adob     = adob_combobox.GetSelected() as Adob;

            tblLineasPartesFinca nova_linea = new tblLineasPartesFinca();

            nova_linea.CodigoEmpresa  = propietaris_manager.parte_linea_actual.CodigoEmpresa;
            nova_linea.idFamiliaCoste = propietaris_manager.parte_linea_actual.idFamiliaCoste;
            nova_linea.idLinea        = propietaris_manager.parte_linea_actual.idLinea;
            nova_linea.idParcela      = propietaris_manager.parte_linea_actual.idParcela;
            nova_linea.idParte        = propietaris_manager.parte_linea_actual.idParte;
            nova_linea.Observaciones  = propietaris_manager.parte_linea_actual.Observaciones;
            nova_linea.Precio         = propietaris_manager.parte_linea_actual.Precio;
            nova_linea.Total          = propietaris_manager.parte_linea_actual.Total;

            nova_linea.Descripcion       = descripcio_text_input.GetText();
            nova_linea.idFamiliaCoste    = treball.GetTbl().idCost;
            nova_linea.Unidades          = decimal.Parse(unitats_text_input.GetText());
            nova_linea.FertirrigacioSiNo = fertirrigacio_checkbox.IsSelected();

            if (maquinaria_combobox.IsSelected())
            {
                nova_linea.idMaquinaria = int.Parse(maquina.GetTbl().id);
            }

            if (personal_combobox.IsSelected())
            {
                nova_linea.idAplicador = int.Parse(personal.GetTbl().id);
            }

            if (eficacia_combobox.IsSelected())
            {
                nova_linea.EficaciaTractament = int.Parse((string)eficacia_combobox.GetSelected());
            }

            if (unitat != null)
            {
                nova_linea.idUnitatMetrica = unitat.GetTbl().id;
            }

            if (adob != null)
            {
                nova_linea.idProduteFito = adob.GetTbl().id;
            }

            // Comprova que aquesta linea no ha sigut ja modificata i actualitza
            for (int y = 0; y < partes_linea_per_afegir.Count; y++)
            {
                if (partes_linea_per_afegir[y].idLinea == nova_linea.idLinea)
                {
                    partes_linea_per_afegir.RemoveAt(y);
                    break;
                }
            }

            partes_linea_per_eliminar.Add(propietaris_manager.parte_linea_actual);
            partes_linea_per_afegir.Add(nova_linea);

            propietaris_manager.parte_linea_actual = nova_linea;

            Parcela        parcela = propietaris_manager.GetParcelaPerParcelaID(nova_linea.idParcela.ToString());
            tblPartesFinca parte   = propietaris_manager.GetPartePerParteId(nova_linea.idParte);

            grid.ModifyRow(grid.GetSelectedRowIndex(), treball, nova_linea.Descripcion, nova_linea.Unidades.ToString(),
                           nova_linea.idLinea.ToString(), unitat, parte.Estat, parcela.GetTbl().idParcelaVinicola, parcela.GetTbl().Ha,
                           (bool)nova_linea.FertirrigacioSiNo ? "Si" : "No", nova_linea.EficaciaTractament, personal, maquina, adob);
        }