예제 #1
0
        public ProfitReportsController(IAdditionalCostsManager additionalCostsManager,
                                       IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager, IOrdersManager orderManager,
                                       IForeignProductsManager foreignProductsManager, IMaterialDeliveryRspManager materialDeliveryRspManager,
                                       ISocialTaxesManager socialTaxesManager, IInstrumentsManager instrumentsManager, IOwnProductsManager ownProductsManager,
                                       ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
                                       ITaxesManager taxesManager, IInvoicesManager invoicesManager, IInterestsManager interestsManager, ITermsManager termsManager)
        {
            this.additionalCostsManager     = additionalCostsManager;
            this.employeeRateRspManager     = employeeRateRspManager;
            this.employeeManager            = employeeManager;
            this.orderManager               = orderManager;
            this.foreignProductsManager     = foreignProductsManager;
            this.ownProductsManager         = ownProductsManager;
            this.materialDeliveryRspManager = materialDeliveryRspManager;
            this.socialTaxesManager         = socialTaxesManager;
            this.instrumentsManager         = instrumentsManager;
            this.interestsManager           = interestsManager;

            this.termPositionsManager = termPositionsManager;
            this.positionsManager     = positionsManager;
            this.termCostsManager     = termCostsManager;
            this.taxesManager         = taxesManager;
            this.invoicesManager      = invoicesManager;
            this.termsManager         = termsManager;
        }
예제 #2
0
        public ProfitReportsController(IAdditionalCostsManager additionalCostsManager, 
            IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager, IOrdersManager orderManager,
            IForeignProductsManager foreignProductsManager, IMaterialDeliveryRspManager materialDeliveryRspManager,
            ISocialTaxesManager socialTaxesManager, IInstrumentsManager instrumentsManager, IOwnProductsManager ownProductsManager,
            ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
            ITaxesManager taxesManager, IInvoicesManager invoicesManager, IInterestsManager interestsManager, ITermsManager termsManager)
        {
            this.additionalCostsManager = additionalCostsManager;
            this.employeeRateRspManager = employeeRateRspManager;
            this.employeeManager = employeeManager;
            this.orderManager = orderManager;
            this.foreignProductsManager = foreignProductsManager;
            this.ownProductsManager = ownProductsManager;
            this.materialDeliveryRspManager = materialDeliveryRspManager;
            this.socialTaxesManager = socialTaxesManager;
            this.instrumentsManager = instrumentsManager;
            this.interestsManager = interestsManager;

            this.termPositionsManager = termPositionsManager;
            this.positionsManager = positionsManager;
            this.termCostsManager = termCostsManager;
            this.taxesManager = taxesManager;
            this.invoicesManager = invoicesManager;
            this.termsManager = termsManager;
        }
        public ChangeTermStateController(ITermsManager termManager, IUserManager userManager, 
            IDeliveryNoteSignaturesManager deliveryNoteSignaturesManager, IPrinterManager printerManager)
	    {
	        this.termManager = termManager;
	        this.userManager = userManager;
	        this.deliveryNoteSignaturesManager = deliveryNoteSignaturesManager;
            this.printerManager = printerManager;
        }
예제 #4
0
 public AddNewMaterialController(ITermsManager termManager, IMaterialsManager materialManager,
                                 IPositionsManager positionsManager, IUserManager userManager)
 {
     this.termManager      = termManager;
     this.materialManager  = materialManager;
     this.positionsManager = positionsManager;
     this.userManager      = userManager;
 }
예제 #5
0
 public ShowTermsController(ITermsManager manager, IProductTypesManager productTypesManager, IUniqueNumberProvider numberProvider,
                            IAbsencesManager absencesManager)
 {
     this.manager             = manager;
     this.productTypesManager = productTypesManager;
     this.numberProvider      = numberProvider;
     this.absencesManager     = absencesManager;
 }
예제 #6
0
        public AddNewPositionController(ITermsManager termManager, IProductsManager productManager, 
            IPositionsManager positionsManager, IUserManager userManager)
	    {
	        this.termManager = termManager;
	        this.productManager = productManager;
	        this.positionsManager = positionsManager;
            this.userManager = userManager;
        }
