Пример #1
0
        private void VerificaRispettoScadenza()
        {
            PrioritaDS ds = new PrioritaDS();

            using (PrioritaBusiness bPriorita = new PrioritaBusiness())
            {
                bPriorita.FillRW_SCADENZE(ds, DateTime.Today.AddDays(-8), DateTime.Today);
                bPriorita.FillUSR_PRD_FLUSSO_MOVFASI_By_RW_SCADENZE(ds, DateTime.Today.AddDays(-8), DateTime.Today);

                List <string> IDPRDMOVFASI = ds.RW_SCADENZE.Select(x => x.IDPRDMOVFASE).Distinct().ToList();

                foreach (string IDPRDMOVFASE in IDPRDMOVFASI)
                {
                    List <PrioritaDS.RW_SCADENZERow>            scadenze = ds.RW_SCADENZE.Where(x => x.IDPRDMOVFASE == IDPRDMOVFASE && x.DATA <= DateTime.Today).OrderBy(x => x.DATA).ToList();
                    List <PrioritaDS.USR_PRD_FLUSSO_MOVFASIRow> termini  = ds.USR_PRD_FLUSSO_MOVFASI.Where(x => x.IDPRDMOVFASE == IDPRDMOVFASE && x.IDPRDCAUFASE == "0000000008").OrderBy(x => x.DATAFLUSSOMOVFASE).ToList();

                    foreach (PrioritaDS.RW_SCADENZERow scadenza in scadenze)
                    {
                        decimal quantitainScadenza = scadenze.Where(x => x.DATA <= scadenza.DATA).Sum(x => x.QTA);
                        decimal lavoroEseguito     = termini.Where(x => x.DATAFLUSSOMOVFASE <= scadenza.DATA).Sum(x => x.QTAFLUSSO);

                        if (lavoroEseguito < quantitainScadenza)
                        {
                            scadenza.SCADUTO = 1;
                        }
                        else
                        {
                            scadenza.SCADUTO = 0;
                        }
                    }
                }
            }
        }
Пример #2
0
 private void CaricaAnagrafica()
 {
     using (PrioritaBusiness bPriorita = new PrioritaBusiness())
     {
         bPriorita.FillCLIFO(_dsAnagrafica);
         bPriorita.FillREPARTI(_dsAnagrafica);
         bPriorita.FillSEGNALATORI(_dsAnagrafica);
         bPriorita.FillTABFAS(_dsAnagrafica);
     }
 }
Пример #3
0
        private void bgwBIL_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            try
            {
                List <string> IDPRDMOVFASES = _dsPriorita.USR_PRD_MOVFASI.Select(x => x.IDPRDMOVFASE).Distinct().ToList();
                using (PrioritaBusiness bPriorita = new PrioritaBusiness())
                {
                    bPriorita.FillUSR_VENDITET(_dsPriorita, IDPRDMOVFASES);
                }
                if (worker.CancellationPending == true)
                {
                    e.Cancel = true;
                    return;
                }
                DataTable dtGriglia = _dsGriglieODL.Tables[_nomeTabellaGrigliaODL];

                foreach (DataRow riga in dtGriglia.Rows)
                {
                    string IDPRDMOVFASE = riga[(int)Colonne.IDPRDMOVFASE].ToString();

                    StringBuilder BIL = new StringBuilder();
                    List <PrioritaDS.USR_VENDITETRow> vendite = _dsPriorita.USR_VENDITET.Where(x => x.IDPRDMOVFASE == IDPRDMOVFASE).ToList();
                    if (worker.CancellationPending == true)
                    {
                        e.Cancel = true;
                        break;
                    }

                    if (vendite.Count > 0)
                    {
                        foreach (PrioritaDS.USR_VENDITETRow vendita in vendite)
                        {
                            string str = string.Format("{0} del {1}, ", vendita.NUMDOC, vendita.DATDOC.ToShortDateString());
                            BIL.Append(str);
                        }
                    }

                    riga[(int)Colonne.BIL] = BIL.Length == 0 ? string.Empty : BIL.ToString().Substring(0, BIL.Length - 2);
                }
            }
            catch (Exception ex)
            {
                ExceptionFrm form = new ExceptionFrm(ex);
                form.ShowDialog();
            }
        }
