public RaportCumulatMuncitorIMO(ScanareIMO s, ScanareDetaliiIMO det)
 {
     this.Firma = s.Firma;
     this.DataScanare = s.DataScanare;
     this.Ambalaj = det.Ambalaj;
     this.Numar = Convert.ToInt32(det.Numar);
     this.Greutate = det.Greutate;
     this.TotalGreutateZi = s.TotalGreutateZi;
     this.TotalGreutatePerioada += s.TotalGreutateZi;
     this.DataStart = s.DataStart;
     this.DataEnd = s.DataEnd;
     this.SefEchipa = s.SefEchipa;
 }
        internal IList<ScanareIMO> GetScanariAmbalaje(string firma,string ambalaj, DateTime dataStart, DateTime dataEnd)
        {
            List<ScanareIMO> ret = null;
            IList<ScanareDetaliiIMO> listDetalii=null;
            DateTime dataE = new DateTime();
            DateTime dataS = new DateTime();
            ScanareIMO scanare=null;
            decimal totalGreutateZi = 0;

            try
            {
                ret = new List<ScanareIMO>();

                for (DateTime date = dataStart.Date; date < dataEnd.Date.AddDays(1).AddMilliseconds(-1); date += TimeSpan.FromDays(1))
                {
                    IList param = new ArrayList();
                    dataS = date;
                    dataE = dataS.Date.AddDays(1).AddMilliseconds(-1);
                    param.Add(new QueryParameter("xDataS", date.Date, "s.DataScanare", OperatorType.GreatherOrEquals, OperatorJoinType.AND));
                    param.Add(new QueryParameter("xDataE", dataE, "s.DataScanare", OperatorType.LessOrEquals, OperatorJoinType.AND));
                    if (ambalaj != "" && ambalaj != "ALL")
                    {
                        param.Add(new QueryParameter("xDenumireA", ambalaj, "a.Denumire", OperatorType.Equals, OperatorJoinType.AND));
                    }
                    if (firma != "" && firma != "ALL")
                    {
                        param.Add(new QueryParameter("yDenumireF", firma, "f.Denumire", OperatorType.Equals, OperatorJoinType.AND));
                    }

                    listDetalii = dao.ExecuteHql("select new ScanareDetaliiIMO(a,count(s.Id),sum(a.Greutate)) " +
                    " from Scanare s inner join s.Muncitor m inner join m.Firma f "+
                    " inner join s.Ambalaj a group by a.Denumire",
                    param).Cast<ScanareDetaliiIMO>().ToList<ScanareDetaliiIMO>().AsReadOnly();
                    if (listDetalii.Count != 0)
                    {
                        scanare = new ScanareIMO();
                        scanare.DataScanare = date;
                        scanare.DataStart = dataStart;
                        scanare.DataEnd = dataEnd;
                        scanare.Firma = firma;
                        totalGreutateZi = 0;
                        foreach (ScanareDetaliiIMO det in listDetalii)
                        {
                            scanare.Detalii.Add(det);
                            totalGreutateZi += det.Greutate;
                        }
                        scanare.TotalGreutateZi = totalGreutateZi;
                        ret.Add(scanare);
                    }
                    param = null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return ret;
        }
        private IList<ScanareIMO> GetScanareDetaliiIMO(Persoana p, DateTime dataStart, DateTime dataEnd)
        {
            IList<ScanareDetaliiIMO> list = null;
            IList<ScanareIMO> scanari = null;
            ScanareIMO scanare = null;
            DateTime dataE = new DateTime();
            DateTime dataS = new DateTime();
            try
            {
                scanari = new List<ScanareIMO>();

                for (DateTime date = dataStart.Date; date < dataEnd.Date.AddDays(1).AddMilliseconds(-1); date += TimeSpan.FromDays(1))
                {
                    IList param = new ArrayList();
                    dataS = date;
                    dataE = dataS.Date.AddDays(1).AddMilliseconds(-1);
                    param.Add(new QueryParameter("xDataS", date.Date, "s.DataScanare", OperatorType.GreatherOrEquals, OperatorJoinType.AND));
                    param.Add(new QueryParameter("xDataE", dataE, "s.DataScanare", OperatorType.LessOrEquals, OperatorJoinType.AND));
                    param.Add(new QueryParameter("xPId", p.Id, "m.Id", OperatorType.Equals, OperatorJoinType.AND));
                    list = dao.ExecuteHql("select new ScanareDetaliiIMO(m, s) " +
                    " from Scanare s inner join s.Muncitor m ", param).Cast<ScanareDetaliiIMO>().ToList <ScanareDetaliiIMO>().AsReadOnly();

                    if (list.Count != 0)
                    {
                        scanare = new ScanareIMO();
                        scanare.Nume = p.Nume;
                        scanare.Prenume = p.Prenume;
                        scanare.DataScanare = date;
                        scanare.Detalii = list;
                        scanare.Firma = p.Firma.Denumire;
                        scanare.SefEchipa = list[0].Sef;
                        scanari.Add(scanare);
                    }

                    param = null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return scanari;
        }
 private void grdScanari_SelectionChanged(object sender, EventArgs e)
 {
     if (bindingSource1.Current != null)
     {
         scanareCurenta = bindingSource1.Current as ScanareIMO;
     }
     else
     {
         //scanareCurenta = new ScanareIMO();
         MessageBox.Show("Criteriile specificate nu au returnat vreun rezultat");
         return;
     }
     detalii = scanareCurenta.Detalii;
     bindingSource3.DataSource = detalii;
     grdDetalii.Update(true);
     PopulateScanariDetalii();
 }