예제 #7
0
 public ChangeTermStateController(ITermsManager termManager, IUserManager userManager,
                                  IDeliveryNoteSignaturesManager deliveryNoteSignaturesManager, IPrinterManager printerManager)
 {
     this.termManager = termManager;
     this.userManager = userManager;
     this.deliveryNoteSignaturesManager = deliveryNoteSignaturesManager;
     this.printerManager = printerManager;
 }
예제 #8
0
 public ShowTermsController(ITermsManager manager, IProductTypesManager productTypesManager, IUniqueNumberProvider numberProvider,
     IAbsencesManager absencesManager)
 {
     this.manager = manager;
     this.productTypesManager = productTypesManager;
     this.numberProvider = numberProvider;
     this.absencesManager = absencesManager;
 }
예제 #9
0
 public AddNewPositionController(ITermsManager termManager, IProductsManager productManager,
                                 IPositionsManager positionsManager, IUserManager userManager)
 {
     this.termManager      = termManager;
     this.productManager   = productManager;
     this.positionsManager = positionsManager;
     this.userManager      = userManager;
 }
예제 #10
0
        public AddNewMaterialController(ITermsManager termManager, IMaterialsManager materialManager, 
            IPositionsManager positionsManager, IUserManager userManager)
	    {
	        this.termManager = termManager;
	        this.materialManager = materialManager;
	        this.positionsManager = positionsManager;
            this.userManager = userManager;
        }
예제 #11
0
        public static IEnumerable <SalaryModel> GetSalary(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager,
                                                          IEmployeesManager employeeManager, DateTime fromDate, DateTime toDate)
        {
            var result = new List <SalaryModel>();

            var rates     = employeeRateRspManager.GetEntities(o => o.SalaryTypes == SalaryTypes.Monthly).ToList(); //TODO delete check ?
            var employees = employeeManager.GetEntities().ToList();

            foreach (var employee in employees)
            {
                double amount = 0;
                for (var date = fromDate; date < toDate; date = date.AddMonths(1))
                {
                    var rate = rates.Where(o => o.EmployeeId == employee.Id && o.FromDate <= date && date <= o.ToDate).FirstOrDefault();

                    if (rate != null)
                    {
                        amount += rate.Salary;
                    }
                }

                result.Add(new SalaryModel()
                {
                    Id           = employee.Id,
                    employeeName = employee.Name,
                    amountString = amount.ToString("N2") + " EUR",
                    amount       = amount,
                });
            }

            var workHours = WorkHoursHelper.GetWorkHours(termsManager, employeeRateRspManager, employeeManager, fromDate, toDate, null);

            foreach (var group in workHours.GroupBy(o => o.employeeId))
            {
                var model  = result.FirstOrDefault(o => o.Id == group.Key);
                var amount = group.Sum(o => o.amount);
                if (model == null)
                {
                    model = new SalaryModel()
                    {
                        Id           = group.Key,
                        employeeName = employees.FirstOrDefault(o => o.Id == group.Key).Name,
                        amountString = amount.ToString("N2") + " EUR",
                        amount       = amount,
                    };

                    result.Add(model);
                }
                else
                {
                    model.amount      += amount;
                    model.amountString = model.amount.ToString("N2") + " EUR";
                }
            }

            return(result);
        }
예제 #12
0
        public static IEnumerable<SalaryModel> GetSalary(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager, 
            IEmployeesManager employeeManager, DateTime fromDate, DateTime toDate)
        {
            var result = new List<SalaryModel>();

            var rates = employeeRateRspManager.GetEntities(o => o.SalaryTypes == SalaryTypes.Monthly).ToList(); //TODO delete check ?
            var employees = employeeManager.GetEntities().ToList();

            foreach (var employee in employees)
            {
                double amount = 0;
                for (var date = fromDate; date < toDate; date = date.AddMonths(1))
                {
                    var rate = rates.Where(o => o.EmployeeId == employee.Id && o.FromDate <= date && date <= o.ToDate).FirstOrDefault();
                    
                    if(rate != null)
                    {
                        amount += rate.Salary;
                    }
                }

                result.Add(new SalaryModel()
                {
                    Id = employee.Id,
                    employeeName = employee.Name,
                    amountString = amount.ToString("N2") + " EUR",
                    amount = amount,
                });
            }

            var workHours = WorkHoursHelper.GetWorkHours(termsManager, employeeRateRspManager, employeeManager, fromDate, toDate, null);

            foreach (var group in workHours.GroupBy(o => o.employeeId))
            {
                var model = result.FirstOrDefault(o => o.Id == group.Key);
                var amount = group.Sum(o => o.amount);
                if (model == null)
                {
                    model = new SalaryModel()
                    {
                        Id = group.Key,
                        employeeName = employees.FirstOrDefault(o => o.Id == group.Key).Name,
                        amountString = amount.ToString("N2") + " EUR",
                        amount = amount,
                    };

                    result.Add(model);
                }
                else
                {
                    model.amount += amount;
                    model.amountString = model.amount.ToString("N2") + " EUR";
                }
            }

            return result;
        }
예제 #13
0
 public PrintController(IOrdersManager manager, IInvoicesManager invoicesManager, 
     IInvoiceStornosManager invoiceStornosManager, ITaxesManager taxesManager,
     ITransportOrdersManager transportOrdersManager, IPrinterManager printerManager,
     ITermsManager termsManager) :
     base()
 {
     this.taxesManager = taxesManager;
     this.invoicesManager = invoicesManager;
     this.invoiceStornosManager = invoiceStornosManager;
     this.transportOrdersManager = transportOrdersManager;
     this.printerManager = printerManager;
     this.termsManager = termsManager;
     Manager = manager;
     FilterExpressionCreator = new FilterExpressionCreator();
 }
예제 #14
0
 public PrintController(IOrdersManager manager, IInvoicesManager invoicesManager,
                        IInvoiceStornosManager invoiceStornosManager, ITaxesManager taxesManager,
                        ITransportOrdersManager transportOrdersManager, IPrinterManager printerManager,
                        ITermsManager termsManager) :
     base()
 {
     this.taxesManager           = taxesManager;
     this.invoicesManager        = invoicesManager;
     this.invoiceStornosManager  = invoiceStornosManager;
     this.transportOrdersManager = transportOrdersManager;
     this.printerManager         = printerManager;
     this.termsManager           = termsManager;
     Manager = manager;
     FilterExpressionCreator = new FilterExpressionCreator();
 }
        public ClientTermPositionsController(ITermsManager termManager)
	    {
	        this.termManager = termManager;
        }
예제 #16
0
 public WorkHoursController(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager)
 {
     this.termsManager           = termsManager;
     this.employeeRateRspManager = employeeRateRspManager;
     this.employeeManager        = employeeManager;
 }
예제 #17
0
 public SalaryController(IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager, ITermsManager termsManager) 
 {
     this.employeeRateRspManager = employeeRateRspManager;
     this.employeeManager = employeeManager;
     this.termsManager = termsManager;
 }
예제 #18
0
 public ClientTermsController(IUserManager userManager, ITermsManager termManager)
 {
     this.userManager = userManager;
     this.termManager = termManager;
 }
예제 #19
0
 public GetTermController(ITermsManager termManager)
 {
     this.termManager = termManager;
 }
예제 #20
0
        public static IEnumerable<WorkHoursModel> GetWorkHours(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager,
            IEmployeesManager employeeManager,
            DateTime fromDate, DateTime toDate, int? employeeId)
        {
            var result = new List<WorkHoursModel>();

            var rates = employeeRateRspManager.GetEntities(o => o.SalaryTypes == SalaryTypes.Hour).ToList();
            var employees = employeeManager.GetEntities().ToList();

            var terms = termsManager.GetEntities(o => o.Date >= fromDate && o.Date <= toDate).ToList();

            foreach (var term in terms)
            {
                var termEmployees = term.TermEmployees.Where(o => !o.DeleteDate.HasValue);
                if (employeeId.HasValue)
                {
                    termEmployees = termEmployees.Where(o => o.EmployeeId == employeeId.Value);
                }

                foreach (var termEmployee in termEmployees.ToList())
                {
                    var rate = rates.Where(o => o.EmployeeId == termEmployee.EmployeeId && o.FromDate <= term.Date && term.Date <= o.ToDate).FirstOrDefault();
                    double amount = 0;

                    var startTime = term.Date;
                    var endTime = term.Date.AddMinutes(term.Duration);

                    if (term.BeginTrip.HasValue)
                    {
                        startTime = term.BeginTrip.Value;
                    }

                    if(term.EndReturnTrip.HasValue)
                    {
                        endTime = term.EndReturnTrip.Value;
                    }
                    else if(term.EndWork.HasValue)
                    {
                        endTime = term.EndWork.Value;
                    }

                    var duration = Math.Round((endTime - startTime).TotalMinutes);

                    if(rate != null)
                    {
                        amount = (rate.Salary / (double)60) * duration;
                    }

                    result.Add(new WorkHoursModel()
                    {
                        Id = termEmployee.Id,
                        employeeId = termEmployee.EmployeeId,
                        employeeName = termEmployee.Employees.Name,
                        amountString = amount.ToString("N2") + " EUR",
                        amount = amount,
                        duration = String.Format("{0} Min.", duration),
                        date = term.Date,
                    });
                }
            }

            return result;
        }
 public DeleteAllTermPositionsController(ITermsManager manager, ITermPositionsManager positionManager)
 {
     this.manager         = manager;
     this.positionManager = positionManager;
 }
예제 #22
0
 public ClientTermPositionsController(ITermsManager termManager)
 {
     this.termManager = termManager;
 }
예제 #23
0
 public SalaryController(IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager, ITermsManager termsManager)
 {
     this.employeeRateRspManager = employeeRateRspManager;
     this.employeeManager        = employeeManager;
     this.termsManager           = termsManager;
 }
예제 #24
0
 public FreeEmployeesController(IEmployeesManager manager, ITermsManager termManager) :
     base(manager)
 {
     this.termManager = termManager;
 }
예제 #25
0
        private MemoryStream PrepareCommonOrderPrintData(IOrdersManager ordersManager, int id, string path, PrintTypes type,
            IInvoicesManager invoicesManager, ITaxesManager taxesManager, IInvoiceStornosManager invoiceStornosManager = null,
            ITransportOrdersManager transportOrdersManager = null,
            ITermsManager termsManager = null)
        {
            var result = new MemoryStream();
            try
            {
                Package pkg;
                PackagePart part;
                XmlReader xmlReader;
                XDocument xmlMainXMLDoc;
                GetXmlDoc(path, result, out pkg, out part, out xmlReader, out xmlMainXMLDoc);


                var images = new List<Image>();

                if (type == PrintTypes.DeliveryNote)
                {
                    var term = termsManager.GetById(id);
                    for (var i = 0; i < term.DeliveryNoteSignatures.Count; i++)
                    {
                        var deliveryNoteSignature = term.DeliveryNoteSignatures.ElementAt(term.DeliveryNoteSignatures.Count - i - 1);
                        //TODO doesnt work ((
                        //pkg.CreateRelationship(uri, TargetMode.Internal,
                        //    "Http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
                        //    "barcodeImageId");


                        byte[] bytes = Convert.FromBase64String(deliveryNoteSignature.Signature.Replace("data:image/png;base64,", ""));

                        Image image;
                        using (MemoryStream ms = new MemoryStream(bytes))
                        {
                            image = Image.FromStream(ms);
                        }

                        images.Add(image);
                    }
                }

                //replace fields
                var templateBody = ReplaceFields(ordersManager, id, type, xmlMainXMLDoc.Root.ToString(),
                    invoicesManager, taxesManager, null, invoiceStornosManager, transportOrdersManager, termsManager, images);

                xmlMainXMLDoc = SaveDoc(result, pkg, part, xmlReader, xmlMainXMLDoc, templateBody);

                InsertImages(result, images);

                var doc = new Spire.Doc.Document();
                doc.LoadFromStream(result, Spire.Doc.FileFormat.Docx);
                doc.JPEGQuality = 100;

                result = new MemoryStream();
                doc.SaveToStream(result, Spire.Doc.FileFormat.PDF);
            }
            catch
            {
            }

            return result;
        }