Пример #4
0
        private void dgvScadenze_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
        {
            if (_disabilitaCancellazione)
            {
                return;
            }
            int    rowIndex     = dgvODL.SelectedCells[0].RowIndex;
            string IDPRDMOVFASE = dgvODL.Rows[rowIndex].Cells[(int)Colonne.IDPRDMOVFASE].Value as string;

            using (PrioritaBusiness bPriorita = new PrioritaBusiness())
            {
                bPriorita.UpdateRW_SCADENZE(_dsPriorita);
            }
            int numeroRighe = _dsPriorita.RW_SCADENZE.Where(x => x.IDPRDMOVFASE == IDPRDMOVFASE).Count();

            AggiornaColoreRiga(rowIndex, numeroRighe > 0);
        }
Пример #5
0
        private void btnInserisciScadenza_Click(object sender, EventArgs e)
        {
            if (dgvODL.SelectedCells.Count == 0)
            {
                MessageBox.Show("Selezionare un ODL", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (nmQuantita.Value == 0)
            {
                MessageBox.Show("La quantità non può essere 0", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            int rowIndex = dgvODL.SelectedCells[0].RowIndex;

            decimal quantitaDaTerminare = (decimal)dgvODL.Rows[rowIndex].Cells[(int)Colonne.QUANTITADATERMINARE].Value;

            if (quantitaDaTerminare == 0)
            {
                MessageBox.Show("La quantità da terminare dell'ODL è 0. Non ci sono articoli da pianificare.", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            string  IDPRDMOVFASE = dgvODL.Rows[rowIndex].Cells[(int)Colonne.IDPRDMOVFASE].Value as string;
            decimal qtaODL       = (decimal)dgvODL.Rows[rowIndex].Cells[(int)Colonne.QUANTITA].Value;

            using (PrioritaBusiness bPriorita = new PrioritaBusiness())
            {
                if (VerificaCreazioneNuovaScadenza(qtaODL, IDPRDMOVFASE))
                {
                    dgvScadenze.DataSource = null;
                    PrioritaDS.RW_SCADENZERow nuovaScadenza = _dsPriorita.RW_SCADENZE.NewRW_SCADENZERow();
                    nuovaScadenza.IDSCADENZA   = bPriorita.GetID();
                    nuovaScadenza.IDPRDMOVFASE = IDPRDMOVFASE;
                    nuovaScadenza.DATA         = EstraiSoloData(dtScadenza.Value);
                    nuovaScadenza.QTA          = nmQuantita.Value;
                    _dsPriorita.RW_SCADENZE.AddRW_SCADENZERow(nuovaScadenza);
                }
                bPriorita.UpdateRW_SCADENZE(_dsPriorita);
                _dsPriorita.AcceptChanges();

                AssociaScadenze(IDPRDMOVFASE);
            }
            AggiornaColoreRiga(rowIndex, dgvScadenze.Rows.Count > 0);
        }
Пример #6
0
        private void dgvODL_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            _disabilitaCancellazione = true;
            ResetCampiScadenza();
            if (e.RowIndex == -1)
            {
                return;
            }
            try
            {
                string IDLANCIOD    = dgvODL.Rows[e.RowIndex].Cells[(int)Colonne.IDLANCIOD].Value as string;
                string IDPRDFASE    = dgvODL.Rows[e.RowIndex].Cells[(int)Colonne.IDPRDFASE].Value as string;
                string IDPRDMOVFASE = dgvODL.Rows[e.RowIndex].Cells[(int)Colonne.IDPRDMOVFASE].Value as string;
                string IDMAGAZZ     = dgvODL.Rows[e.RowIndex].Cells[(int)Colonne.IDMAGAZZ].Value as string;

                using (PrioritaBusiness bPriorita = new PrioritaBusiness())
                {
                    _dsPriorita.USR_PRD_FLUSSO_MOVFASI.Clear();

                    bPriorita.FillUSR_PRD_FLUSSO_MOVFASI(_dsPriorita, IDPRDMOVFASE);

                    PopolaDSGrigliaTermini();
                    dgvTermini.DataSource = _dsGriglieODL;
                    dgvTermini.DataMember = _nomeTabellaGrigliaTermini;


                    AssociaScadenze(IDPRDMOVFASE);
                }
            }
            catch (Exception ex)
            {
                ExceptionFrm form = new ExceptionFrm(ex);
                form.ShowDialog();
            }
            finally
            {
                _disabilitaCancellazione = false;
            }
        }
Пример #7
0
        private void btnTrova_Click(object sender, EventArgs e)
        {
            if (bgwBIL.IsBusy)
            {
                MessageBox.Show("Attività di recupero BIL in corso, impossibile interrompere adesso. Aspetta che l'attività sia stata annullata e riprova", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                CancellaBackgroundWorker();
                return;
            }

            Cursor.Current      = Cursors.WaitCursor;
            statusBarLabel.Text = "Ricerca in corso...";
            try
            {
                _dsGriglieODL.Tables[_nomeTabellaGrigliaODL].Clear();
                string codiceSegnalatore = string.Empty;
                string idTabFas          = string.Empty;
                string codiceReparto     = GetCodiceReparto();
                if (ddlSegnalatore.SelectedIndex != -1)
                {
                    codiceSegnalatore = ddlSegnalatore.SelectedItem as string;
                    if (_dsAnagrafica.SEGNALATORI.Any(x => x.RAGIONESOC == codiceSegnalatore))
                    {
                        codiceSegnalatore = _dsAnagrafica.SEGNALATORI.Where(x => x.RAGIONESOC == codiceSegnalatore).Select(x => x.CODICE).FirstOrDefault();
                    }
                }

                if (ddlFase.SelectedIndex != -1)
                {
                    idTabFas = ddlFase.SelectedItem as string;
                    if (_dsAnagrafica.TABFAS.Any(x => x.DESTABFAS == idTabFas))
                    {
                        idTabFas = _dsAnagrafica.TABFAS.Where(x => x.DESTABFAS == idTabFas).Select(x => x.IDTABFAS).FirstOrDefault();
                    }
                }

                _dsPriorita = new PrioritaDS();
                using (PrioritaBusiness bPriorita = new PrioritaBusiness())
                {
                    bPriorita.FillUSR_PRD_MOVFASI_Aperti(_dsPriorita, codiceSegnalatore, codiceReparto, idTabFas, txtArticolo.Text.ToUpper());
                    if (!chkSoloAperti.Checked)
                    {
                        bPriorita.FillUSR_PRD_MOVFASI_Chiusi(_dsPriorita, codiceSegnalatore, codiceReparto, idTabFas, txtArticolo.Text.ToUpper(), 7);
                    }

                    List <string> articoli = _dsPriorita.USR_PRD_MOVFASI.Select(x => x.IDMAGAZZ).Distinct().ToList();
                    bPriorita.FillMAGAZZ(_dsAnagrafica, articoli);

                    List <string> IDPRDFASE = _dsPriorita.USR_PRD_MOVFASI.Select(x => x.IDPRDFASE).Distinct().ToList();
                    bPriorita.FillUSR_PRD_FASI(_dsPriorita, IDPRDFASE);

                    List <string> IDLANCIOD = _dsPriorita.USR_PRD_FASI.Select(x => x.IDLANCIOD).Distinct().ToList();
                    bPriorita.FillUSR_PRD_LANCIOD(_dsPriorita, IDLANCIOD);

                    List <string> IDPRDMOVFASE = _dsPriorita.USR_PRD_MOVFASI.Select(x => x.IDPRDMOVFASE).Distinct().ToList();
                    bPriorita.FillRW_SCADENZE(_dsPriorita, IDPRDMOVFASE);
                    //IDPRDMOVFASE = _dsPriorita.USR_PRD_MOVFASI.Select(x => x.IDPRDMOVFASE).Distinct().ToList();
                    //bPriorita.FillUSR_VENDITET(_dsPriorita, IDPRDMOVFASE);

                    PopolaDSGrigliaODL();
                    bgwBIL.RunWorkerAsync();
                    statusBarLabel.Text = "Recupero BIL in corso...";
                }
            }
            catch (Exception ex)
            {
                ExceptionFrm form = new ExceptionFrm(ex);
                form.ShowDialog();
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }