示例#1
0
        public InfoPage(String Login, String Role)
        {
            InitializeComponent();


            label_Role.Text = Role;

            if (Role == "Driver")
            {
                var DriverInfo = Drivers.getDriverByLogin(Login);
                label_Category.Text   = DriverInfo.Category;
                label_Fathername.Text = DriverInfo.Fathername;
                label_Name.Text       = DriverInfo.Name;
                label_Salary.Text     = DriverInfo.Salary.ToString();
                label_Surname.Text    = DriverInfo.Surname;

                WaybillTable.Visible = true;

                List <WaybillModel> waybills = Waybills.getWaybillList().Where(item => item.DriverId == DriverInfo.Id).ToList();

                foreach (var item in waybills)
                {
                    var currentTransport = Transport.getTransportById(item.TransportId);
                    WaybillTable.Rows.Add(new string[] { currentTransport.Type, item.Distance.ToString(), item.Price.ToString() });
                }
            }
        }
示例#2
0
        private void button_Create_Click(object sender, EventArgs e)
        {
            int wayLength;

            if (string.IsNullOrEmpty(LengthField.Text) || int.TryParse(LengthField.Text, out wayLength) == false)
            {
                MessageBox.Show("Поле длины поездки должно быть не пустым, а также должно быть числом.");
                return;
            }

            int price;

            if (string.IsNullOrEmpty(PriceField.Text) || int.TryParse(PriceField.Text, out price) == false)
            {
                MessageBox.Show("Поле стоймости поездки должно быть не пустым, а также должно быть числом.");
                return;
            }

            var waybillDate = (DateTime)dateTimePicker_SelectDate.Value;

            Waybills.addWaybill(new WaybillModel()
            {
                DriverId    = drivers[comboBox_SelectDriver.SelectedIndex].Id,
                TransportId = transport[comboBox_SelectTransport.SelectedIndex].Id,
                Distance    = wayLength,
                Price       = price,
                Date        = waybillDate.ToString("dd/MM/yyyy")
            });

            MessageBox.Show("Путевой лист был успешно добавлен.");
            Close();
        }
        public void updateDataGrid()
        {
            dataGridView1.Rows.Clear();

            List <WaybillModel> list = Waybills.getWaybillList();

            foreach (var item in list)
            {
                var driverItem = Drivers.getDriverById(item.DriverId);
                dataGridView1.Rows.Add(new string[] { driverItem.Name, driverItem.Surname, driverItem.Fathername, item.Price.ToString(), item.Distance.ToString(), item.Date });
            }
        }
示例#4
0
 public void AddWaybill([MarshalAs(UnmanagedType.IDispatch)] object waybill)
 {
     Waybills.Add((Waybill)waybill);
 }
示例#5
0
        private void button_Calc_Click(object sender, EventArgs e)
        {
            var waybills = Waybills.getWaybillList();

            DateTime start = DateTime.Parse(((DateTime)StartDate.Value).ToString("dd/MM/yyyy"));
            DateTime end   = DateTime.Parse(((DateTime)EndDate.Value).ToString("dd/MM/yyyy"));

            if (start > end)
            {
                MessageBox.Show("Начало не может быть позже конца.");
                return;
            }

            var validWays = new List <WaybillModel>();

            foreach (var item in waybills)
            {
                if (start <= DateTime.Parse(item.Date) && DateTime.Parse(item.Date) <= end)
                {
                    validWays.Add(item);
                }
            }

            var driverMap    = new Dictionary <int, int>();
            var transportMap = new Dictionary <int, int>();

            foreach (var item in validWays)
            {
                if (driverMap.ContainsKey(item.DriverId) == false)
                {
                    driverMap.Add(item.DriverId, item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance);
                }
                else
                {
                    driverMap[item.DriverId] += item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance;
                }


                if (transportMap.ContainsKey(item.TransportId) == false)
                {
                    transportMap.Add(item.TransportId, item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance);
                }
                else
                {
                    transportMap[item.TransportId] = Math.Max(item.Price - Drivers.getDriverById(item.DriverId).Salary *item.Distance, transportMap[item.TransportId]);
                }
            }

            int maxDriverValue = int.MinValue, maxDriverId = -1;

            foreach (var item in driverMap)
            {
                if (item.Value > maxDriverValue)
                {
                    maxDriverValue = item.Value;
                    maxDriverId    = item.Key;
                }
            }

            if (maxDriverId != -1)
            {
                var driver       = Drivers.getDriverById(maxDriverId);
                var reportDriver = new ReportDriver()
                {
                    Name            = driver.Name,
                    Surname         = driver.Surname,
                    Fathername      = driver.Fathername,
                    Income          = maxDriverValue,
                    DateStartReport = start,
                    DateEndReport   = end
                };
                reportDriver.saveToXml();
            }

            foreach (var item in transportMap)
            {
                var transport       = Transport.getTransportById(item.Key);
                var reportTransport = new ReportTransport()
                {
                    Type            = transport.Type,
                    Income          = item.Value,
                    DateStartReport = start,
                    DateEndReport   = end
                };
                reportTransport.saveToXml();
            }
            Close();
        }
示例#6
0
        public List <IAccountingDocumentBase> FindAccountingDocuments(string number, string date,
                                                                      string butin, string butrrc,
                                                                      string cuuid, string ctin, string ctrrc,
                                                                      bool corrective,
                                                                      bool incomingTaxInvoice,
                                                                      bool outgoingTaxInvoice,
                                                                      bool contractStatement,
                                                                      bool waybill,
                                                                      bool universalTransferDocument)
        {
            var result = AccountingDocumentBases.GetAll()
                         .Where(a => incomingTaxInvoice && IncomingTaxInvoices.Is(a) ||
                                outgoingTaxInvoice && OutgoingTaxInvoices.Is(a) ||
                                contractStatement && ContractStatements.Is(a) ||
                                waybill && Waybills.Is(a) ||
                                universalTransferDocument && UniversalTransferDocuments.Is(a));

            // Фильтр по НОР.
            if (string.IsNullOrWhiteSpace(butin) || string.IsNullOrWhiteSpace(butrrc))
            {
                return(new List <IAccountingDocumentBase>());
            }

            var businessUnit = Sungero.Company.BusinessUnits.GetAll().FirstOrDefault(x => x.TIN == butin && x.TRRC == butrrc);

            if (businessUnit == null)
            {
                return(new List <IAccountingDocumentBase>());
            }
            else
            {
                result = result.Where(x => Equals(x.BusinessUnit, businessUnit));
            }

            // Фильтр по номеру.
            var relevantNumbers = this.GetRelevantNumbers(number);

            result = result.Where(x => relevantNumbers.Contains(x.RegistrationNumber));

            // Фильтр по дате.
            DateTime parsedDate;

            if (!string.IsNullOrWhiteSpace(date) && DateTime.TryParseExact(date,
                                                                           "dd'.'MM'.'yyyy",
                                                                           System.Globalization.CultureInfo.InvariantCulture,
                                                                           System.Globalization.DateTimeStyles.None,
                                                                           out parsedDate))
            {
                result = result.Where(x => x.RegistrationDate == parsedDate);
            }

            // Фильтр по контрагенту.
            var counterparties = Sungero.Parties.PublicFunctions.Module.Remote.FindCounterparty(cuuid, ctin, ctrrc, string.Empty);

            if (counterparties.Any())
            {
                result = result.Where(x => counterparties.Contains(x.Counterparty));
            }

            // Фильтр корректировочный или нет.
            result = result.Where(x => x.IsAdjustment == corrective);

            return(result.ToList());
        }