예제 #26
0
        private string ReplaceFields(IOrdersManager ordersManager, int id, PrintTypes printType, string xmlMainXMLDoc,
            IInvoicesManager invoicesManager, ITaxesManager taxesManager, Invoices invoice = null,
            IInvoiceStornosManager invoiceStornosManager = null,
            ITransportOrdersManager transportOrdersManager = null,
            ITermsManager termsManager = null, 
            IEnumerable<Image> images = null)
        {
            string result = xmlMainXMLDoc;

            switch (printType)
            {
                case PrintTypes.Order:
                    var order = ordersManager.GetById(id);
                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);

                    result = result.Replace("#SignatureDate", order.CreateDate.AddDays(2).ToShortDateString());

                    result = ReplaceRentPositions(order, result, taxesManager);
                    result = ReplaceTotalPrice(order, result, taxesManager);
                    result = ReplaceRentAdditionalCostPositions(order, result);
                    break;
                case PrintTypes.Offer:
                    order = ordersManager.GetById(id);
                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOfferFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);
                    result = ReplaceRentPositions(order, result, taxesManager);
                    result = ReplaceRentAdditionalCostPositions(order, result);
                    break;
                case PrintTypes.Invoice:

                    if (invoice == null)
                    {
                        invoice = invoicesManager.GetById(id);
                    }

                    order = invoice.Orders;

                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);
                    result = ReplaceBaseInvoiceFields(invoice, result, printType);

                    bool manualPricePrinted = false;
                    result = ReplaceInvoicePositions(invoice, invoice.InvoicePositions.ToList(), result,
                        "#PositionDescription", "#PositionPrice", "Leistungen: ", ref manualPricePrinted);

                    result = ReplaceInvoicePrices(invoice, result);
                    break;
                case PrintTypes.InvoiceStorno:

                    var invoiceStorno = invoiceStornosManager.GetById(id);
                    invoice = invoiceStorno.Invoices;
                    order = invoice.Orders;

                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);
                    result = ReplaceBaseInvoiceFields(invoice, result, printType);
                    result = ReplaceInvoiceStornoPrices(invoiceStorno, result);

                    result = ReplaceFieldValue(result, "#FreeText", invoiceStorno.FreeText);

                    break;
                case PrintTypes.ReminderMail:

                    invoice = invoicesManager.GetById(id);
                    order = invoice.Orders;

                    result = ReplaceCommonFields(order, result);
                    result = ReplaceReminderPositions(invoice.InvoicePositions.ToList(), result);
                    result = ReplaceReminderTotalPrice(invoice, result, taxesManager);

                    break;
                case PrintTypes.DeliveryNote:

                    var term = termsManager.GetById(id);
                    result = ReplaceCommonFields(term.Orders, result);
                    result = ReplaceBaseOrderFields(term.Orders, result);

                    result = result.Replace("#DeliveryNoteType", "Lieferschein");
                    result = result.Replace("#DateType", "Liefertermin");
                    result = result.Replace("#AdressType", "Lieferanschrift");
                    result = result.Replace("#OrderNumber", term.Orders.OrderNumber);
                    
                    result = ReplacePositionWithDescription(term, result);


                    if (term.DeliveryNoteSignatures.Count != 0)
                    {
                        var doc = XDocument.Parse(result);
                        var signatureElement = doc.Descendants().FirstOrDefault(o => o.Value.Equals("#Signature",
                            StringComparison.InvariantCultureIgnoreCase));

                        if (signatureElement != null && images != null && images.Count() != 0)
                        {
                            var currentElement = signatureElement;
                            for (var i = 0; i < images.Count(); i++)
                            {
                                var image = images.ElementAt(images.Count() - i - 1);
                                //TODO doesnt work ((
                                //pkg.CreateRelationship(uri, TargetMode.Internal,
                                //    "Http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
                                //    "barcodeImageId");
                                
                                //insert image
                                XmlElement tagDrawing = GetImageTag(image.Width, image.Height,
                                    term.DeliveryNoteSignatures.Count - i);

                                signatureElement.AddAfterSelf(XDocument.Parse(tagDrawing.InnerXml).Root);
                            }

                            signatureElement.Remove();
                            result = doc.Root.ToString();
                        }
                        else
                        {
                            result = result.Replace("#Signature", String.Empty);
                        }
                    }
                    else
                    {
                        result = result.Replace("#Signature", String.Empty);
                    }

                    break;
                default:
                    throw new NotImplementedException();
            }

            return result;
        }
예제 #27
0
        public GetTermController(ITermsManager termManager)
	    {
	        this.termManager = termManager;
        }
예제 #28
0
 public MemoryStream PrepareDeliveryNotePrintData(int id, string path, ITermsManager termsManager)
 {
     return PrepareCommonOrderPrintData(null, id, path, PrintTypes.DeliveryNote, null, null, null, null, termsManager);
 }
 public DeleteAllTermPositionsController(ITermsManager manager, ITermPositionsManager positionManager)
 {
     this.manager = manager;
     this.positionManager = positionManager;
 }
예제 #30
0
        public ClientTermsController(IUserManager userManager, ITermsManager termManager)
	    {
	        this.userManager = userManager;
	        this.termManager = termManager;
        }
예제 #31
0
 public WorkHoursController(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager) 
 {
     this.termsManager = termsManager;
     this.employeeRateRspManager = employeeRateRspManager;
     this.employeeManager = employeeManager;
 }
예제 #32
0
        public static IEnumerable <WorkHoursModel> GetWorkHours(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager,
                                                                IEmployeesManager employeeManager,
                                                                DateTime fromDate, DateTime toDate, int?employeeId)
        {
            var result = new List <WorkHoursModel>();

            var rates     = employeeRateRspManager.GetEntities(o => o.SalaryTypes == SalaryTypes.Hour).ToList();
            var employees = employeeManager.GetEntities().ToList();

            var terms = termsManager.GetEntities(o => o.Date >= fromDate && o.Date <= toDate).ToList();

            foreach (var term in terms)
            {
                var termEmployees = term.TermEmployees.Where(o => !o.DeleteDate.HasValue);
                if (employeeId.HasValue)
                {
                    termEmployees = termEmployees.Where(o => o.EmployeeId == employeeId.Value);
                }

                foreach (var termEmployee in termEmployees.ToList())
                {
                    var    rate   = rates.Where(o => o.EmployeeId == termEmployee.EmployeeId && o.FromDate <= term.Date && term.Date <= o.ToDate).FirstOrDefault();
                    double amount = 0;

                    var startTime = term.Date;
                    var endTime   = term.Date.AddMinutes(term.Duration);

                    if (term.BeginTrip.HasValue)
                    {
                        startTime = term.BeginTrip.Value;
                    }

                    if (term.EndReturnTrip.HasValue)
                    {
                        endTime = term.EndReturnTrip.Value;
                    }
                    else if (term.EndWork.HasValue)
                    {
                        endTime = term.EndWork.Value;
                    }

                    var duration = Math.Round((endTime - startTime).TotalMinutes);

                    if (rate != null)
                    {
                        amount = (rate.Salary / (double)60) * duration;
                    }

                    result.Add(new WorkHoursModel()
                    {
                        Id           = termEmployee.Id,
                        employeeId   = termEmployee.EmployeeId,
                        employeeName = termEmployee.Employees.Name,
                        amountString = amount.ToString("N2") + " EUR",
                        amount       = amount,
                        duration     = String.Format("{0} Min.", duration),
                        date         = term.Date,
                    });
                }
            }

            return(result);
        }