{"version":3,"file":"main.cadc59d54e6b2a5c511e.js","mappings":"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wGAAwG,2BAA2B,cAAc,uEAAuE,0BAA0B,mBAAmB,MAAM,yBAAyB,6LAA6L,0BAA0B,yGAAyG,0BAA0B,mBAAmB,KAAK,yCAAyC,4LAA4L,yCAAyC,8PAA8P,6BAA6B,sEAAsE,6CAA6C,4BAA4B,0BAA0B,mEAAmE,SAAS;AACnlD;AACA;;;;;;;;;ACHA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjVA;;;;;;;ACAA;;;;;;;ACAA","sources":["webpack://retail/./modules/angular-spinner/angular-spinner.js","webpack://retail/./src/app/app.js","webpack://retail/./src/bridge/bridgeConverter.tsx","webpack://retail/./src/react/FooBar.tsx","webpack://retail/./src/react/MetaFieldValues.tsx","webpack://retail/./src/react/MetaFields.tsx","webpack://retail/./src/react/product/colourChange.tsx","webpack://retail/./src/app/bridge/components.js","webpack://retail/./src/app/core/config/config.js","webpack://retail/./src/app/core/core.js","webpack://retail/./src/app/core/init/angularData.js","webpack://retail/./src/app/core/init/init.js","webpack://retail/./src/app/core/values/values.js","webpack://retail/./src/app/core/versionService.js","webpack://retail/./src/app/login/auth.api.js","webpack://retail/./src/app/login/login.module.js","webpack://retail/./src/app/main/analysis/analysis.api.js","webpack://retail/./src/app/main/analysis/analysis.module.js","webpack://retail/./src/app/main/analysis/pdfTemplate/pdfTemplate.js","webpack://retail/./src/app/main/analysis/reports/reports.js","webpack://retail/./src/app/main/analysis/userReports/userReport.component.js","webpack://retail/./src/app/main/analysis/userReports/userReports.js","webpack://retail/./src/app/main/base/accounts/account/account.js","webpack://retail/./src/app/main/base/accounts/accounts.api.js","webpack://retail/./src/app/main/base/accounts/accounts.module.js","webpack://retail/./src/app/main/base/articlecollections/articlecollection/articlecollection.js","webpack://retail/./src/app/main/base/articlecollections/articlecollections.api.js","webpack://retail/./src/app/main/base/articlecollections/articlecollections.module.js","webpack://retail/./src/app/main/base/articletypes/articletype/articletype.js","webpack://retail/./src/app/main/base/articletypes/articletypes.api.js","webpack://retail/./src/app/main/base/articletypes/articletypes.module.js","webpack://retail/./src/app/main/base/base.module.js","webpack://retail/./src/app/main/base/countries/countries.api.js","webpack://retail/./src/app/main/base/countries/countries.module.js","webpack://retail/./src/app/main/base/countries/country/country.js","webpack://retail/./src/app/main/base/currencies/currencies.api.js","webpack://retail/./src/app/main/base/currencies/currencies.module.js","webpack://retail/./src/app/main/base/currencies/currency/currency.js","webpack://retail/./src/app/main/base/customergroups/customergroup/customergroup.js","webpack://retail/./src/app/main/base/customergroups/customergroups.api.js","webpack://retail/./src/app/main/base/customergroups/customergroups.module.js","webpack://retail/./src/app/main/base/dashboard/dashboard.api.js","webpack://retail/./src/app/main/base/dashboard/dashboard.module.js","webpack://retail/./src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplate/deliveryplanningtemplate.js","webpack://retail/./src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplates.api.js","webpack://retail/./src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplates.module.js","webpack://retail/./src/app/main/base/deliveryterms/deliveryterm/deliveryterm.js","webpack://retail/./src/app/main/base/deliveryterms/deliveryterms.api.js","webpack://retail/./src/app/main/base/deliveryterms/deliveryterms.module.js","webpack://retail/./src/app/main/base/invoicetypes/invoicetype/invoicetype.js","webpack://retail/./src/app/main/base/invoicetypes/invoicetypes.api.js","webpack://retail/./src/app/main/base/invoicetypes/invoicetypes.module.js","webpack://retail/./src/app/main/base/ordercollections/ordercollection/ordercollection.js","webpack://retail/./src/app/main/base/ordercollections/ordercollections.api.js","webpack://retail/./src/app/main/base/ordercollections/ordercollections.module.js","webpack://retail/./src/app/main/base/ordertypes/ordertype/ordertype.js","webpack://retail/./src/app/main/base/ordertypes/ordertypes.api.js","webpack://retail/./src/app/main/base/ordertypes/ordertypes.module.js","webpack://retail/./src/app/main/base/paymentterms/paymentterm/paymentterm.js","webpack://retail/./src/app/main/base/paymentterms/paymentterms.api.js","webpack://retail/./src/app/main/base/paymentterms/paymentterms.module.js","webpack://retail/./src/app/main/base/paymenttypes/paymenttype/paymenttype.js","webpack://retail/./src/app/main/base/paymenttypes/paymenttypes.api.js","webpack://retail/./src/app/main/base/paymenttypes/paymenttypes.module.js","webpack://retail/./src/app/main/base/returnreasons/returnreason/returnreason.js","webpack://retail/./src/app/main/base/returnreasons/returnreasons.api.js","webpack://retail/./src/app/main/base/returnreasons/returnreasons.module.js","webpack://retail/./src/app/main/base/shippingmethods/shippingmethod/shippingmethod.js","webpack://retail/./src/app/main/base/shippingmethods/shippingmethods.api.js","webpack://retail/./src/app/main/base/shippingmethods/shippingmethods.module.js","webpack://retail/./src/app/main/base/vats/vat/vat.js","webpack://retail/./src/app/main/base/vats/vats.api.js","webpack://retail/./src/app/main/base/vats/vats.module.js","webpack://retail/./src/app/main/budget/budget.module.js","webpack://retail/./src/app/main/budget/budgets.api.js","webpack://retail/./src/app/main/budget/budgets/budgets.js","webpack://retail/./src/app/main/budget/budgets/components/budgetImport.component.js","webpack://retail/./src/app/main/contacts/bulkoperation/bulkoperation.js","webpack://retail/./src/app/main/contacts/companies/companies.api.js","webpack://retail/./src/app/main/contacts/companies/companies.module.js","webpack://retail/./src/app/main/contacts/companies/company/company.js","webpack://retail/./src/app/main/contacts/components/addressform.component.js","webpack://retail/./src/app/main/contacts/components/contactinfoform.component.js","webpack://retail/./src/app/main/contacts/components/newaddressform.component.js","webpack://retail/./src/app/main/contacts/components/newcontactinfoform.component.js","webpack://retail/./src/app/main/contacts/contacts.js","webpack://retail/./src/app/main/contacts/locations/location/location.js","webpack://retail/./src/app/main/contacts/locations/locations.api.js","webpack://retail/./src/app/main/contacts/locations/locations.module.js","webpack://retail/./src/app/main/contacts/roles/role/role.js","webpack://retail/./src/app/main/contacts/roles/roles.api.js","webpack://retail/./src/app/main/contacts/roles/roles.module.js","webpack://retail/./src/app/main/contacts/users/user/user.js","webpack://retail/./src/app/main/contacts/users/users.api.js","webpack://retail/./src/app/main/contacts/users/users.module.js","webpack://retail/./src/app/main/customerinvoice/customerinvoice.api.js","webpack://retail/./src/app/main/customerinvoice/customerinvoice.module.js","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicecontent.cmp.js","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicerows.cmp.js","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicesearch.cmp.js","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicerowsearch.js","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicesearch.js","webpack://retail/./src/app/main/customerorder/customerorder.api.js","webpack://retail/./src/app/main/customerorder/customerorder.module.js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerordercontent.cmp.js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderdeliveries.cmp.js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderpayments.cmp..js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderrefunds.cmp.js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderrows.cmp.js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerordersearch.cmp.js","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordersearch.js","webpack://retail/./src/app/main/discountManagement/component/discountMultiselect.component.js","webpack://retail/./src/app/main/discountManagement/discountManagement.module.js","webpack://retail/./src/app/main/discountManagement/discounts/discount/discount.js","webpack://retail/./src/app/main/discountManagement/discounts/discounts.api.js","webpack://retail/./src/app/main/discountManagement/discounts/discounts.module.js","webpack://retail/./src/app/main/economy/economy.api.js","webpack://retail/./src/app/main/economy/economy.module.js","webpack://retail/./src/app/main/economy/siefileexport/siefileexport.js","webpack://retail/./src/app/main/main.js","webpack://retail/./src/app/main/order/order.module.js","webpack://retail/./src/app/main/order/orderDialogs/orderRowCommentDialog/orderRowCommentDialog.js","webpack://retail/./src/app/main/order/orderService.js","webpack://retail/./src/app/main/order/orderarticles.api.js","webpack://retail/./src/app/main/order/orderdelivery/components/barcodescanninginput.component.js","webpack://retail/./src/app/main/order/orderdelivery/components/orderarticles.component.js","webpack://retail/./src/app/main/order/orderdelivery/components/ordermetadata.component.js","webpack://retail/./src/app/main/order/orderdelivery/components/orderrowsdelivery.component.js","webpack://retail/./src/app/main/order/orderdelivery/components/orderrowsedit.component.js","webpack://retail/./src/app/main/order/orderdelivery/components/orderscannernavigation.component.js","webpack://retail/./src/app/main/order/orderdelivery/components/ordertotals.component.js","webpack://retail/./src/app/main/order/orderdelivery/orderdelivery.js","webpack://retail/./src/app/main/order/orderdeliveryplanning/editDeliveryPlanningDialog/editDeliveryPlanningDialog.js","webpack://retail/./src/app/main/order/orderdeliveryplanning/orderdeliveryplanning.js","webpack://retail/./src/app/main/order/orders.api.js","webpack://retail/./src/app/main/order/ordersearch/components/orderarticledeliveries.component.js","webpack://retail/./src/app/main/order/ordersearch/components/orderarticlerows.component.js","webpack://retail/./src/app/main/order/ordersearch/components/ordercontent.component.js","webpack://retail/./src/app/main/order/ordersearch/components/ordersearchresult.component.js","webpack://retail/./src/app/main/order/ordersearch/ordersearch.js","webpack://retail/./src/app/main/order/purchaseorder/components/articlessummarygrid.component.js","webpack://retail/./src/app/main/order/purchaseorder/components/opentobuygrid.component.js","webpack://retail/./src/app/main/order/purchaseorder/components/purchaseorderdistributiongrid.component.js","webpack://retail/./src/app/main/order/purchaseorder/components/purchaseorderextraoptions.component.js","webpack://retail/./src/app/main/order/purchaseorder/components/singlearticlesummarygrid.component.js","webpack://retail/./src/app/main/order/purchaseorder/purchaseorder.js","webpack://retail/./src/app/main/order/purchaseorderanalysis.api.js","webpack://retail/./src/app/main/order/purchaseorderanalysis/purchaseorderanalysis.js","webpack://retail/./src/app/main/order/purchaseordersearch/purchaseordersearch.js","webpack://retail/./src/app/main/order/reports/intrastatReports.js","webpack://retail/./src/app/main/order/reports/rms2Reports.api.js","webpack://retail/./src/app/main/order/reports/transitReports.js","webpack://retail/./src/app/main/order/rms2Orders.api.js","webpack://retail/./src/app/main/product/articleimport/articleimport.js","webpack://retail/./src/app/main/product/articles/articleAddNewArticleVariantDialog/articleAddNewArticleVariantDialog.js","webpack://retail/./src/app/main/product/articles/articleChangeItemGroupDialog/articleChangeItemGroupDialog.js","webpack://retail/./src/app/main/product/articles/articleChangeVariantDetailDialog/articleChangeVariantDetailDialog.js","webpack://retail/./src/app/main/product/articles/articleLabelsPrintDialog/articleLabelsPrintDialog.js","webpack://retail/./src/app/main/product/articles/articleNewIntrastatDialog/articleNewIntrastatDialog.js","webpack://retail/./src/app/main/product/articles/article/article.js","webpack://retail/./src/app/main/product/articles/article/components/articlevariantsgrid.component.js","webpack://retail/./src/app/main/product/articles/article/components/articlevariantsgridcell.component.js","webpack://retail/./src/app/main/product/articles/articles.js","webpack://retail/./src/app/main/product/articles/pricelistmanagement/pricelistmanagement.js","webpack://retail/./src/app/main/product/articles/pricelistmgmt.js","webpack://retail/./src/app/main/product/brands/brand/brand.js","webpack://retail/./src/app/main/product/brands/brands.api.js","webpack://retail/./src/app/main/product/brands/brands.module.js","webpack://retail/./src/app/main/product/businessareas/businessarea/businessarea.js","webpack://retail/./src/app/main/product/businessareas/businessareas.api.js","webpack://retail/./src/app/main/product/businessareas/businessareas.module.js","webpack://retail/./src/app/main/product/components/articlesearchmultiselect.component.js","webpack://retail/./src/app/main/product/components/itemGroupInline.component.js","webpack://retail/./src/app/main/product/departments/department/department.js","webpack://retail/./src/app/main/product/departments/departments.api.js","webpack://retail/./src/app/main/product/departments/departments.module.js","webpack://retail/./src/app/main/product/importeditor/importeditor.js","webpack://retail/./src/app/main/product/importfileslist/importfileslist.js","webpack://retail/./src/app/main/product/intrastats/intrastat.api.js","webpack://retail/./src/app/main/product/intrastats/intrastat/intrastat.js","webpack://retail/./src/app/main/product/intrastats/intrastats.module.js","webpack://retail/./src/app/main/product/maingroups/maingroup/maingroup.js","webpack://retail/./src/app/main/product/maingroups/maingroups.api.js","webpack://retail/./src/app/main/product/maingroups/maingroups.module.js","webpack://retail/./src/app/main/product/pricelisteditor/components/articleselection.component.js","webpack://retail/./src/app/main/product/pricelisteditor/components/pricelistsgrid.component.js","webpack://retail/./src/app/main/product/pricelisteditor/components/pricerangeinput.component.js","webpack://retail/./src/app/main/product/pricelisteditor/components/volumediscountrule.component.js","webpack://retail/./src/app/main/product/pricelisteditor/pricelisteditor.js","webpack://retail/./src/app/main/product/pricelists/pricelist/pricelist.js","webpack://retail/./src/app/main/product/pricelists/pricelists.api.js","webpack://retail/./src/app/main/product/pricelists/pricelists.module.js","webpack://retail/./src/app/main/product/product.module.js","webpack://retail/./src/app/main/product/productService.js","webpack://retail/./src/app/main/product/productimport/components/filelist.component.js","webpack://retail/./src/app/main/product/productimport/components/mapordate.component.js","webpack://retail/./src/app/main/product/productimport/components/maporselect.component.js","webpack://retail/./src/app/main/product/productimport/productimport.js","webpack://retail/./src/app/main/product/productimporteditor/components/importeditorsummary.component.js","webpack://retail/./src/app/main/product/productimporteditor/components/importeditortextdropdown.component.js","webpack://retail/./src/app/main/product/productimporteditor/components/importeditorvalidationerrors.component.js","webpack://retail/./src/app/main/product/productimporteditor/components/importrowsgrid.component.js","webpack://retail/./src/app/main/product/productimporteditor/productimporteditor.js","webpack://retail/./src/app/main/product/products.api.js","webpack://retail/./src/app/main/product/psychologicalprices/psychologicalprice/psychologicalprice.js","webpack://retail/./src/app/main/product/psychologicalprices/psychologicalprices.api.js","webpack://retail/./src/app/main/product/psychologicalprices/psychologicalprices.module.js","webpack://retail/./src/app/main/product/rms2Products.api.js","webpack://retail/./src/app/main/product/saleschannels/saleschannel/saleschannel.js","webpack://retail/./src/app/main/product/saleschannels/saleschannels.api.js","webpack://retail/./src/app/main/product/saleschannels/saleschannels.module.js","webpack://retail/./src/app/main/product/subcategories/subcategories.api.js","webpack://retail/./src/app/main/product/subcategories/subcategories.module.js","webpack://retail/./src/app/main/product/subcategories/subcategory/subcategory.js","webpack://retail/./src/app/main/product/variantgroups.api.js","webpack://retail/./src/app/main/product/variantgroups/variantgroup/variantgroup.js","webpack://retail/./src/app/main/product/variantgroups/variantgroups.js","webpack://retail/./src/app/main/product/variants.api.js","webpack://retail/./src/app/main/product/variants/variant/variant.js","webpack://retail/./src/app/main/product/variants/variants.js","webpack://retail/./src/app/main/product/volumediscounts/volumediscount/volumediscount.js","webpack://retail/./src/app/main/product/volumediscounts/volumediscounts.api.js","webpack://retail/./src/app/main/product/volumediscounts/volumediscounts.module.js","webpack://retail/./src/app/main/resellerorder/genericcomponents/readonlyorderheader.cmp.js","webpack://retail/./src/app/main/resellerorder/genericcomponents/resellerorderbreadcrumbs.cmp.js","webpack://retail/./src/app/main/resellerorder/genericcomponents/resellerordersearch.cmp.js","webpack://retail/./src/app/main/resellerorder/genericcomponents/resellerreturnorderbreadcrumbs.cmp.js","webpack://retail/./src/app/main/resellerorder/genericcomponents/scannernavigation.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerorder.module.js","webpack://retail/./src/app/main/resellerorder/resellerordercreate/components/createorderheader.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerordercreate/resellerordercreate.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createDeliveryDate.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createVariantDeliveryDateDialog.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createVariantFulfillmentDialog.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createfulfillmentvariants.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/createfulfillment.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/manageorders/manageorders.js","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/manageproducts/manageproducts.js","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/addlineitems.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/articlelist_amount.component.js","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/articlelist_overview.component.js","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/articlelist_quantity.component.js","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/resellerorderproductsearchmultiselect.component.js","webpack://retail/./src/app/main/resellerorder/resellerordermodify/resellerordermodify.js","webpack://retail/./src/app/main/resellerorder/resellerordersearch/resellerordersearch.js","webpack://retail/./src/app/main/resellerorder/resellerorderservice.api.js","webpack://retail/./src/app/main/resellerorder/resellerorderview/components/resellerordercontent.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerorderview/components/resellerorderrows.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerorderview/resellerorderview.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordercreate/components/createreturnorderheader.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordercreate/resellerreturnordercreate.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/addlineitems.cmp.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_amount.component.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_overview.component.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_quantity.component.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/resellerorderproductsearchmultiselect.component.js","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/resellerreturnordermodify.js","webpack://retail/./src/app/main/sales/sales.api.js","webpack://retail/./src/app/main/sales/sales.module.js","webpack://retail/./src/app/main/sales/salestotal/salestotal.js","webpack://retail/./src/app/main/stock/articles/articleStocksHistory/articleStocksHistory.component.js","webpack://retail/./src/app/main/stock/articles/articleStocksHistory/articleStocksHistory.dialog.js","webpack://retail/./src/app/main/stock/articles/article/article.js","webpack://retail/./src/app/main/stock/articles/articles.js","webpack://retail/./src/app/main/stock/articles/modelinventory/modelinventory.js","webpack://retail/./src/app/main/stock/inventorying.api.js","webpack://retail/./src/app/main/stock/pickinglist/stockPickingList.js","webpack://retail/./src/app/main/stock/reports/saleThroughputReports.js","webpack://retail/./src/app/main/stock/reports/soldStockReports.js","webpack://retail/./src/app/main/stock/reports/stockValueReports.js","webpack://retail/./src/app/main/stock/scannerinventorying/inventory/articledetails/articledetails.js","webpack://retail/./src/app/main/stock/scannerinventorying/inventory/inventory.js","webpack://retail/./src/app/main/stock/scannerinventorying/scannerinventorying.js","webpack://retail/./src/app/main/stock/stock.api.js","webpack://retail/./src/app/main/stock/stock.module.js","webpack://retail/./src/app/main/stocklogistics/articletransfer/articletransfer.js","webpack://retail/./src/app/main/stocklogistics/eshopreplenishment/eshopreplenishment.js","webpack://retail/./src/app/main/stocklogistics/masshandlingorderingpoints/masshandlingorderingpoints.js","webpack://retail/./src/app/main/stocklogistics/orderingpoints/autoMonthMultiplierDialog.js","webpack://retail/./src/app/main/stocklogistics/orderingpoints/orderingpoints.js","webpack://retail/./src/app/main/stocklogistics/stocklogistics.api.js","webpack://retail/./src/app/main/stocklogistics/stocklogistics.module.js","webpack://retail/./src/app/main/support/support.api.js","webpack://retail/./src/app/main/support/support.module.js","webpack://retail/./src/app/main/support/supportcases/addvariantdetail/addvariantdetail.js","webpack://retail/./src/app/main/support/supportcases/changebarcode/changebarcode.js","webpack://retail/./src/app/main/support/supportcases/changebarcodes/changebarcodes.js","webpack://retail/./src/app/main/support/supportcases/changeisgroupsalearticle/changeisgroupsalearticle.js","webpack://retail/./src/app/main/support/supportcases/changeitemgroup/changeitemgroup.js","webpack://retail/./src/app/main/support/supportcases/changevariantdetail/changevariantdetail.js","webpack://retail/./src/app/main/support/supportcases/createlocation/createlocation.js","webpack://retail/./src/app/main/support/supportcases/deleteproduct/deleteproduct.js","webpack://retail/./src/app/main/support/supportcases/mergeproducts/mergeproducts.js","webpack://retail/./src/app/main/support/supportcases/missingreceipts/missingreceipts.js","webpack://retail/./src/app/main/support/supportcases/originalbalanceimport/originalbalanceimport.js","webpack://retail/./src/app/main/support/supportcases/supportcases.module.js","webpack://retail/./src/app/main/support/supportcases/triggertochangelog/triggertochangelog.js","webpack://retail/./src/app/main/support/supportcases/updateinventorystatus/updateinventorystatus.js","webpack://retail/./src/app/main/timedOutLoginDialog/timedOutLoginDialog.js","webpack://retail/./src/app/main/timestamp/timeStampsAdministrationDialog/timeStampsAdministrationDialog.js","webpack://retail/./src/app/main/timestamp/timestamp.module.js","webpack://retail/./src/app/main/timestamp/timestamping.api.js","webpack://retail/./src/app/main/timestamp/timestampingusers/timestamping/timestamping.js","webpack://retail/./src/app/main/timestamp/timestampingusers/timestampingusers.js","webpack://retail/./src/app/main/timestamp/userTimeStampingDialog/userTimeStampingDialog.js","webpack://retail/./src/bridge/angularEvents.ts","webpack://retail/./src/bridge/bridgeManager.ts","webpack://retail/./src/bridge/reactEvents.ts","webpack://retail/./src/common/components/components.module.js","webpack://retail/./src/common/components/dashboard/widgets/wgtIntegrationStatus/wgtIntegrationStatus.component.js","webpack://retail/./src/common/components/dashboard/widgets/wgtRefunds/wgtRefunds.component.js","webpack://retail/./src/common/components/dashboard/widgets/wgtSeasonalityCurve/wgtSeasonalityCurve.component.js","webpack://retail/./src/common/components/dashboard/widgets/wgtTopSold/wgtTopSold.component.js","webpack://retail/./src/common/components/genericcomponents/address.component.js","webpack://retail/./src/common/components/genericcomponents/articlelist.component.js","webpack://retail/./src/common/components/genericcomponents/articlesearchsingleselect.component.js","webpack://retail/./src/common/components/genericcomponents/confirmbutton.component.js","webpack://retail/./src/common/components/genericcomponents/contactinfo.component.js","webpack://retail/./src/common/components/genericcomponents/errorlist.component.js","webpack://retail/./src/common/components/genericcomponents/formgrouprow.component.js","webpack://retail/./src/common/components/genericcomponents/formgrouprowother.component.js","webpack://retail/./src/common/components/genericcomponents/genericcomponents.service.js","webpack://retail/./src/common/components/genericcomponents/multiselect.component.js","webpack://retail/./src/common/components/genericcomponents/searchlist/searchlist-contactinfo.component.js","webpack://retail/./src/common/components/genericcomponents/singleselect.component.js","webpack://retail/./src/common/components/genericcomponents/sortingtabledataheader.component.js","webpack://retail/./src/common/components/genericcomponents/variantdetailsearchsingleselect.component.js","webpack://retail/./src/common/components/navigation/navigation.api.js","webpack://retail/./src/common/components/navigation/navigationNode.component.js","webpack://retail/./src/common/decorators/bootstrapModal/bootstrapModal.js","webpack://retail/./src/common/directives/dashboard/dashboard.js","webpack://retail/./src/common/directives/dashboard/widgetBody.js","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettings.js","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsBusinessArea.js","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsHideTooltipLocation.js","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsMultipleLocations.js","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsTimePeriod.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtArticleNegativeBalance/wgtAtricleNegativeBalance.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtCalHeatmap/wgtCalHeatmap.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtChart/wgtChart.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoLatestTransaction/wgtInfoLatestTransaction.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoQuickSaleFact/wgtInfoQuickSaleFact.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoSaleBusinessArea/wgtInfoSaleBusinessArea.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoSaleToLastYear/wgtInfoSaleToLastYear.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoTodayOrder/wgtInfoTodayOrder.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoUndeliveredInternalOrder/wgtInfoUndeliveredInternalOrder.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoYesterdaySaleBrv/wgtInfoYesterdaySaleBrv.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoYesterdaySale/wgtInfoYesterdaySale.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtOrderAutoOrders/wgtOrderAutoOrders.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtSaleTop/wgtSaleTop.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtSaleTwoWeek/wgtSaleTwoWeek.js","webpack://retail/./src/common/directives/dashboard/widgets/wgtUndeliveredOrders/wgtUndeliveredOrders.js","webpack://retail/./src/common/directives/directives.js","webpack://retail/./src/common/directives/editableInputs/editableDecimal/editableDecimal.js","webpack://retail/./src/common/directives/formInput/enterAsTab.js","webpack://retail/./src/common/directives/loadSpinner/loadSpinner.js","webpack://retail/./src/common/directives/percentInput/percentInput.js","webpack://retail/./src/common/directives/restrictAccess/restrictAccess.js","webpack://retail/./src/common/directives/smartDecimal/smartDecimal.js","webpack://retail/./src/common/directives/ui-nav.js","webpack://retail/./src/common/directives/ui-toggleclass.js","webpack://retail/./src/common/filters/filters.js","webpack://retail/./src/common/filters/multiPartFilter.js","webpack://retail/./src/common/filters/propsFilter.js","webpack://retail/./src/common/resources/filedataimport.api.js","webpack://retail/./src/common/resources/filedataimport.v2.api.js","webpack://retail/./src/common/resources/fileoperations.api.js","webpack://retail/./src/common/resources/resources.js","webpack://retail/./src/common/services/authService/authservice.js","webpack://retail/./src/common/services/barcodeService/barcodeService.js","webpack://retail/./src/common/services/dialogs/InvoiceConfirmationDialog/InvoiceConfirmationDialog.js","webpack://retail/./src/common/services/dialogs/colourChangeDialog/colourChangeDialog.js","webpack://retail/./src/common/services/dialogs/confirmationDialog/confirmationDialog.js","webpack://retail/./src/common/services/dialogs/deliveryConfirmationDialog/deliveryConfirmationDialog.js","webpack://retail/./src/common/services/dialogs/deliveryDocumentDownloadDialog/deliveryDocumentDownloadDialog.js","webpack://retail/./src/common/services/dialogs/dialogs.js","webpack://retail/./src/common/services/dialogs/importFinalizationDialog/importFinalizationDialog.js","webpack://retail/./src/common/services/dialogs/informationDialog/informationDialog.js","webpack://retail/./src/common/services/dialogs/inventoryCorrectionsDialog/inventoryCorrectionsDialog.js","webpack://retail/./src/common/services/dialogs/labelPrintingDialog/labelPrintingDialog.js","webpack://retail/./src/common/services/dialogs/loginDialog/loginDialog.js","webpack://retail/./src/common/services/dialogs/newInventoryDialog/newInventoryDialog.js","webpack://retail/./src/common/services/dialogs/printInventoryReportDialog/printInventoryReportDialog.js","webpack://retail/./src/common/services/dialogs/printInvoiceDialog/printInvoiceDialog.js","webpack://retail/./src/common/services/dialogs/printLanguageConfirmationDialog/printLanguageConfirmationDialog.js","webpack://retail/./src/common/services/dialogs/printPickingListDialog/printPickingListDialog.js","webpack://retail/./src/common/services/dialogs/purchaseOrderAnalysisFilterDialog/purchaseOrderAnalysisFilterDialog.js","webpack://retail/./src/common/services/dialogs/resetLogin/resetLogin.js","webpack://retail/./src/common/services/dialogs/salesTotalFilterDialog/salesTotalFilterDialog.js","webpack://retail/./src/common/services/dialogs/setFieldConfirmationDialog/setFieldConfirmationDialog.js","webpack://retail/./src/common/services/dialogs/updateAddressDialog/updateAddressDialog.js","webpack://retail/./src/common/services/dialogs/updateOrderNoteDialog/updateOrderNoteDialog.js","webpack://retail/./src/common/services/featureSwitchService/featureSwitchService.js","webpack://retail/./src/common/services/helper/flexGridHelper.js","webpack://retail/./src/common/services/helper/helper.js","webpack://retail/./src/common/services/helper/pricelistsHelper.js","webpack://retail/./src/common/services/mock/mockImportFileRowService.js","webpack://retail/./src/common/services/services.js","webpack://retail/./src/common/services/toasterService/toasterservice.js","webpack://retail/./src/react/Root.tsx","webpack://retail/./src/index.js","webpack://retail/./src/version.js","webpack://retail/./src/app/app.tpl.html","webpack://retail/./src/app/main/analysis/analysis.tpl.html","webpack://retail/./src/app/main/analysis/pdfTemplate/pdfTemplate.tpl.html","webpack://retail/./src/app/main/analysis/reports/reports.tpl.html","webpack://retail/./src/app/main/analysis/userReports/userReport.component.tpl.html","webpack://retail/./src/app/main/analysis/userReports/userReports.tpl.html","webpack://retail/./src/app/main/base/accounts/account/account.tpl.html","webpack://retail/./src/app/main/base/accounts/accounts.tpl.html","webpack://retail/./src/app/main/base/articlecollections/articlecollection/articlecollection.tpl.html","webpack://retail/./src/app/main/base/articlecollections/articlecollections.tpl.html","webpack://retail/./src/app/main/base/articletypes/articletype/articletype.tpl.html","webpack://retail/./src/app/main/base/articletypes/articletypes.tpl.html","webpack://retail/./src/app/main/base/base.tpl.html","webpack://retail/./src/app/main/base/countries/countries.tpl.html","webpack://retail/./src/app/main/base/countries/country/country.tpl.html","webpack://retail/./src/app/main/base/currencies/currencies.tpl.html","webpack://retail/./src/app/main/base/currencies/currency/currency.tpl.html","webpack://retail/./src/app/main/base/customergroups/customergroup/customergroup.tpl.html","webpack://retail/./src/app/main/base/customergroups/customergroups.tpl.html","webpack://retail/./src/app/main/base/dashboard/dashboard.tpl.html","webpack://retail/./src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplate/deliveryplanningtemplate.tpl.html","webpack://retail/./src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplates.tpl.html","webpack://retail/./src/app/main/base/deliveryterms/deliveryterm/deliveryterm.tpl.html","webpack://retail/./src/app/main/base/deliveryterms/deliveryterms.tpl.html","webpack://retail/./src/app/main/base/invoicetypes/invoicetype/invoicetype.tpl.html","webpack://retail/./src/app/main/base/invoicetypes/invoicetypes.tpl.html","webpack://retail/./src/app/main/base/ordercollections/ordercollection/ordercollection.tpl.html","webpack://retail/./src/app/main/base/ordercollections/ordercollections.tpl.html","webpack://retail/./src/app/main/base/ordertypes/ordertype/ordertype.tpl.html","webpack://retail/./src/app/main/base/ordertypes/ordertypes.tpl.html","webpack://retail/./src/app/main/base/paymentterms/paymentterm/paymentterm.tpl.html","webpack://retail/./src/app/main/base/paymentterms/paymentterms.tpl.html","webpack://retail/./src/app/main/base/paymenttypes/paymenttype/paymenttype.tpl.html","webpack://retail/./src/app/main/base/paymenttypes/paymenttypes.tpl.html","webpack://retail/./src/app/main/base/returnreasons/returnreason/returnreason.tpl.html","webpack://retail/./src/app/main/base/returnreasons/returnreasons.tpl.html","webpack://retail/./src/app/main/base/shippingmethods/shippingmethod/shippingmethod.tpl.html","webpack://retail/./src/app/main/base/shippingmethods/shippingmethods.tpl.html","webpack://retail/./src/app/main/base/vats/vat/vat.tpl.html","webpack://retail/./src/app/main/base/vats/vats.tpl.html","webpack://retail/./src/app/main/budget/budget.tpl.html","webpack://retail/./src/app/main/budget/budgets/budgets.tpl.html","webpack://retail/./src/app/main/budget/budgets/components/budgetImport.component.tpl.html","webpack://retail/./src/app/main/contacts/bulkoperation/bulkoperation.tpl.html","webpack://retail/./src/app/main/contacts/companies/companies.tpl.html","webpack://retail/./src/app/main/contacts/companies/company/company.tpl.html","webpack://retail/./src/app/main/contacts/components/addressform.component.tpl.html","webpack://retail/./src/app/main/contacts/components/contactinfoform.component.tpl.html","webpack://retail/./src/app/main/contacts/components/newaddressform.component.tpl.html","webpack://retail/./src/app/main/contacts/components/newcontactinfoform.component.tpl.html","webpack://retail/./src/app/main/contacts/contacts.tpl.html","webpack://retail/./src/app/main/contacts/locations/location/location.tpl.html","webpack://retail/./src/app/main/contacts/locations/locations.tpl.html","webpack://retail/./src/app/main/contacts/roles/role/role.tpl.html","webpack://retail/./src/app/main/contacts/roles/roles.tpl.html","webpack://retail/./src/app/main/contacts/users/user/user.tpl.html","webpack://retail/./src/app/main/contacts/users/users.tpl.html","webpack://retail/./src/app/main/customerinvoice/customerinvoice.tpl.html","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicecontent.cmp.tpl.html","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicerows.cmp.tpl.html","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicesearch.cmp.tpl.html","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicerowsearch.tpl.html","webpack://retail/./src/app/main/customerinvoice/customerinvoicesearch/customerinvoicesearch.tpl.html","webpack://retail/./src/app/main/customerorder/customerorder.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerordercontent.cmp.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderdeliveries.cmp.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderpayments.cmp.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderrefunds.cmp.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerorderrows.cmp.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordercontent/customerordersearch.cmp.tpl.html","webpack://retail/./src/app/main/customerorder/customerordersearch/customerordersearch.tpl.html","webpack://retail/./src/app/main/discountManagement/component/discountMultiselect.component.tpl.html","webpack://retail/./src/app/main/discountManagement/discountManagement.tpl.html","webpack://retail/./src/app/main/discountManagement/discounts/discount/discount.tpl.html","webpack://retail/./src/app/main/discountManagement/discounts/discounts.tpl.html","webpack://retail/./src/app/main/economy/siefileexport/siefileexport.tpl.html","webpack://retail/./src/app/main/main-header.tpl.html","webpack://retail/./src/app/main/main-menu.tpl.html","webpack://retail/./src/app/main/main.tpl.html","webpack://retail/./src/app/main/order/order.tpl.html","webpack://retail/./src/app/main/order/orderDialogs/orderRowCommentDialog/orderRowCommentDialog.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/barcodescanninginput.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/orderarticles.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/ordermetadata.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/orderrowsdelivery.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/orderrowsedit.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/orderscannernavigation.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/components/ordertotals.component.tpl.html","webpack://retail/./src/app/main/order/orderdelivery/orderdelivery.tpl.html","webpack://retail/./src/app/main/order/orderdeliveryplanning/editDeliveryPlanningDialog/editDeliveryPlanningDialog.tpl.html","webpack://retail/./src/app/main/order/orderdeliveryplanning/orderdeliveryplanning.tpl.html","webpack://retail/./src/app/main/order/ordersearch/components/orderarticledeliveries.component.tpl.html","webpack://retail/./src/app/main/order/ordersearch/components/orderarticlerows.component.tpl.html","webpack://retail/./src/app/main/order/ordersearch/components/ordercontent.component.tpl.html","webpack://retail/./src/app/main/order/ordersearch/components/ordersearchresult.component.tpl.html","webpack://retail/./src/app/main/order/ordersearch/ordersearch.tpl.html","webpack://retail/./src/app/main/order/purchaseorder/components/articlessummarygrid.component.tpl.html","webpack://retail/./src/app/main/order/purchaseorder/components/opentobuygrid.component.tpl.html","webpack://retail/./src/app/main/order/purchaseorder/components/purchaseorderdistributiongrid.component.tpl.html","webpack://retail/./src/app/main/order/purchaseorder/components/purchaseorderextraoptions.component.tpl.html","webpack://retail/./src/app/main/order/purchaseorder/components/singlearticlesummarygrid.component.tpl.html","webpack://retail/./src/app/main/order/purchaseorder/purchaseorder.tpl.html","webpack://retail/./src/app/main/order/purchaseorderanalysis/purchaseorderanalysis.tpl.html","webpack://retail/./src/app/main/order/purchaseordersearch/purchaseordersearch.tpl.html","webpack://retail/./src/app/main/order/reports/intrastatReports.tpl.html","webpack://retail/./src/app/main/order/reports/transitReports.tpl.html","webpack://retail/./src/app/main/product/articleimport/articleimport.tpl.html","webpack://retail/./src/app/main/product/articles/articleAddNewArticleVariantDialog/articleAddNewArticleVariantDialog.tpl.html","webpack://retail/./src/app/main/product/articles/articleChangeItemGroupDialog/articleChangeItemGroupDialog.tpl.html","webpack://retail/./src/app/main/product/articles/articleChangeVariantDetailDialog/articleChangeVariantDetailDialog.tpl.html","webpack://retail/./src/app/main/product/articles/articleLabelsPrintDialog/articleLabelsPrintDialog.tpl.html","webpack://retail/./src/app/main/product/articles/articleNewIntrastatDialog/articleNewIntrastatDialog.tpl.html","webpack://retail/./src/app/main/product/articles/article/article.tpl.html","webpack://retail/./src/app/main/product/articles/article/components/articlevariantsgrid.component.tpl.html","webpack://retail/./src/app/main/product/articles/article/components/articlevariantsgridcell.component.tpl.html","webpack://retail/./src/app/main/product/articles/articles.tpl.html","webpack://retail/./src/app/main/product/articles/pricelistmanagement/pricelistmanagement.tpl.html","webpack://retail/./src/app/main/product/articles/pricelistmgmt.tpl.html","webpack://retail/./src/app/main/product/brands/brand/brand.tpl.html","webpack://retail/./src/app/main/product/brands/brands.tpl.html","webpack://retail/./src/app/main/product/businessareas/businessarea/businessarea.tpl.html","webpack://retail/./src/app/main/product/businessareas/businessareas.tpl.html","webpack://retail/./src/app/main/product/components/articlesearchmultiselect.component.tpl.html","webpack://retail/./src/app/main/product/components/itemGroupInline.component.tpl.html","webpack://retail/./src/app/main/product/departments/department/department.tpl.html","webpack://retail/./src/app/main/product/departments/departments.tpl.html","webpack://retail/./src/app/main/product/importeditor/importeditor.tpl.html","webpack://retail/./src/app/main/product/importfileslist/importfileslist.tpl.html","webpack://retail/./src/app/main/product/intrastats/intrastat/intrastat.tpl.html","webpack://retail/./src/app/main/product/intrastats/intrastats.tpl.html","webpack://retail/./src/app/main/product/maingroups/maingroup/maingroup.tpl.html","webpack://retail/./src/app/main/product/maingroups/maingroups.tpl.html","webpack://retail/./src/app/main/product/pricelisteditor/components/articleselection.component.tpl.html","webpack://retail/./src/app/main/product/pricelisteditor/components/pricelistsgrid.component.tpl.html","webpack://retail/./src/app/main/product/pricelisteditor/components/pricerangeinput.component.tpl.html","webpack://retail/./src/app/main/product/pricelisteditor/components/volumediscountrule.component.tpl.html","webpack://retail/./src/app/main/product/pricelisteditor/pricelisteditor.tpl.html","webpack://retail/./src/app/main/product/pricelists/pricelist/pricelist.tpl.html","webpack://retail/./src/app/main/product/pricelists/pricelists.tpl.html","webpack://retail/./src/app/main/product/product.tpl.html","webpack://retail/./src/app/main/product/productimport/components/filelist.component.tpl.html","webpack://retail/./src/app/main/product/productimport/components/mapordate.component.tpl.html","webpack://retail/./src/app/main/product/productimport/components/maporselect.component.tpl.html","webpack://retail/./src/app/main/product/productimport/productimport.tpl.html","webpack://retail/./src/app/main/product/productimporteditor/components/importeditorsummary.component.tpl.html","webpack://retail/./src/app/main/product/productimporteditor/components/importeditortextdropdown.component.tpl.html","webpack://retail/./src/app/main/product/productimporteditor/components/importeditorvalidationerrors.component.tpl.html","webpack://retail/./src/app/main/product/productimporteditor/components/importrowsgrid.component.tpl.html","webpack://retail/./src/app/main/product/productimporteditor/productimporteditor.tpl.html","webpack://retail/./src/app/main/product/psychologicalprices/psychologicalprice/psychologicalprice.tpl.html","webpack://retail/./src/app/main/product/psychologicalprices/psychologicalprices.tpl.html","webpack://retail/./src/app/main/product/saleschannels/saleschannel/saleschannel.tpl.html","webpack://retail/./src/app/main/product/saleschannels/saleschannels.tpl.html","webpack://retail/./src/app/main/product/subcategories/subcategories.tpl.html","webpack://retail/./src/app/main/product/subcategories/subcategory/subcategory.tpl.html","webpack://retail/./src/app/main/product/variantgroups/variantgroup/variantgroup.tpl.html","webpack://retail/./src/app/main/product/variantgroups/variantgroups.tpl.html","webpack://retail/./src/app/main/product/variants/variant/variant.tpl.html","webpack://retail/./src/app/main/product/variants/variants.tpl.html","webpack://retail/./src/app/main/product/volumediscounts/volumediscount/volumediscount.tpl.html","webpack://retail/./src/app/main/product/volumediscounts/volumediscounts.tpl.html","webpack://retail/./src/app/main/resellerorder/genericcomponents/readonlyorderheader.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/genericcomponents/resellerorderbreadcrumbs.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/genericcomponents/resellerordersearch.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/genericcomponents/resellerreturnorderbreadcrumbs.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/genericcomponents/scannernavigation.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorder.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordercreate/components/createorderheader.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordercreate/resellerordercreate.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createDeliveryDate.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createVariantDeliveryDateDialog.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createVariantFulfillmentDialog.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createfulfillmentvariants.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/createfulfillment.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/manageorders/manageorders.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderfulfillment/manageproducts/manageproducts.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/addlineitems.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/articlelist_amount.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/articlelist_overview.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/articlelist_quantity.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordermodify/components/resellerorderproductsearchmultiselect.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordermodify/resellerordermodify.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerordersearch/resellerordersearch.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderview/components/resellerordercontent.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderview/components/resellerorderrows.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerorderview/resellerorderview.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordercreate/components/createreturnorderheader.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordercreate/resellerreturnordercreate.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/addlineitems.cmp.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_amount.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_overview.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_quantity.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/components/resellerorderproductsearchmultiselect.component.tpl.html","webpack://retail/./src/app/main/resellerorder/resellerreturnordermodify/resellerreturnordermodify.tpl.html","webpack://retail/./src/app/main/sales/sales.tpl.html","webpack://retail/./src/app/main/sales/salestotal/salestotal.tpl.html","webpack://retail/./src/app/main/stock/articles/articleStocksHistory/articleStocksHistory.component.tpl.html","webpack://retail/./src/app/main/stock/articles/articleStocksHistory/articleStocksHistory.dialog.tpl.html","webpack://retail/./src/app/main/stock/articles/article/article.tpl.html","webpack://retail/./src/app/main/stock/articles/articles.tpl.html","webpack://retail/./src/app/main/stock/articles/modelinventory/modelinventory.tpl.html","webpack://retail/./src/app/main/stock/pickinglist/stockPickingList.tpl.html","webpack://retail/./src/app/main/stock/reports/saleThroughputReports.tpl.html","webpack://retail/./src/app/main/stock/reports/soldStockReports.tpl.html","webpack://retail/./src/app/main/stock/reports/stockValueReports.tpl.html","webpack://retail/./src/app/main/stock/scannerinventorying/inventory/articledetails/articledetails.tpl.html","webpack://retail/./src/app/main/stock/scannerinventorying/inventory/inventory.tpl.html","webpack://retail/./src/app/main/stock/scannerinventorying/scannerinventorying.tpl.html","webpack://retail/./src/app/main/stock/stock.tpl.html","webpack://retail/./src/app/main/stocklogistics/articletransfer/articletransfer.tpl.html","webpack://retail/./src/app/main/stocklogistics/eshopreplenishment/eshopreplenishment.tpl.html","webpack://retail/./src/app/main/stocklogistics/masshandlingorderingpoints/masshandlingorderingpoints.tpl.html","webpack://retail/./src/app/main/stocklogistics/orderingpoints/autoMonthMultiplierDialog.tpl.html","webpack://retail/./src/app/main/stocklogistics/orderingpoints/orderingpoints.tpl.html","webpack://retail/./src/app/main/stocklogistics/stocklogistics.tpl.html","webpack://retail/./src/app/main/support/support.tpl.html","webpack://retail/./src/app/main/support/supportcases/addvariantdetail/addvariantdetail.tpl.html","webpack://retail/./src/app/main/support/supportcases/changebarcode/changebarcode.tpl.html","webpack://retail/./src/app/main/support/supportcases/changebarcodes/changebarcodes.tpl.html","webpack://retail/./src/app/main/support/supportcases/changeisgroupsalearticle/changeisgroupsalearticle.tpl.html","webpack://retail/./src/app/main/support/supportcases/changeitemgroup/changeitemgroup.tpl.html","webpack://retail/./src/app/main/support/supportcases/changevariantdetail/changevariantdetail.tpl.html","webpack://retail/./src/app/main/support/supportcases/createlocation/createlocation.tpl.html","webpack://retail/./src/app/main/support/supportcases/deleteproduct/deleteproduct.tpl.html","webpack://retail/./src/app/main/support/supportcases/mergeproducts/mergeproducts.tpl.html","webpack://retail/./src/app/main/support/supportcases/missingreceipts/missingreceipts.tpl.html","webpack://retail/./src/app/main/support/supportcases/originalbalanceimport/originalbalanceimport.tpl.html","webpack://retail/./src/app/main/support/supportcases/supportcases.tpl.html","webpack://retail/./src/app/main/support/supportcases/triggertochangelog/triggertochangelog.tpl.html","webpack://retail/./src/app/main/support/supportcases/updateinventorystatus/updateinventorystatus.tpl.html","webpack://retail/./src/app/main/timedOutLoginDialog/timedOutLoginDialog.tpl.html","webpack://retail/./src/app/main/timestamp/timeStampsAdministrationDialog/timeStampsAdministrationDialog.tpl.html","webpack://retail/./src/app/main/timestamp/timestampingusers/timestamping/timestamping.tpl.html","webpack://retail/./src/app/main/timestamp/timestampingusers/timestampingusers.tpl.html","webpack://retail/./src/app/main/timestamp/userTimeStampingDialog/userTimeStampingDialog.tpl.html","webpack://retail/./src/common/components/dashboard/widgets/wgtIntegrationStatus/wgtIntegrationStatus.component.tpl.html","webpack://retail/./src/common/components/dashboard/widgets/wgtRefunds/wgtRefunds.component.tpl.html","webpack://retail/./src/common/components/dashboard/widgets/wgtSeasonalityCurve/wgtSeasonalityCurve.component.tpl.html","webpack://retail/./src/common/components/dashboard/widgets/wgtTopSold/wgtTopSold.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/address.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/articlelist.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/articlesearchsingleselect.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/confirmbutton.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/contactinfo.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/errorlist.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/formgrouprow.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/formgrouprowother.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/multiselect.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/searchlist/searchlist-contactinfo.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/singleselect.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/sortingtabledataheader.component.tpl.html","webpack://retail/./src/common/components/genericcomponents/variantdetailsearchsingleselect.component.tpl.html","webpack://retail/./src/common/components/navigation/navigationNode.component.tpl.html","webpack://retail/./src/common/directives/dashboard/dashboard.tpl.html","webpack://retail/./src/common/directives/dashboard/widgetBody.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettings.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsBusinessArea.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsHideTooltipLocation.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsMultipleLocations.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsTimePeriod.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtArticleNegativeBalance/wgtArticleNegativeBalance.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtCalHeatmap/wgtCalHeatmap.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtChart/wgtChart.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoLatestTransaction/wgtInfoLatestTransaction.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoQuickSaleFact/wgtInfoQuickSaleFact.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoSaleBusinessArea/wgtInfoSaleBusinessArea.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoSaleToLastYear/wgtInfoSaleToLastYear.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoTodayOrder/wgtInfoTodayOrder.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoUndeliveredInternalOrder/wgtInfoUndeliveredInternalOrder.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoYesterdaySaleBrv/wgtInfoYesterdaySaleBrv.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtInfoYesterdaySale/wgtInfoYesterdaySale.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtOrderAutoOrders/wgtOrderAutoOrders.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtSaleTop/wgtSaleTop.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtSaleTwoWeek/wgtSaleTwoWeek.tpl.html","webpack://retail/./src/common/directives/dashboard/widgets/wgtUndeliveredOrders/wgtUndeliveredOrders.tpl.html","webpack://retail/./src/common/directives/loadSpinner/loadSpinner.tpl.html","webpack://retail/./src/common/services/dialogs/InvoiceConfirmationDialog/InvoiceConfirmationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/colourChangeDialog/colourChangeDialog.tpl.html","webpack://retail/./src/common/services/dialogs/confirmationDialog/confirmationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/deliveryConfirmationDialog/deliveryConfirmationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/deliveryDocumentDownloadDialog/deliveryDocumentDownloadDialog.tpl.html","webpack://retail/./src/common/services/dialogs/importFinalizationDialog/importFinalizationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/informationDialog/informationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/inventoryCorrectionsDialog/inventoryCorrectionsDialog.tpl.html","webpack://retail/./src/common/services/dialogs/labelPrintingDialog/labelPrintingDialog.tpl.html","webpack://retail/./src/common/services/dialogs/loginDialog/loginDialog.tpl.html","webpack://retail/./src/common/services/dialogs/newInventoryDialog/newInventoryDialog.tpl.html","webpack://retail/./src/common/services/dialogs/printInventoryReportDialog/printInventoryReportDialog.tpl.html","webpack://retail/./src/common/services/dialogs/printInvoiceDialog/printInvoiceDialog.tpl.html","webpack://retail/./src/common/services/dialogs/printLanguageConfirmationDialog/printLanguageConfirmationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/printPickingListDialog/printPickingListDialog.tpl.html","webpack://retail/./src/common/services/dialogs/purchaseOrderAnalysisFilterDialog/purchaseOrderAnalysisFilterDialog.tpl.html","webpack://retail/./src/common/services/dialogs/resetLogin/resetLogin.tpl.html","webpack://retail/./src/common/services/dialogs/salesTotalFilterDialog/salesTotalFilterDialog.tpl.html","webpack://retail/./src/common/services/dialogs/setFieldConfirmationDialog/setFieldConfirmationDialog.tpl.html","webpack://retail/./src/common/services/dialogs/updateAddressDialog/updateAddressDialog.tpl.html","webpack://retail/./src/common/services/dialogs/updateOrderNoteDialog/updateOrderNoteDialog.tpl.html","webpack://retail/./src/less/app.less?252a","webpack://retail/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://retail/./src/ sync ^(","webpack://retail/.././ sync ^.*\\.tpl\\.html","webpack://retail/external var \"angular\"","webpack://retail/ignored|C:\\projects\\erp-99l68\\Front\\node_modules\\cheerio\\node_modules\\htmlparser2\\lib|readable-stream","webpack://retail/ignored|C:\\projects\\erp-99l68\\Front\\node_modules\\xlsx|buffer"],"sourcesContent":["/**\n * angular-spinner version 0.8.1\n * License: MIT.\n * Copyright (C) 2013, 2014, 2015, 2016, Uri Shaked and contributors.\n */\n\n'format amd';\n\n(function (root) {\n\t'use strict';\n\n\tfunction factory(angular, Spinner) {\n\n\t\treturn angular\n\t\t\t.module('angularSpinner', [])\n\n\t\t\t.constant('SpinJSSpinner', Spinner)\n\n\t\t\t.provider('usSpinnerConfig', function () {\n\t\t\t\tvar _config = {}, _themes = {};\n\n\t\t\t\treturn {\n\t\t\t\t\tsetDefaults: function (config) {\n\t\t\t\t\t\t_config = config || _config;\n\t\t\t\t\t},\n\t\t\t\t\tsetTheme: function(name, config) {\n\t\t\t\t\t\t_themes[name] = config;\n\t\t\t\t\t},\n\t\t\t\t\t$get: function () {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tconfig: _config,\n\t\t\t\t\t\t\tthemes: _themes\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t})\n\n\t\t\t.factory('usSpinnerService', ['$rootScope', function ($rootScope) {\n\t\t\t\tvar config = {};\n\n\t\t\t\tconfig.spin = function (key) {\n\t\t\t\t\t$rootScope.$broadcast('us-spinner:spin', key);\n\t\t\t\t};\n\n\t\t\t\tconfig.stop = function (key) {\n\t\t\t\t\t$rootScope.$broadcast('us-spinner:stop', key);\n\t\t\t\t};\n\n\t\t\t\treturn config;\n\t\t\t}])\n\n\t\t\t.directive('usSpinner', ['SpinJSSpinner', 'usSpinnerConfig', function (SpinJSSpinner, usSpinnerConfig) {\n\t\t\t\treturn {\n\t\t\t\t\tscope: true,\n\t\t\t\t\tlink: function (scope, element, attr) {\n\t\t\t\t\t\tscope.spinner = null;\n\n\t\t\t\t\t\tscope.key = angular.isDefined(attr.spinnerKey) ? attr.spinnerKey : false;\n\n\t\t\t\t\t\tscope.startActive = angular.isDefined(attr.spinnerStartActive) ?\n\t\t\t\t\t\t\tscope.$eval(attr.spinnerStartActive) : scope.key ?\n\t\t\t\t\t\t\tfalse : true;\n\n\t\t\t\t\t\tfunction stopSpinner() {\n\t\t\t\t\t\t\tif (scope.spinner) {\n\t\t\t\t\t\t\t\tscope.spinner.stop();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tscope.spin = function () {\n\t\t\t\t\t\t\tif (scope.spinner) {\n\t\t\t\t\t\t\t\tscope.spinner.spin(element[0]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tscope.stop = function () {\n\t\t\t\t\t\t\tscope.startActive = false;\n\t\t\t\t\t\t\tstopSpinner();\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tscope.$watch(attr.usSpinner, function (options) {\n\t\t\t\t\t\t\tstopSpinner();\n\n\t\t\t\t\t\t\t// order of precedence: element options, theme, defaults.\n\t\t\t\t\t\t\toptions = angular.extend(\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\tusSpinnerConfig.config,\n\t\t\t\t\t\t\t\tusSpinnerConfig.themes[attr.spinnerTheme],\n\t\t\t\t\t\t\t\toptions);\n\n\t\t\t\t\t\t\tscope.spinner = new SpinJSSpinner(options);\n\t\t\t\t\t\t\tif ((!scope.key || scope.startActive) && !attr.spinnerOn) {\n\t\t\t\t\t\t\t\tscope.spinner.spin(element[0]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, true);\n\n\t\t\t\t\t\tif (attr.spinnerOn) {\n\t\t\t\t\t\t\tscope.$watch(attr.spinnerOn, function (spin) {\n\t\t\t\t\t\t\t\tif (spin) {\n\t\t\t\t\t\t\t\t\tscope.spin();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tscope.stop();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tscope.$on('us-spinner:spin', function (event, key) {\n\t\t\t\t\t\t\tif (key === scope.key) {\n\t\t\t\t\t\t\t\tscope.spin();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tscope.$on('us-spinner:stop', function (event, key) {\n\t\t\t\t\t\t\tif (key === scope.key) {\n\t\t\t\t\t\t\t\tscope.stop();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tscope.$on('$destroy', function () {\n\t\t\t\t\t\t\tscope.stop();\n\t\t\t\t\t\t\tscope.spinner = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}]);\n\t}\n\n if ((typeof module === 'object') && module.exports) {\n\t\t/* CommonJS module */\n\t\tmodule.exports = factory(require('angular'), require('spin.js'));\n\t} else if (typeof define === 'function' && define.amd) {\n\t\t/* AMD module */\n\t\tdefine(['angular', 'spin'], factory);\n\t} else {\n\t\t/* Browser global */\n\t\tfactory(root.angular, root.Spinner);\n\t}\n}(this));\n","// @ngInject\nfunction stateConfig($stateProvider, $urlRouterProvider) {\n $urlRouterProvider.when('', '/');\n $urlRouterProvider.when('/', rootRedirect);\n $stateProvider.state('app', {\n abstract: true,\n url: '',\n templateUrl: 'app.tpl.html',\n data: { pageTitle: 'CleverApps'},\n resolve: {\n currentUser: userResolve\n }\n });\n}\n\n// @ngInject\nfunction userResolve(AuthService) {\n return AuthService.getUser();\n}\n\n// @ngInject\nfunction rootRedirect($state,AuthService) {\n if (!AuthService.hasToken()) {\n $state.transitionTo('login');\n return;\n }\n\n AuthService.getUser().then(function() {\n $state.transitionTo('main.dashboard');\n },function() {\n $state.transitionTo('login');\n });\n}\n\nangular\n .module('app', ['app.core','app.main','login', 'app.bridgeComponents'])\n .config(stateConfig);\n","import type {\n IAugmentedJQuery,\n IComponentOptions,\n IController,\n IOnChangesObject,\n} from 'angular';\nimport React from 'react';\nimport {\n addElement,\n ReactElementWithContainer,\n removeElement,\n} from './bridgeManager';\n\nexport function bridgeConverter<TProps extends Record<any, any>>(\n reactComponent: React.ComponentType<TProps>,\n propNames: (keyof TProps)[],\n): IComponentOptions {\n const bindings = Object.fromEntries(propNames.map((prop) => [prop, '<']));\n\n return {\n bindings,\n controller: [\n '$element',\n class implements IController {\n private container?: HTMLElement;\n private reactElement?: ReactElementWithContainer;\n private reactElementRef?: React.RefObject<ComponentWrapperRef> =\n React.createRef();\n private bindings?: TProps;\n\n constructor($element: IAugmentedJQuery) {\n this.container = $element[0];\n }\n\n public $onChanges(onChangesObj: IOnChangesObject) {\n const currentBindings = (this.bindings ?? {}) as TProps;\n\n const newBindings = Object.fromEntries(\n Object.entries(onChangesObj).map(\n ([bindingName, { currentValue }]) => [bindingName, currentValue],\n ),\n ) as Partial<TProps>;\n\n this.bindings = {\n ...currentBindings,\n ...newBindings,\n };\n\n this.updateProps();\n }\n\n public $onInit() {\n this.reactElement = {\n container: this.container!,\n element: React.createElement(ComponentWrapper, {\n component: reactComponent,\n initialProps: this.bindings!,\n ref: this.reactElementRef,\n }),\n };\n addElement(this.reactElement);\n }\n\n public $onDestroy() {\n if (this.reactElement) {\n removeElement(this.reactElement);\n }\n this.reactElement = undefined;\n this.reactElementRef = undefined;\n this.container = undefined;\n }\n\n private updateProps() {\n this.reactElementRef?.current?.updateProps(this.bindings);\n }\n },\n ],\n };\n}\n\ninterface ComponentWrapperRef {\n updateProps(newProps: any): void;\n}\n\ninterface ComponentWrapperProps {\n component: React.ComponentType<any>;\n initialProps: Record<any, any>;\n}\n\nconst ComponentWrapper = React.forwardRef(function ComponentWrapper(\n { component: Component, initialProps }: ComponentWrapperProps,\n ref: React.Ref<ComponentWrapperRef>,\n) {\n const [props, setProps] = React.useState<Record<any, any>>(initialProps);\n\n React.useImperativeHandle(ref, () => ({\n updateProps(newProps: Record<any, any>) {\n setProps(newProps);\n },\n }));\n\n return <Component {...props} />;\n});\n","import { reactEvents } from \"../bridge/reactEvents\";\n\nexport function FooBar({hello}:{hello:string}) {\n return <div>\n {hello}\n <button onClick={() => reactEvents.fooBar.dispatch()}>hej</button>\n </div>\n}","import { angularEvents } from \"../bridge/angularEvents\";\nimport { reactEvents } from \"../bridge/reactEvents\";\nimport { useEffect, useState, useRef } from \"react\";\nimport { Formik, Field, Form, FieldArray, useFormikContext, useField } from \"formik\";\nimport * as Yup from \"yup\";\nimport { MetaField } from \"./MetaFields\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nexport interface MetaFieldValue {\n id: number;\n name: string;\n articleId: number;\n metaFieldId: number;\n type: string;\n value: any;\n options: MetaFieldValueOption[];\n}\n\nexport interface MetaFieldValueOption {\n id: number;\n value: string;\n}\n\nfunction DropdownField({\n options,\n name,\n isEditing,\n}: {\n options: MetaFieldValueOption[];\n name: string;\n isEditing: boolean;\n}) {\n return (\n <Field as=\"select\" name={name} disabled={!isEditing}>\n {options.map((option) => (\n <option key={option.id} value={option.value}>\n {option.value}\n </option>\n ))}\n </Field>\n );\n}\n\nfunction formatDate(date: Date) {\n let year = date.getFullYear();\n let month = date.getMonth() + 1;\n let day = date.getDate();\n let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;\n return formattedDate;\n}\n\nfunction DatepickerField({ name, isEditing }: { name: string; isEditing: boolean }) {\n const { setFieldValue } = useFormikContext<any>();\n const [field, meta] = useField(name);\n\n const handleDateChange = (date: Date | null) => {\n if (date) {\n let formattedDate = formatDate(date);\n setFieldValue(name, formattedDate);\n } else {\n setFieldValue(name, \"\");\n }\n };\n\n return (\n <div>\n <DatePicker\n dateFormat=\"yyyy-MM-dd\"\n selected={field.value ? new Date(field.value) : null}\n onChange={handleDateChange}\n disabled={!isEditing}\n />\n {meta.touched && meta.error ? (\n <div className=\"error\">{meta.error}</div>\n ) : null}\n </div>\n );\n}\n\nfunction MetaFieldValueComponent({\n field,\n isEditing,\n index,\n onChange\n}: {\n field: MetaFieldValue;\n isEditing: boolean;\n index: number;\n onChange: (index: number, value: any) => void;\n}) {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {\n let value: any = e.target.value;\n if (field.type === \"number\") {\n value = value === \"\" ? \"\" : parseFloat(value);\n }\n onChange(index, value);\n };\n\n switch (field.type) {\n case \"short text\":\n return (\n <Field\n name={`metaFields.${index}.value`}\n type=\"text\"\n readOnly={!isEditing}\n component=\"input\"\n onChange={handleChange}\n />\n );\n case \"long text\":\n return (\n <Field\n name={`metaFields.${index}.value`}\n component=\"textarea\"\n readOnly={!isEditing}\n onChange={handleChange}\n />\n );\n case \"number\":\n return (\n <Field\n name={`metaFields.${index}.value`}\n type=\"number\"\n readOnly={!isEditing}\n component=\"input\"\n onChange={handleChange}\n />\n );\n case \"list\":\n const newOption: MetaFieldValueOption = {\n id: 0,\n value: \"\",\n };\n\n const updatedOptions = field.options.concat(newOption);\n return (\n <DropdownField\n options={updatedOptions}\n name={`metaFields.${index}.value`}\n isEditing={isEditing}\n />\n );\n case \"date\":\n return (\n <DatepickerField\n name={`metaFields.${index}.value`}\n isEditing={isEditing}\n />\n );\n default:\n return <span>Unknown type</span>;\n }\n}\n\nfunction saveMetaFieldValues(values: MetaFieldValue[]) {\n const formattedValues = values.map(field => {\n if (field.type === \"number\") {\n field.value = field.value ?? \"\";\n }\n return field;\n });\n reactEvents.saveMetaFieldValues.dispatch(formattedValues);\n}\n\nexport function MetaFieldValues({\n values,\n initialIsEditing,\n}: {\n values: MetaFieldValue[];\n fields: MetaField[];\n initialIsEditing: boolean;\n}) {\n const [isEditing, setIsEditing] = useState(initialIsEditing);\n\n const formValuesRef = useRef(values);\n\n useEffect(() => {\n const unsub = angularEvents.isEditing.subscribe((e: boolean) => {\n setIsEditing(e);\n });\n\n const unsubSaveArticle = angularEvents.saveArticle.subscribe(() => {\n saveMetaFieldValues(formValuesRef.current);\n });\n\n return () => {\n unsub();\n unsubSaveArticle();\n };\n }, [values]);\n\n useEffect(() => {\n console.log(`isEditing changed: ${isEditing}`);\n }, [isEditing]);\n\n const validationSchema = Yup.object().shape({\n metaFields: Yup.array().of(\n Yup.object().shape({\n name: Yup.string().required(\"Name is required\"),\n type: Yup.string().required(\"Type is required\"),\n value: Yup.mixed().required(\"Value is required\"),\n })\n ),\n });\n\n const formattedValues = values.map(field => {\n if (field.type === \"date\") {\n field.value = field.value ? formatDate(new Date(field.value)) : \"\";\n }\n if (field.type === \"number\") {\n field.value = field.value ?? \"\";\n }\n return field;\n });\n\n return (\n <div>\n <h2>Meta field values</h2>\n <p>Set values specific to this article</p>\n <Formik\n initialValues={{ metaFields: formattedValues }}\n validationSchema={validationSchema}\n onSubmit={(formValues) => {\n saveMetaFieldValues(formValues.metaFields);\n }}\n >\n {({ values, handleSubmit, setFieldValue }) => {\n formValuesRef.current = values.metaFields;\n\n const handleFieldChange = (index: number, value: any) => {\n setFieldValue(`metaFields.${index}.value`, value);\n formValuesRef.current[index].value = value;\n };\n\n return (\n <Form onSubmit={handleSubmit}>\n <FieldArray name=\"metaFields\">\n {() => (\n <ul>\n {values.metaFields.map((metaFieldValue, index) => (\n <li\n key={index}\n style={{ listStyle: \"none\", marginBottom: \"1rem\" }}\n >\n <div>\n <strong>{metaFieldValue.name}</strong>\n </div>\n <MetaFieldValueComponent\n field={metaFieldValue}\n isEditing={isEditing}\n index={index}\n onChange={handleFieldChange}\n />\n </li>\n ))}\n </ul>\n )}\n </FieldArray>\n </Form>\n );\n }}\n </Formik>\n </div>\n );\n}\n","import { angularEvents } from \"../bridge/angularEvents\";\nimport { reactEvents } from \"../bridge/reactEvents\";\nimport { useEffect, useState, useRef } from \"react\";\nimport { Formik, Field, FieldArray, Form, ErrorMessage } from \"formik\";\nimport * as Yup from \"yup\";\n\nexport interface Option {\n id: string;\n value: string;\n}\n\nexport interface MetaField {\n id?: number;\n name: string;\n isVisibleOnPrint: boolean;\n positionX: number;\n positionY: number;\n type: string;\n options: Option[];\n}\n\nfunction saveMetaFields(fields: MetaField[]) {\n console.log(\"Saving meta fields now!\");\n reactEvents.saveMetaFields.dispatch(fields);\n}\n\nexport function MetaFields({\n fields,\n initialIsEditing,\n}: {\n fields: MetaField[];\n initialIsEditing: boolean;\n}) {\n const [isEditing, setIsEditing] = useState(initialIsEditing);\n\n // Use a ref to store form values\n const formValuesRef = useRef(fields);\n\n useEffect(() => {\n const unsub = angularEvents.isEditing.subscribe((e: boolean) => {\n setIsEditing(e);\n });\n\n const unsubSaveArticle = angularEvents.saveArticle.subscribe(() => {\n saveMetaFields(formValuesRef.current);\n });\n\n return () => {\n unsub();\n unsubSaveArticle();\n };\n }, []);\n\n useEffect(() => {\n console.log(`isEditing changed: ${isEditing}`);\n }, [isEditing]);\n\n const initialValues = {\n metaFields: fields.map((field) => ({\n ...field,\n options: field.options || [],\n newOption: \"\",\n })),\n };\n\n const typeOptions = [\"short text\", \"long text\", \"number\", \"date\", \"list\"];\n\n return (\n <div>\n <h2>Meta fields</h2>\n <p>\n Apply to all articles, only values can be added on the article, see Meta\n field values above\n </p>\n <div>\n <Formik\n initialValues={initialValues}\n validationSchema={Yup.object({\n metaFields: Yup.array().of(\n Yup.object().shape({\n name: Yup.string().required(\"Name is required\"),\n type: Yup.string().required(\"Type is required\")\n })\n ),\n })}\n onSubmit={async (values) => {\n await new Promise((r) => setTimeout(r, 500));\n console.log(JSON.stringify(values, null, 2));\n formValuesRef.current = values.metaFields; // Update the ref with the latest form data\n }}\n >\n {({ values, setFieldValue }) => {\n // Update formValuesRef on every render to keep it up to date with form values\n formValuesRef.current = values.metaFields;\n\n return (\n <Form>\n <FieldArray name=\"metaFields\">\n {({ remove, push }) => (\n <div>\n {values.metaFields.length > 0 &&\n values.metaFields.map((metaField, index) => (\n <div className=\"row\" key={index}>\n <div className=\"col\" style={{ padding: \"10px\" }}>\n <label htmlFor={`metaFields.${index}.name`}>\n Name\n </label>\n <Field\n name={`metaFields.${index}.name`}\n type=\"text\"\n disabled={!isEditing}\n />\n <ErrorMessage\n name={`metaFields.${index}.name`}\n component=\"div\"\n className=\"field-error\"\n />\n </div>\n <div className=\"col\" style={{ padding: \"10px\" }}>\n <label htmlFor={`metaFields.${index}.type`}>\n Type\n </label>\n <Field\n name={`metaFields.${index}.type`}\n as=\"select\"\n disabled={!isEditing}\n >\n <option value=\"\">Select a type</option>\n {typeOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </Field>\n <ErrorMessage\n name={`metaFields.${index}.type`}\n component=\"div\"\n className=\"field-error\"\n />\n </div>\n <div className=\"col\" style={{ padding: \"10px\" }}>\n <label>\n <Field\n name={`metaFields.${index}.isVisibleOnPrint`}\n type=\"checkbox\"\n disabled={!isEditing}\n />\n Visible on Print\n </label>\n </div>\n {/* Only show these controls if the selected type is \"list\" */}\n {metaField.type === \"list\" && (\n <>\n {isEditing ? (\n <div\n className=\"col\"\n style={{ padding: \"10px\" }}\n >\n <label\n htmlFor={`metaFields.${index}.newOption`}\n >\n Add Option\n </label>\n <input\n type=\"text\"\n id={`metaFields.${index}.newOption`}\n value={metaField.newOption || \"\"}\n onChange={(e) =>\n setFieldValue(\n `metaFields.${index}.newOption`,\n e.target.value\n )\n }\n disabled={!isEditing}\n />\n <button\n type=\"button\"\n onClick={() => {\n if (metaField.newOption) {\n const newOption = {\n value: metaField.newOption,\n };\n const updatedOptions = [\n ...metaField.options,\n newOption,\n ];\n setFieldValue(\n `metaFields.${index}.options`,\n updatedOptions\n );\n setFieldValue(\n `metaFields.${index}.newOption`,\n \"\"\n ); \n }\n }}\n disabled={!isEditing}\n >\n Add\n </button>\n <div\n className=\"col\"\n style={{ padding: \"10px\" }}\n >\n <label>Options:</label>\n <ul>\n {metaField.options.map((option, i) => (\n <li key={option.value}>\n {option.value}\n <button\n type=\"button\"\n onClick={() => {\n const updatedOptions =\n metaField.options.filter(\n (_, optIndex) =>\n optIndex !== i\n );\n setFieldValue(\n `metaFields.${index}.options`,\n updatedOptions\n );\n }}\n disabled={!isEditing}\n >\n Remove\n </button>\n </li>\n ))}\n </ul>\n </div>\n </div>\n ) : (\n <div\n className=\"col\"\n style={{ padding: \"10px\" }}\n >\n <label>Options:</label>\n <select defaultValue=\"\">\n <option value=\"\">View options</option>\n {metaField.options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n >\n {option.value}\n </option>\n ))}\n </select>\n </div>\n )}\n </>\n )}\n {isEditing && (\n <div className=\"col\" style={{ padding: \"10px\" }}>\n <button\n type=\"button\"\n className=\"secondary\"\n onClick={() => remove(index)}\n disabled={!isEditing}\n >\n X\n </button>\n </div>\n )}\n </div>\n ))}\n {isEditing && (\n <button\n type=\"button\"\n className=\"secondary\"\n onClick={() =>\n push({\n name: \"\",\n type: \"\",\n isVisibleOnPrint: false,\n positionX: 1,\n positionY: 1,\n options: [],\n })\n }\n disabled={!isEditing}\n >\n Add meta field\n </button>\n )}\n </div>\n )}\n </FieldArray>\n </Form>\n );\n }}\n </Formik>\n </div>\n </div>\n );\n}\n","// Imports\nimport { Fragment, ReactNode, useEffect, useState } from \"react\";\nimport { angularEvents } from \"../../bridge/angularEvents\";\nimport { Formik, Field, FieldArray, Form, ErrorMessage, FormikProps, FormikConfig } from \"formik\";\nimport { reactEvents } from \"../../bridge/reactEvents\";\n\n// Exports\nexport function ColourChange({articleId, initialArticleColours}: {articleId: number, initialArticleColours: ArticleColours}) {\n let [articleColours, setArticleColours] = useState(initialArticleColours);\n\n useEffect(() => {\n const unsub = angularEvents.articleColoursHasChanged.subscribe((newArticleColours: ArticleColours) => {\n console.log(\"Got the following articleColours: \", newArticleColours);\n \n const uniqueColourNames = newArticleColours.ArticleColours\n .map(colour => colour.ColourName)\n .filter((value, index, self) => self.indexOf(value) == index);\n\n console.log(\"Adding unique colour names to values\");\n newArticleColours.UniqueColourNames = uniqueColourNames;\n setArticleColours(newArticleColours);\n });\n return () => {\n unsub();\n };\n }, []);\n\n // Render this if we haven't gotten the articleColours from backend yet\n if (!articleColours) {\n return (<div className=\"fa fa-clock-o\"></div>);\n }\n\n // Render this if we have all the information we need to present the UI\n return (\n <>\n <h2> \n Colour change for article with Id: { articleId }\n </ h2>\n <div>\n ArticleColours: { JSON.stringify(articleColours) }\n </ div>\n <Formik<ArticleColours>\n initialValues = { articleColours }\n onSubmit = { (values, formikHelpers) => onSubmitForm(values, formikHelpers) }>\n { renderForm }\n </ Formik>\n </>\n );\n}\n\n// Local functions\n// function renderForm({ isSubmitting }: { isSubmitting: boolean }) : JSX.Element {\nfunction renderForm(formikState: any) : JSX.Element {\n console.log(\"formikState: \", formikState)\n const { values, isSubmitting } = formikState;\n\n if (!Array.isArray(values.articleColours)) {\n return (<div>values.articleColours is not an array</div>)\n }\n\n return (\n <Form>\n <div>\n values: { JSON.stringify(values.articleColours) }\n </ div>\n <div>\n { values.articleColours.map((colour) => (<div> {JSON.stringify(colour)} </div>)) }\n </div>\n <Field as=\"select\" name=\"articleColours\">\n <option key=\"0\" value=\"0\">Select a type</option>\n {\n values.articleColours.map((colour) => (\n <option key={colour.articleVariantId} value={colour.colourName}>\n { colour.colourName }\n </option>\n ))\n }\n </Field>\n <Field type=\"text\" name=\"newColourName\" placeholder=\"\"></Field>\n <button type=\"submit\" disabled={ isSubmitting }> Submit </button>\n </ Form>\n );\n}\n\nasync function onSubmitForm(values: any, { setSubmitting } : { setSubmitting: Function }) {\n console.log(\"onSubmit with values: \", values);\n console.log(\"SetSubmitting: \", setSubmitting);\n // Do call to some backend\n reactEvents.saveColourChange.dispatch(values);\n // On call return, continue here\n setSubmitting(false);\n}\n\n// Classes\nexport class ArticleColours {\n ArticleId: number = 0;\n ArticleColours: ArticleColour[] = [];\n UniqueColourNames: string[] = [];\n}\nclass ArticleColour {\n ArticleVariantId: number = 0;\n ColourName: string = \"\";\n}\n","import { bridgeConverter } from '../../bridge/bridgeConverter.tsx';\nimport { FooBar } from '../../react/FooBar';\nimport { MetaFieldValues } from '../../react/MetaFieldValues';\nimport { MetaFields } from '../../react/MetaFields';\nimport { ColourChange } from '../../react/product/colourChange'\n \nangular\n .module('app.bridgeComponents', [])\n .component('fooBar', bridgeConverter(FooBar, ['hello']))\n .component('metaFieldValues', bridgeConverter(MetaFieldValues, ['values', 'initialIsEditing']))\n .component('metaFields', bridgeConverter(MetaFields, ['fields', 'initialIsEditing']))\n .component('colourChange', bridgeConverter(ColourChange, ['articleId']));","\n\n// @ngInject\nfunction angularDataConfig(DSProvider, ENV) {\n DSProvider.defaults.basePath = ENV.BASE_PATH;\n DSProvider.defaults.rms2Path = ENV.RMS2_BASE_PATH;\n DSProvider.defaults.ENV = ENV;\n}\n\n// @ngInject\nfunction httpProviderConfig($httpProvider) {\n $httpProvider.interceptors.push('httpInterceptor');\n}\n\n// @ngInject\nfunction httpInterceptor($injector,$q) {\n return {\n responseError: function(rejection) {\n var AuthService = $injector.get('AuthService');\n var ToasterService = $injector.get('ToasterService');\n var $translate = $injector.get('$translate');\n if (rejection.status === 401) {\n AuthService.logOut();\n } else if (rejection.status === 403) {\n ToasterService.showError($translate.instant('errors.notallowed'));\n }\n return $q.reject(rejection);\n }\n };\n}\n\n// @ngInject\nfunction translationConfig($translateProvider) {\n $translateProvider.translations('en', {\n 'common.error': 'Error',\n 'login.tenant': 'Company',\n 'common.login': 'Log in',\n 'login.header': 'Sign In',\n 'login.password': 'Password',\n 'login.title': 'Login',\n 'login.username': 'Username',\n 'common.resetPasswordQuestion': 'Reset password?',\n 'user.resetPasswordTitle': 'Reset password',\n 'user.resetPasswordInstruction': 'Please enter your company name, and username or email address. If your email address is in the system you will receive an email with a security code that you will use in the next step. If you haven\\'t saved an email address you will need to contact support.',\n 'common.errorMissingInputOrTenant': 'Please enter both company and username/email.',\n 'common.errorEmailNotValid': 'Email address not a valid format.',\n 'address.usernameOrEmail': 'Username or email address',\n 'user.resetPassword': 'Reset password',\n 'user.resetPasswordConfirmInstruction': 'Copy the security code that was sent to you in the email and enter a new password. Confirm the new password and click on Save new password.',\n 'login.securityCode': 'Security code',\n 'login.newPassword': 'New password',\n 'login.confirmPassword': 'Confirm password',\n 'user.confirmNewPassword': 'Save new password',\n 'common.errorMissingPasswordOrConfirmation': 'Please enter both password and confirmation.',\n 'common.errorPasswordsNotMatching': 'Passwords do not match.',\n 'common.errorMissingSecurityCode': 'Please enter the security code from the email.',\n 'user.resetPasswordFinalInstruction': 'Password saved. You can close the popup and log in.'\n });\n $translateProvider.translations('se', {\n 'common.error': 'Ett fel uppstod',\n 'login.tenant': 'Företag',\n 'common.login': 'Logga in',\n 'login.header': 'Logga in',\n 'login.password': 'Lösenord',\n 'login.title': 'Inloggning',\n 'login.username': 'Användarnamn',\n 'common.resetPasswordQuestion': 'Återställ lösenord?',\n 'user.resetPasswordTitle': 'Återställ lösenord',\n 'user.resetPasswordInstruction': 'Fyll i företagsnamn, och användarnamn eller epostadress. Om din epostadressen finns i systemet kommer du få en kod via epost som du använder i nästa steg. Har du inte sparat en epostadress på ditt konto behöver du kontakta support.',\n 'common.errorMissingEmailOrTenant': 'Var god fyll i både företag och användarnamn/epostadress.',\n 'common.errorEmailNotValid': 'Epostadressen är inte giltig.',\n 'address.usernameOrEmail': 'Användarnamn eller epostadress',\n 'user.resetPassword': 'Återställ lösenord',\n 'user.resetPasswordConfirmInstruction': 'Kopiera in koden som skickades till dig i epostmeddelande och fyll i ett nytt lösenord. Bekräfta det nya lösenordet och klicka på Spara nytt lösenord.',\n 'login.securityCode': 'Säkerhetskod',\n 'login.newPassword': 'Nytt lösenord',\n 'login.confirmPassword': 'Bekräfta lösenord',\n 'user.confirmNewPassword': 'Spara nytt lösenord',\n 'common.errorMissingPasswordOrConfirmation': 'Var god fyll i både lösenord och lösenordsbekräftelse.',\n 'common.errorPasswordsNotMatching': 'Lösenorden stämmer inte överens.',\n 'common.errorMissingSecurityCode': 'Var god fyll i säkerhetskoden.',\n 'user.resetPasswordFinalInstruction': 'Lösenordet sparat. Du kan stänga popupen och logga in som vanligt.'\n });\n $translateProvider.useSanitizeValueStrategy('escaped');\n $translateProvider.useLocalStorage();\n $translateProvider.useUrlLoader('/api/localization/resources');\n $translateProvider.preferredLanguage('se');\n $translateProvider.fallbackLanguage('en');\n}\n\nangular.module('constant', []).constant('ENV', {\n BASE_PATH: process.env.BASE_PATH,\n NAME: process.env.NAME,\n FLEXMONSTER_KEY: process.env.FLEXMONSTER_KEY,\n RMS2_BASE_PATH: process.env.RMS2_BASE_PATH,\n});\n\nangular\n .module('core.config', [])\n .factory('httpInterceptor',httpInterceptor)\n .config(httpProviderConfig)\n .config(angularDataConfig)\n .config(translationConfig);\n","require ('../../version');\n\nangular\n .module('app.core', [\n 'js-data',\n 'ui.router',\n 'ui.select',\n 'ngCookies',\n 'pascalprecht.translate',\n //'templates-app',\n 'ui.bootstrap',\n 'resources',\n 'services',\n 'app.version',\n 'decorators.bootstrapModal',\n 'wj',\n 'gridster',\n 'googlechart',\n 'directives',\n 'filters',\n 'constant',\n 'core.init',\n 'core.config',\n 'core.values',\n 'toastr',\n 'components',\n 'chart.js'\n ]);\n","// @ngInject\nfunction ResourceInit(DS) {\n DS.defineResource({\n name: 'article',\n idAttribute: 'id',\n endpoint: 'articles'\n });\n\n DS.defineResource({\n name: 'articlecollections',\n idAttribute: 'id',\n endpoint: 'articlecollections'\n });\n\n DS.defineResource({\n name: 'articlevariants',\n idAttribute: 'id',\n endpoint: 'articlevariants'\n });\n\n DS.defineResource({\n name: 'basedonarticle',\n idAttribute: 'id',\n endpoint: 'articlevariants/basedonarticle'\n });\n\n DS.defineResource({\n name: 'brand',\n idAttribute: 'id',\n endpoint: 'brands'\n });\n\n DS.defineResource({\n name: 'company',\n idAttribute: 'id',\n endpoint: 'companies'\n });\n\n DS.defineResource({\n name: 'country',\n idAttribute: 'id',\n endpoint: 'countries'\n });\n\n DS.defineResource({\n name: 'dashboard',\n idAttribute: 'id',\n endpoint: 'dashboard'\n });\n\n DS.defineResource({\n name: 'itemgroups',\n idAttribute: 'id',\n endpoint: 'itemgroups'\n });\n\n DS.defineResource({\n name: 'location',\n idAttribute: 'id',\n endpoint: 'locations'\n });\n\n DS.defineResource({\n name: 'mainGroup',\n idAttribute: 'id',\n endpoint: 'maingroups',\n relations: {\n hasMany: {\n subcategory: {\n localField: 'subcategories',\n foreignKey: 'mainGroupId'\n }\n }\n }\n });\n\n DS.defineResource({\n name:'order',\n idAttribute: 'id',\n endpoint: 'orders'\n });\n\n DS.defineResource({\n name:'orderarticle',\n idAttribute: 'id',\n endpoint: 'orderarticles'\n });\n\n DS.defineResource({\n name: 'subcategory',\n idAttribute: 'id',\n endpoint: 'subcategories',\n relations: {\n belongsTo: {\n mainGroup: {\n parent: true,\n localKey: 'mainGroupId',\n localField: 'mainGroup'\n }\n }\n }\n });\n\n DS.defineResource({\n name: 'user',\n idAttribute: 'id',\n endpoint: 'users'\n });\n\n DS.defineResource({\n name: 'variant',\n idAttribute: 'id',\n endpoint: 'variants'\n });\n\n DS.defineResource({\n name: 'variantgroup',\n idAttribute: 'id',\n endpoint: 'variantgroups'\n });\n\n DS.defineResource({\n name: 'vats',\n idAttribute: 'id',\n endpoint: 'vats'\n });\n}\n\nangular\n .module('init.angularData',[])\n .run(ResourceInit);\n"," // @ngInject\nfunction setRootScopeVariables($rootScope,$state,AuthService) {\n $rootScope.$state = $state;\n $rootScope.canAccess = AuthService.canAccess;\n}\n\n// @ngInject\nfunction initializeAuthService(AuthService) {\n AuthService.setToken();\n}\n\n// @ngInject\nfunction eventSubscribers($rootScope,loadSpinnerService, VersionService) {\n // When we go to a new state, pause the state change and check if we are authorized\n $rootScope.$on('$stateChangeStart', function(e, toState, toParams,fromState,fromParams) {\n $rootScope.$applyAsync(loadSpinnerService.start('mainSpinner'));\n $rootScope.toState = toState;\n $rootScope.toParams = toParams;\n });\n\n\n $rootScope.$on('$stateChangeSuccess', function(event, toState) {\n\n //reload client if version has changed\n if (VersionService.hasVersionChanged && VersionService.allowReloadOnStateChange) {\n VersionService.reload();\n } else {\n loadSpinnerService.stop('mainSpinner',{force:true});\n }\n loadSpinnerService.stop('mainSpinner',{force:true});\n\n if (angular.isDefined(toState.data.pageTitle)) {\n $rootScope.pageTitle = toState.data.pageTitle;\n }\n });\n\n $rootScope.$on('$stateChangeError', function() {\n loadSpinnerService.stop('mainSpinner',{force:true});\n });\n}\n\nangular\n .module('core.init', ['init.angularData'])\n .run(setRootScopeVariables)\n .run(initializeAuthService)\n .run(eventSubscribers);\n","angular\n .module('core.values', [])\n .value('apiToken',{token:null});\n","// @ngInject\nfunction VersionService($rootScope,$timeout, $http, $window) {\n\n var currentPromise = null;\n var started = false;\n var checkInterval = 30 * 1000;\n\n var service = {\n start: start,\n stop: stop,\n hasVersionChanged: false,\n reload: reload,\n allowReloadOnStateChange: false\n };\n\n return service;\n\n function start() {\n if (service.hasVersionChanged) {\n return;\n }\n if (currentPromise) {\n $timeout.cancel(currentPromise);\n }\n started = true;\n currentPromise = $timeout(checkVersion, checkInterval);\n }\n\n function stop() {\n if (currentPromise) {\n started = false;\n $timeout.cancel(currentPromise);\n }\n }\n\n function reload() {\n $window.location.reload();\n }\n\n function checkVersion() {\n var url = 'version.json?nocache=' + (new Date()).getTime();\n $http.get(url)\n .then(function(response) {\n if (response.data.version !== '1.0.0') {\n console.log('version changed');\n service.hasVersionChanged = true;\n started = false;\n $rootScope.$emit('Version.Changed', response.data.version);\n }\n\n if (started) {\n currentPromise = $timeout(checkVersion, checkInterval);\n }\n });\n }\n}\n\nangular\n .module('app.version', [])\n .factory('VersionService', VersionService);\n","// @ngInject\nfunction AuthApiService($q,DS,DSHttpAdapter,ResourcesService) {\n\n return {\n getToken: getToken\n };\n\n function getToken(username, password, tenantName) {\n var deferred = $q.defer();\n\n var data = {\n 'username': username,\n 'password': password,\n 'tenantName': tenantName\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'auth', data).then(function(response) {\n deferred.resolve(response.data.token);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('auth.api',[])\n .factory('AuthApiService', AuthApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('login', {\n url: '/login',\n controller: 'LoginController',\n data: { pageTitle: 'Login' }\n\n });\n}\n\n// @ngInject\nfunction LoginController($location,AuthService) {\n if (!AuthService.hasToken()) {\n AuthService.showLogin();\n } else {\n $location.path(\"/\");\n }\n}\n\nangular\n .module('login', ['auth.api'])\n .config(stateConfig)\n .controller('LoginController', LoginController);\n","// @ngInject\nfunction AnalysisApiService($q, $window, DS, ResourcesService, DSHttpAdapter) {\n\n var endpoint = 'analysis';\n\n return {\n getReports: ResourcesService.apiFactory.get(endpoint + '/getReports'),\n saveReport: saveReport,\n getDataSources: ResourcesService.apiFactory.get(endpoint + '/getDataSources'),\n getUserReports: ResourcesService.apiFactory.get(endpoint + '/getUserReports'),\n saveUserReport: saveUserReport,\n deleteUserReport: deleteUserReport,\n getSharedReports: ResourcesService.apiFactory.get(endpoint + '/getSharedReports'),\n getPdfTemplates: ResourcesService.apiFactory.get(endpoint + '/getPdfTemplates'),\n savePdfTemplate: savePdfTemplate,\n getReportGroups: ResourcesService.apiFactory.get(endpoint + '/getReportGroups'),\n saveUserReportSortOrder: saveUserReportSortOrder,\n getLocalization: ResourcesService.apiFactory.get(endpoint + '/getLocalization'),\n getUserReportsToConvert: ResourcesService.apiFactory.get(endpoint + '/getUserReportsToConvert'),\n saveConvertedUserReport: saveConvertedUserReport,\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations')\n };\n\n function saveReport(report) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'analysis/saveReport', report).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function saveUserReport(userReport) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'analysis/saveUserReport', userReport).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function deleteUserReport(userReport) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'analysis/deleteUserReport', userReport).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function savePdfTemplate(pdfTemplate) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'analysis/savePdfTemplate', pdfTemplate).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function saveUserReportSortOrder(reports) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'analysis/updateUserReportSortOrder', reports).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function saveConvertedUserReport(userReport) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'analysis/saveConvertedUserReport', userReport).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n}\n\nangular.module('analysis.api', [])\n .factory('AnalysisApiService', AnalysisApiService);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('analysis', {\n url: '/analysis',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/analysis/analysis.tpl.html',\n controller: 'MainAnalysisController as vm'\n\n });\n}\n\n// @ngInject\nfunction MainAnalysisController() {\n var vm = this;\n}\n\nangular\n .module('main.analysis', ['analysis.api','analysis.reports', 'analysis.pdfTemplate', 'analysis.userReports'])\n .config(stateConfig)\n .controller('MainAnalysisController', MainAnalysisController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('analysis.pdfTemplate', {\n url: '/pdfTemplate',\n templateUrl: 'main/analysis/pdfTemplate/pdfTemplate.tpl.html',\n controller: 'AnalysisPdfTemplateController as vm',\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction AnalysisPdfTemplateController(AnalysisApiService, ToasterService, loadSpinnerService) {\n var vm = this;\n\n // properties\n vm.templates = [];\n vm.selectedTemplate = {};\n\n //initialize\n loadSpinnerService.start('pdfTemplate');\n AnalysisApiService.getPdfTemplates().then(function (data) {\n vm.templates = data;\n vm.selectedTemplate = _.head(vm.templates);\n },\n function (error) {\n ToasterService.showError(error, \"\");\n })\n .finally(function () {\n loadSpinnerService.stop('pdfTemplate');\n });\n\n // functions\n vm.selectTemplate = selectTemplate;\n vm.save = save;\n\n function selectTemplate(template) {\n vm.selectedTemplate = template;\n }\n\n function save() {\n loadSpinnerService.start('pdfTemplate');\n AnalysisApiService.savePdfTemplate(angular.copy(vm.selectedTemplate)).then(function (response) {\n ToasterService.showSuccess(\"\", \"\");\n },\n function (error) {\n ToasterService.showError(error, \"\");\n })\n .finally(function () {\n loadSpinnerService.stop('pdfTemplate');\n });\n }\n}\n\nangular.module('analysis.pdfTemplate', [])\n .config(stateConfig)\n .controller('AnalysisPdfTemplateController', AnalysisPdfTemplateController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('analysis.reports', {\n url: '/reports',\n templateUrl: 'main/analysis/reports/reports.tpl.html',\n controller: 'AnalysisReportsController as vm',\n resolve: {\n reports: reportsResolver,\n dataSources: dataSourcesResolver,\n userReports: userReportsResolver,\n sharedReports: sharedReportsResolver,\n localization: localizationResolver\n }\n });\n}\n\n// @ngInject\nfunction reportsResolver(AnalysisApiService) {\n return AnalysisApiService.getReports();\n}\n\n// @ngInject\nfunction dataSourcesResolver(AnalysisApiService) {\n return AnalysisApiService.getDataSources();\n}\n\n// @ngInject\nfunction userReportsResolver(AnalysisApiService) {\n return AnalysisApiService.getUserReports();\n}\n\n// @ngInject\nfunction sharedReportsResolver(AnalysisApiService) {\n return AnalysisApiService.getSharedReports();\n}\n\n// @ngInject\nfunction localizationResolver(AnalysisApiService) {\n return AnalysisApiService.getLocalization();\n}\n\n\n// @ngInject\nfunction AnalysisReportsController(AnalysisApiService, DS, reports, dataSources, $rootScope, $cookies, localization, loadSpinnerService,\n userReports, $location, $uibModal, $translate, $scope, sharedReports, ToasterService) {\n var vm = this;\n\n // properties\n vm.reports = reports;\n vm.dataSources = dataSources;\n vm.userReports = userReports;\n vm.editReportTemplates = false;\n vm.showUserReportList = false;\n vm.isLoadingReport = false;\n vm.selectedDataSource = {};\n vm.selectedReport = { id: -2, description: \"\", reportObject: \"\" };\n vm.selectedUserReport = { id: -1, description: \"\" };\n vm.selectedUserReport1 = { id: -1, description: \"\" };\n vm.userReportName = \"\";\n vm.reportComboBox = {};\n vm.initUserReports = true;\n vm.sharedReports = sharedReports;\n vm.selectedSharedReport = { id: -1, decription: \"\" };\n vm.showSharedReportList = false;\n vm.initSharedReports = true;\n vm.reportLevels = [];\n\n //functions\n vm.selectUserReports = selectUserReports;\n vm.loadReport = loadReport;\n vm.loadUserReport = loadUserReport;\n vm.saveReport = saveReport;\n vm.saveNewUserReport = saveNewUserReport;\n vm.canSaveUserReport = canSaveUserReport;\n vm.deleteUserReport = deleteUserReport;\n vm.loadUserReports = loadUserReports;\n vm.getUserReports = getUserReports;\n vm.editUserReport = editUserReport;\n vm.formatDate = formatDate;\n vm.comboBoxInitialized = comboBoxInitialized;\n vm.cancelEditUserReport = cancelEditUserReport;\n vm.editFormSelectedReportChanged = editFormSelectedReportChanged;\n vm.expandRows = expandRows;\n vm.collapseRows = collapseRows;\n vm.selectSharedReports = selectSharedReports;\n vm.selectedSharedReportChanged = selectedSharedReportChanged;\n vm.loadSharedReports = loadSharedReports;\n vm.cbSelectLevelChanged = cbSelectLevelChanged;\n vm.removeMeasures = removeMeasures;\n vm.convertAllReports = convertAllReports;\n\n var pivot = createPivot();\n\n var user = $rootScope.currentUser;\n vm.editReportTemplates = (user.username.substr(0, 4) === \"thsv\");\n\n if (!vm.editReportTemplates) {\n\n vm.reports.splice(0, 0, {\n id: -3,\n name: $translate.instant('reports.sharedReports')\n });\n\n vm.reports.splice(0, 0, {\n id: -2,\n name: $translate.instant('reports.myReports')\n });\n\n selectUserReports();\n }\n\n\n\n\n function selectUserReports() {\n vm.showUserReportList = true;\n vm.showSharedReportList = false;\n vm.selectedReport = _.find(vm.reports, { id: -2 });\n vm.loadUserReports();\n }\n\n function selectSharedReports() {\n vm.showSharedReportList = true;\n vm.showUserReportList = false;\n vm.selectedReport = _.find(vm.reports, { id: -3 });\n vm.loadSharedReports();\n }\n\n\n function loadUserReports() {\n AnalysisApiService.getUserReports().then(function (data) {\n vm.userReports = data;\n vm.userReports.splice(0, 0, {\n id: -1,\n name: '-'\n });\n console.log(vm.userReports);\n var report = _.find(vm.userReports, { id: vm.selectedUserReport.id });\n vm.selectedUserReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n vm.initUserReports = false;\n\n if (vm.showUserReportList) {\n var cb = $scope.cbEditUserReport;\n\n cb._tbx.value = vm.selectedUserReport.name;\n\n }\n\n });\n }\n\n function loadSharedReports() {\n AnalysisApiService.getSharedReports().then(function (data) {\n vm.sharedReports = data;\n vm.sharedReports.splice(0, 0, {\n id: -1,\n name: '-'\n });\n console.log(vm.sharedReports);\n var report = _.find(vm.sharedReports, { id: vm.selectedSharedReport.id });\n vm.selectedSharedReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n vm.initSharedReports = false;\n\n var cb = $scope.cbSharedReport;\n cb._tbx.value = vm.selectedSharedReport.name;\n\n });\n }\n\n function loadReport(reportId) {\n\n vm.showUserReportList = false;\n\n if (vm.isLoadingReport === true) {\n return;\n }\n\n\n var report = _.find(vm.reports, { id: reportId });\n vm.selectedReport = report;\n\n vm.isLoadingReport = true;\n\n vm.selectedDataSource = _.find(vm.dataSources, { id: report.dataSourceId });\n\n var dataUrl = DS.defaults.basePath + 'analysis/getCompressedCsvReportData/' + report.dataSourceId + '?token=' + $cookies.getObject('X-JetsoftToken');\n\n var reportText = report.reportObject;\n if (_.startsWith(report.reportObject, \"<\")) {\n /* jshint -W117 */\n reportText = fmCovertXmlReport(report.reportObject);\n /* jshint +W117 */\n }\n var jsonReport = JSON.parse(reportText);\n jsonReport.dataSource.filename = dataUrl;\n jsonReport.dataSource = assureDataSourceType(jsonReport.dataSource);\n jsonReport.localization = '';\n\n _.forEach(jsonReport.slice.measures, function (measure) {\n measure.availableAggregations = 'sum,count,distinctcount,average,product,min,max,percent,percentofcolumn,percentofrow,index';\n });\n\n try {\n pivot.setReport(jsonReport);\n pivot.closeFieldsList();\n }\n catch (error) {\n vm.isLoadingReport = false;\n pivot.clear();\n pivot.refresh();\n ToasterService.showError('\"' + report.name + '\": ' + error.message, 'error', \"Rapporter\");\n }\n\n $scope.cbSaveUserReport._tbx.value = report.name;\n\n }\n\n function loadUserReport(reportId) {\n if (vm.isLoadingReport === true || reportId === -1) {\n return false;\n }\n vm.isLoadingReport = true;\n\n var report = _.find(vm.userReports, { id: reportId });\n\n try {\n\n vm.selectedUserReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n\n\n var dataUrl = DS.defaults.basePath + 'analysis/getCompressedCsvReportData/' + vm.selectedUserReport.dataSourceId + '?token=' + $cookies.getObject('X-JetsoftToken');\n\n var reportText = vm.selectedUserReport.reportObject;\n if (_.startsWith(vm.selectedUserReport.reportObject, \"<\")) {\n /* jshint -W117 */\n reportText = fmCovertXmlReport(vm.selectedUserReport.reportObject);\n /* jshint +W117 */\n }\n var jsonReport = JSON.parse(reportText);\n jsonReport.dataSource.filename = dataUrl;\n jsonReport.dataSource = assureDataSourceType(jsonReport.dataSource);\n jsonReport.localization = '';\n\n pivot.setReport(jsonReport);\n pivot.closeFieldsList();\n\n } catch (error) {\n vm.isLoadingReport = false;\n pivot.clear();\n pivot.refresh();\n ToasterService.showError('\"' + report.name + '\": ' + error.message, 'error', \"Rapporter\");\n }\n }\n\n function loadSharedReport(reportId) {\n if (vm.isLoadingReport === true || reportId === -1) {\n return false;\n }\n vm.isLoadingReport = true;\n\n var report = _.find(vm.sharedReports, { id: reportId });\n\n try {\n\n vm.selectedSharedReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n\n\n var dataUrl = DS.defaults.basePath + 'analysis/getCompressedCsvReportData/' + vm.selectedSharedReport.dataSourceId + '?token=' + $cookies.getObject('X-JetsoftToken');\n\n var reportText = vm.selectedSharedReport.reportObject;\n if (_.startsWith(vm.selectedSharedReport.reportObject, \"<\")) {\n /* jshint -W117 */\n reportText = fmCovertXmlReport(vm.selectedSharedReport.reportObject);\n /* jshint +W117 */\n }\n var jsonReport = JSON.parse(reportText);\n jsonReport.dataSource.filename = dataUrl;\n jsonReport.dataSource = assureDataSourceType(jsonReport.dataSource);\n jsonReport.localization = '';\n\n pivot.setReport(jsonReport);\n pivot.closeFieldsList();\n\n } catch (error) {\n vm.isLoadingReport = false;\n pivot.clear();\n pivot.refresh();\n ToasterService.showError('\"' + report.name + '\": ' + error.message, \"Rapporter\");\n }\n }\n\n function assureDataSourceType(dataSource) {\n if (dataSource.type && dataSource.type.length > 0) {\n dataSource.dataSourceType = dataSource.type;\n } else if (dataSource.dataSourceType && dataSource.dataSourceType.length > 0) {\n dataSource.type = dataSource.dataSourceType;\n }\n\n return dataSource;\n }\n\n function saveReport() {\n\n var report = vm.selectedReport;\n var dataSource = vm.selectedDataSource;\n report.dataSourceId = dataSource.id;\n\n var reportObj = pivot.getReport();\n reportObj.dataSource.filename = \"\";\n reportObj.dataSource = assureDataSourceType(reportObj.dataSource);\n report.reportObject = JSON.stringify(reportObj);\n\n AnalysisApiService.saveReport(report).then(function (e) {\n ToasterService.showSuccess('\"' + report.name + '\" sparades.', \"Rapporter\");\n });\n }\n\n function saveNewUserReport() {\n var newReport = angular.copy(vm.selectedUserReport);\n vm.newReportName = $scope.cbSaveUserReport._tbx.value;\n var report = _.find(vm.userReports, { name: vm.newReportName });\n newReport.id = report === undefined ? -1 : report.id;\n\n if (vm.showSharedReportList) {\n newReport.name = vm.newReportName;\n newReport.description = vm.selectedSharedReport.description;\n newReport.dataSourceId = vm.selectedSharedReport.dataSourceId;\n newReport.reportTemplate = { id: vm.selectedSharedReport.reportTemplate.id };\n } else {\n newReport.name = vm.newReportName;\n newReport.description = vm.selectedReport.description;\n newReport.dataSourceId = vm.selectedReport.dataSourceId;\n newReport.reportTemplate = { id: vm.selectedReport.id };\n }\n\n var reportObj = pivot.getReport();\n reportObj.dataSource.filename = \"\";\n reportObj.dataSource = assureDataSourceType(reportObj.dataSource);\n newReport.reportObject = JSON.stringify(reportObj);\n\n AnalysisApiService.saveUserReport(newReport).then(function () {\n loadUserReports();\n ToasterService.showSuccess('\"' + newReport.name + '\" sparades.', \"Rapporter\");\n });\n\n }\n\n function canSaveUserReport() {\n var cb = $scope.cbSaveUserReport;\n var canSave = cb._tbx.value.length > 1 && !vm.isLoadingReport;\n if (vm.showSharedReportList && vm.selectedSharedReport.id === -1) {\n return false;\n }\n\n return canSave;\n }\n\n function deleteUserReport() {\n var report = angular.copy(vm.selectedUserReport);\n AnalysisApiService.deleteUserReport(report).then(function () {\n loadUserReports();\n ToasterService.showSuccess('\"' + report.name + '\" togs bort.', \"Rapporter\");\n });\n }\n\n\n function getUserReports($select) {\n return vm.userReports;\n }\n\n function editUserReport() {\n var report = angular.copy(vm.selectedUserReport);\n if (report.id === -1) {\n return;\n }\n\n var reportObj = pivot.getReport();\n reportObj.dataSource.filename = \"\";\n reportObj.dataSource = assureDataSourceType(reportObj.dataSource);\n report.reportObject = JSON.stringify(reportObj);\n\n AnalysisApiService.saveUserReport(report).then(function () {\n loadUserReports();\n ToasterService.showSuccess('\"' + report.name + '\" sparades.', \"Rapporter\");\n });\n }\n\n\n function cancelEditUserReport() {\n var report = _.find(vm.userReports, { id: vm.selectedUserReport.id });\n vm.selectedUserReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n }\n\n function editFormSelectedReportChanged(e) {\n if (vm.initUserReports || e.isDroppedDown) {\n return;\n }\n var value = e.selectedValue;\n var report = _.find(vm.userReports, { id: value });\n vm.selectedUserReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n loadUserReport(vm.selectedUserReport.id);\n }\n\n function selectedSharedReportChanged(e) {\n if (vm.initSharedReports || e.isDroppedDown) {\n return;\n }\n var value = e.selectedValue;\n var report = _.find(vm.sharedReports, { id: value });\n vm.selectedSharedReport = report === undefined ? { id: -1, description: \"\" } : angular.copy(report);\n loadSharedReport(vm.selectedSharedReport.id);\n }\n\n\n function formatDate(date, formatStr) {\n if (date === undefined) {\n return '';\n }\n return moment(date).format(formatStr);\n }\n\n function comboBoxInitialized(cb) {\n\n vm.reportComboBox = cb;\n }\n\n function expandRows(expand) {\n if (expand) {\n\n var firstLevel = pivot.getRows()[0];\n if (firstLevel !== undefined) {\n pivot.expandData(firstLevel.uniqueName);\n }\n } else {\n pivot.collapseAllData();\n }\n }\n\n function collapseRows() {\n pivot.collapseAllData();\n }\n\n function cbSelectLevelChanged(e) {\n if (!e || !e.selectedValue) {\n return;\n }\n pivot.expandData(e.selectedValue);\n }\n\n function removeMeasures() {\n var measures = pivot.getAllMeasures();\n _.forEach(measures, function (m) { pivot.removeCalculatedMeasure(m.uniqueName); });\n }\n function createPivot() {\n\n var pivotObj = $(\"#pivotContainer\").flexmonster({\n componentFolder: '/assets/modules/flexmonster/',\n width: '100%',\n height: 700,\n toolbar: true,\n global: {\n localization: localization\n }\n });\n\n pivotObj.on(\"update\", onPivotUpdate);\n pivotObj.on('dataerror', onPivotError);\n\n return pivotObj;\n }\n\n function onPivotError(e) {\n console.log('Error with data!' + e.error);\n }\n\n function onPivotUpdate() {\n vm.reportLevels = pivot.getRows();\n vm.isLoadingReport = false;\n }\n function convertAllReports() {\n _.forEach(vm.reports, function (report) {\n if (_.startsWith(report.reportObject, \"<\")) {\n /* jshint -W117 */\n var reportString = fmCovertXmlReport(report.reportObject);\n /* jshint +W117 */\n report.reportObject = reportString;\n AnalysisApiService.saveReport(report);\n }\n });\n AnalysisApiService.getUserReportsToConvert().then(function (userReports) {\n _.forEach(userReports, function (report) {\n if (_.startsWith(report.reportObject, \"<\")) {\n /* jshint -W117 */\n var reportString = fmCovertXmlReport(report.reportObject);\n /* jshint +W117 */\n report.reportObject = reportString;\n AnalysisApiService.saveConvertedUserReport(report);\n }\n });\n });\n }\n}\n\n\n\nangular.module('analysis.reports', [])\n .config(stateConfig)\n .controller('AnalysisReportsController', AnalysisReportsController);\n","angular.module('components.userReport', [])\n .constant(\"Constants\", {\n ReportGroupName: {\n sales: 'FÖRSÄLJNING'\n }, ReportName: {\n salesWhen: 'Fsg (När)'\n }\n })\n .component('userReport', {\n templateUrl: 'main/analysis/userReports/userReport.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n selectedReport: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($state, AnalysisApiService, ToasterService, DS, $cookies, $anchorScroll, $location, $translate, confirmationDialogService, AuthService, Constants, ENV) {\n var vm = this;\n\n // properties\n vm.reportGroups = [];\n vm.selectedReport = undefined;\n vm.selectedGroup = {};\n vm.loadedReportPath = [];\n vm.pivot = {};\n vm.localization = {};\n vm.showNavigation = false;\n vm.selectedTab = {};\n vm.activeTabIndex = -1;\n vm.loadedReport = {};\n vm.isLoading = false;\n vm.token = \"\";\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.navigate = navigate;\n vm.loadReport = loadReport;\n vm.moveUp = moveUp;\n vm.moveDown = moveDown;\n vm.selectTab = selectTab;\n vm.copySelectedReport = copySelectedReport;\n vm.formatDate = formatDate;\n vm.saveReport = saveReport;\n vm.deleteReport = deleteReport;\n vm.isValidDate = isValidDate;\n vm.canPublishReport = canPublishReport;\n vm.sortDescending = sortDescending;\n vm.sortAscending = sortAscending;\n vm.generate = generate;\n vm.startDate = new Date();\n activate();\n vm.useFiltering = false;\n vm.Constants = Constants;\n vm.cancel = function () {\n vm.isLoading = false;\n vm.pivot.clear();\n vm.pivot.dispose();\n vm.pivot = createPivot();\n var empty = {\n toolbar: true,\n report: {\n dataSource: {\n data: [{ \"test\": \"0\" }]\n }\n }\n };\n vm.pivot.clear();\n vm.pivot.setReport(empty);\n vm.pivot.refresh();\n };\n\n function activate() {\n vm.startDate.setDate(vm.startDate.getDate() - 60);\n }\n\n function generate() {\n var startDate = null;\n if (vm.startDate !== null || vm.startDate !== \"\") {\n startDate = moment(vm.startDate).format('YYYY-MM-DD');\n }\n loadReport(startDate);\n }\n\n function onInit() {\n AuthService.getAuth0Token().then(function (response) {\n vm.token = response.data.accessToken;\n });\n loadReportGroups();\n AnalysisApiService.getLocalization().then(function (data) {\n vm.localization = data;\n vm.pivot = createPivot();\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n\n }\n\n function createPivot() {\n var fm = $(\"#pivotContainer\").flexmonster({\n licenseKey: ENV.FLEXMONSTER_KEY,\n width: '100%',\n height: 700,\n toolbar: true,\n global: {\n localization: vm.localization\n }\n });\n fm.on('dataloaded', function () {\n vm.isLoading = false;\n });\n fm.on('olapstructureerror', function () {\n AuthService.getAuth0Token().then(function (response) {\n vm.token = response.data.accessToken;\n });\n });\n return fm;\n }\n\n function navigate(report, load) {\n\n var group = _.find(vm.reportGroups, function (group) {\n return _.some(group.reports, report);\n });\n if (group === undefined) {\n group = _.first(vm.reportGroups);\n report = undefined;\n }\n vm.selectedGroup = group;\n vm.selectedReport = report;\n\n if (load) {\n loadReport(null);\n }\n }\n\n function loadReportGroups() {\n try {\n AnalysisApiService.getReportGroups().then(function (response) {\n vm.reportGroups = response;\n });\n }\n catch (exception) {\n ToasterService.showError(exception.message, 'error', \"Rapporter\");\n }\n }\n\n function loadReport(startDate) {\n\n try {\n vm.isLoading = true;\n\n var reportText = vm.selectedReport.reportObject;\n if (_.startsWith(vm.selectedReport.reportObject, \"<\")) {\n /* jshint -W117 */\n reportText = fmCovertXmlReport(vm.selectedReport.reportObject);\n /* jshint +W117 */\n }\n var jsonReport = JSON.parse(reportText);\n\n if (jsonReport.dataSource.dataSourceType === \"ocsv\" ||\n jsonReport.dataSource.dataSourceType === \"csv\" ||\n jsonReport.dataSource.type === \"ocsv\" ||\n jsonReport.dataSource.type === \"csv\") {\n\n var dataUrl = DS.defaults.basePath + 'analysis/getCompressedCsvReportData/' + vm.selectedReport.dataSourceId +\n '?startDate=' + startDate + '&token=' + $cookies.getObject('X-JetsoftToken');\n\n jsonReport.dataSource.filename = dataUrl;\n jsonReport.dataSource = assureDataSourceType(jsonReport.dataSource);\n jsonReport.localization = '';\n }\n\n if (jsonReport.dataSource.dataSourceType === \"api\" || jsonReport.dataSource.type === \"api\") {\n jsonReport.dataSource.requestHeaders = {Authorization: \"Bearer \" + vm.token};\n }\n\n jsonReport.dataSource = assureDataSourceType(jsonReport.dataSource);\n\n vm.pivot.setReport(jsonReport);\n vm.pivot.setOptions({\n grid: {\n title: vm.loadedReportPath\n }\n });\n\n vm.pivot.closeFieldsList();\n vm.pivot.refresh();\n vm.loadedReport = vm.selectedReport;\n }\n catch (error) {\n vm.isLoading = false;\n vm.pivot.clear();\n vm.pivot.refresh();\n ToasterService.showError('\"' + vm.selectedReport.name + '\": ' + error.message, 'error', \"Rapporter\");\n }\n }\n\n function moveUp(report) {\n var position = _.indexOf(vm.selectedGroup.reports, report);\n if (position > 0) {\n arrayMove(vm.selectedGroup.reports, position, position - 1);\n var id = \"report_\" + report.id;\n scrollTo(\"report_list\", id, true);\n }\n }\n function moveDown(report) {\n var position = _.indexOf(vm.selectedGroup.reports, report);\n if (position < vm.selectedGroup.reports.length - 1) {\n arrayMove(vm.selectedGroup.reports, position, position + 1);\n var id = \"report_\" + report.id;\n scrollTo(\"report_list\", id, false);\n }\n }\n\n function sortAscending(e) {\n e.preventDefault();\n if (vm.selectedGroup !== undefined && vm.selectedGroup.reports.length > 0) {\n var newSorting = _.orderBy(vm.selectedGroup.reports, 'name', 'asc');\n vm.selectedGroup.reports = newSorting;\n saveSortOrder();\n }\n }\n\n function sortDescending(e) {\n e.preventDefault();\n if (vm.selectedGroup !== undefined && vm.selectedGroup.reports.length > 0) {\n var newSorting = _.orderBy(vm.selectedGroup.reports, 'name', 'desc');\n vm.selectedGroup.reports = newSorting;\n saveSortOrder();\n }\n }\n\n function arrayMove(array, from, to) {\n array.splice(to, 0, array.splice(from, 1)[0]);\n }\n\n\n function scrollTo(containerId, elementId, up) {\n var element = document.getElementById(elementId);\n if (element !== undefined) {\n var y = up ? element.offsetTop - element.offsetHeight : element.offsetTop + element.offsetHeight;\n $(document.getElementById(containerId)).animate({ scrollTop: y }, 0);\n }\n }\n\n function selectTab(tabName) {\n if (tabName === vm.selectedTab) {\n vm.showNavigation = !vm.showNavigation;\n } else {\n vm.showNavigation = true;\n }\n vm.selectedTab = tabName;\n var index = _.findIndex(vm.reportGroups, { name: tabName });\n if (index !== vm.activeTabIndex) {\n vm.selectedReport = undefined;\n }\n vm.activeTabIndex = index;\n vm.selectedGroup = vm.reportGroups[index];\n //console.log(angular.toJson(vm.selectedGroup));\n }\n\n function formatDate(date, formatStr) {\n if (date === undefined) {\n return '';\n }\n return moment(date).format(formatStr);\n }\n\n function copySelectedReport() {\n if (vm.selectedReport !== undefined) {\n\n var report = angular.copy(vm.selectedReport);\n\n report.id = -1;\n report.isShared = false;\n // copy report object changes if loaded report\n if (vm.loadedReport === vm.selectedReport) {\n var reportObj = vm.pivot.getReport();\n reportObj.dataSource.filename = \"\";\n reportObj.dataSource = assureDataSourceType(reportObj.dataSource);\n report.reportObject = JSON.stringify(reportObj);\n }\n\n AnalysisApiService.saveUserReport(report).then(function (response) {\n vm.selectedReport = response.data;\n var group = _.find(vm.reportGroups, { reportGroupType: 'userReport' });\n vm.selectedReport.changed = undefined;\n group.reports.push(vm.selectedReport);\n saveSortOrder();\n\n ToasterService.showSuccess('\"' + vm.selectedReport.name + '\" ' + $translate.instant(\"analysis.wasSaved\"), $translate.instant(\"analysis.reports\"));\n });\n }\n }\n\n function saveReport() {\n var group = _.find(vm.reportGroups, { reportGroupType: 'userReport' });\n var isLoadedReport = vm.loadedReport === vm.selectedReport;\n\n var index = _.indexOf(group.reports, vm.selectedReport);\n if (index > -1) {\n if (isLoadedReport) {\n var reportObj = vm.pivot.getReport();\n reportObj.dataSource.filename = \"\";\n reportObj.dataSource = assureDataSourceType(reportObj.dataSource);\n vm.loadedReport.reportObject = JSON.stringify(reportObj);\n }\n AnalysisApiService.saveUserReport(vm.selectedReport).then(function (response) {\n vm.selectedReport = response.data;\n group.reports[index] = vm.selectedReport;\n\n if (isLoadedReport) {\n vm.loadedReport = vm.selectedReport;\n }\n saveSortOrder();\n\n ToasterService.showSuccess('\"' + vm.selectedReport.name + '\" ' + $translate.instant(\"analysis.wasSaved\"), $translate.instant(\"analysis.reports\"));\n });\n }\n }\n\n function assureDataSourceType(dataSource) {\n if (dataSource.type && dataSource.type.length > 0) {\n dataSource.dataSourceType = dataSource.type;\n } else if (dataSource.dataSourceType && dataSource.dataSourceType.length > 0) {\n dataSource.type = dataSource.dataSourceType;\n }\n\n return dataSource;\n }\n\n function saveSortOrder() {\n\n var group = {\n reportGroupType: 'userReport',\n reports: []\n };\n\n var userReportGroup = _.find(vm.reportGroups, { reportGroupType: 'userReport' });\n\n _.forEach(userReportGroup.reports, function (report) {\n group.reports.push({ id: report.id });\n });\n\n AnalysisApiService.saveUserReportSortOrder(group.reports).then(function (response) {\n });\n\n }\n\n function deleteReport() {\n var group = _.find(vm.reportGroups, { reportGroupType: 'userReport' });\n\n if (_.indexOf(group.reports, vm.selectedReport) > -1) {\n confirmationDialogService.showDialog($translate.instant(\"analysis.confirmDeleteReport\")).then(function (result) {\n if (result === true) {\n\n AnalysisApiService.deleteUserReport(vm.selectedReport).then(function (response) {\n var name = vm.selectedReport.name;\n _.pull(group.reports, vm.selectedReport);\n vm.selectedReport = undefined;\n ToasterService.showSuccess('\"' + name + '\" ' + $translate.instant(\"analysis.wasDeleted\"), $translate.instant(\"analysis.reports\"));\n });\n }\n });\n }\n }\n\n function isValidDate(date) {\n var valid = date !== undefined;\n if (valid) {\n var momentDate = moment(date);\n valid = momentDate.isValid() && moment(\"1970-01-01\").isBefore(momentDate);\n }\n return valid;\n }\n function canPublishReport() {\n return AuthService.canAccess('analysis', 'update');\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('analysis.userReports', {\n url: '/userReports',\n templateUrl: 'main/analysis/userReports/userReports.tpl.html',\n controller: 'AnalysisUserReportsController as vm',\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction AnalysisUserReportsController(AnalysisApiService, ToasterService, loadSpinnerService) {\n var vm = this;\n}\n\nangular.module('analysis.userReports', [])\n .config(stateConfig)\n .controller('AnalysisUserReportsController', AnalysisUserReportsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.accounts.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/accounts/account/account.tpl.html',\n controller: 'AccountController as vm'\n }},\n resolve: {\n account: function() { return {}; },\n isNewAccount: function() {return true;}\n }\n });\n\n $stateProvider.state('base.accounts.account', {\n url:'/{accountId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/accounts/account/account.tpl.html',\n controller: 'AccountController as vm'\n }},\n resolve: {\n account: accountResolver,\n isNewAccount: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction accountResolver($stateParams, AccountsApiService) {\n return AccountsApiService.getAccount($stateParams.accountId);\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, AccountsApiService) {\n return AccountsApiService.getLanguages();\n}\n\n// @ngInject\nfunction AccountController($state, account, loadSpinnerService, AccountsApiService, ToasterService, confirmationDialogService, $translate, isNewAccount) {\n var vm = this;\n\n var accountCopy = {};\n\n vm.account = account;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveAccount = saveAccount;\n vm.deleteAccount = deleteAccount;\n\n vm.isNewAccount = isNewAccount;\n vm.isEditing = vm.isNewAccount;\n\n vm.isAccountNumberValid = isAccountNumberValid;\n vm.isAllInformationValid = isAllInformationValid;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewAccount) {\n vm.account = {};\n }\n\n appendLocalizations(vm.account, vm.languages);\n\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n accountCopy = angular.copy(vm.account);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.account = accountCopy;\n vm.isEditing = false;\n }\n\n function saveAccount() {\n if (vm.isNewAccount) {\n saveNewAccount();\n } else {\n updateAccount();\n }\n }\n\n function saveNewAccount() {\n loadSpinnerService.start('mainSpinner');\n AccountsApiService.createAccount(vm.account).then(function(response) {\n vm.account = response;\n prepareData();\n vm.isNewAccount = false;\n vm.isEditing = false;\n $state.go('base.accounts.account', {accountId: vm.account.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateAccount() {\n loadSpinnerService.start('mainSpinner');\n\n AccountsApiService.updateAccount(vm.account).then(function(response) {\n vm.account = response;\n prepareData();\n vm.isNewAccount = false;\n vm.isEditing = false;\n $state.go('base.accounts.account', {accountId: vm.account.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteAccount() {\n confirmationDialogService\n .showDialog($translate.instant('account.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n AccountsApiService.deleteAccount(vm.account.id).then(function(response) {\n vm.account = response;\n prepareData();\n vm.isNewAccount = false;\n vm.isEditing = false;\n $state.go('base.accounts');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(account) {\n account.showEditForm = !account.showEditForm;\n }\n\n function prepareData() {\n if (vm.account === undefined) {\n return;\n }\n\n vm.accountCopy = angular.copy(vm.account);\n }\n\n function isAllInformationValid() {\n return isAccountNumberValid();\n }\n\n function isAccountNumberValid() {\n if (!vm.account.accountNumber) { return false; }\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('accounts.account', [])\n .config(stateConfig)\n .controller('AccountController', AccountController);\n","// @ngInject\nfunction AccountsApiService(ResourcesService) {\n\n var endpoint = 'accounts';\n\n return {\n getAccounts: ResourcesService.apiFactory.get(endpoint),\n getAccount: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createAccount: ResourcesService.apiFactory.create(endpoint, 'Account'),\n updateAccount: ResourcesService.apiFactory.update(endpoint, 'Account'),\n deleteAccount: ResourcesService.apiFactory.delete(endpoint, 'Account')\n };\n\n}\n\nangular\n .module('accounts.api', [])\n .factory('AccountsApiService', AccountsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.accounts', {\n url: '/accounts?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/accounts/accounts.tpl.html',\n controller: 'AccountsController as vm'\n }},\n resolve: {\n accounts: accountsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction accountsResolver(AccountsApiService, $stateParams) {\n return AccountsApiService.getAccounts({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction AccountsController($rootScope, $state, $scope, accounts, AccountsApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.accounts = accounts;\n vm.selectedAccountId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.accountId; }, function(newValue, oldValue) {\n vm.selectedAccountId = parseInt($state.params.accountId,10);\n });\n $rootScope.$on('Account.Inserted', function(event, response) {\n });\n $rootScope.$on('Account.Updated', function(event, response) {\n });\n $rootScope.$on('Account.Deleted', function(event, response) {\n });\n $rootScope.$on('Account.Changed', function(event, response) {\n loadAccounts();\n });\n }\n\n function loadAccounts() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n AccountsApiService.getAccounts(request).then(function(response) {\n vm.accounts = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadAccounts();\n }\n\n}\n\nangular\n .module('base.accounts', ['accounts.api','accounts.account'])\n .config(stateConfig)\n .controller('AccountsController', AccountsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.articlecollections.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/articlecollections/articlecollection/articlecollection.tpl.html',\n controller: 'ArticleCollectionController as vm'\n }},\n resolve: {\n collection: function() { return {\n collectionCode: '',\n collectionDescription: '',\n articleCollectionType: 0,\n currentBehaviour: 0,\n currentRank: 0,\n duration: 360,\n isArticleSeason: true,\n isOrderSeason: false,\n offset: -180,\n currencies: []\n }; },\n isNewCollection: function() { return true; }\n }\n });\n $stateProvider.state('base.articlecollections.articlecollection', {\n url:'/{collectionId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/articlecollections/articlecollection/articlecollection.tpl.html',\n controller: 'ArticleCollectionController as vm'\n }},\n resolve: {\n collection: collectionResolver,\n isNewCollection: function() { return false; }\n }\n });\n}\n\n// @ngInject\nfunction collectionResolver($stateParams, ArticleCollectionsApiService) {\n return ArticleCollectionsApiService.getArticleCollectionById($stateParams.collectionId);\n}\n\n// @ngInject\nfunction ArticleCollectionController($window, $state, $scope, $translate, collection,\n loadSpinnerService, ArticleCollectionsApiService,\n ToasterService, isNewCollection) {\n var vm = this;\n\n //Properties\n var collectionCopy = {};\n vm.isNewCollection = isNewCollection;\n vm.isEditing = vm.isNewCollection;\n vm.collection = collection;\n vm.currentBehaviours = [];\n vm.articleCollectionTypes = [];\n\n //Methods\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveCollection = saveCollection;\n vm.isAllInformationValid = isAllInformationValid;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n\n $scope.$watch(function() { return vm.collection.selectedCurrentBehaviour; }, function(newValue, oldValue) {\n if (newValue.id !== oldValue.id) {\n vm.collection.currentBehaviour = newValue.id;\n }\n });\n $scope.$watch(function() { return vm.collection.selectedArticleCollectionType; }, function(newValue, oldValue) {\n if (newValue.id !== oldValue.id) {\n vm.collection.articleCollectionType = newValue.id;\n }\n });\n\n if (isNewCollection) {\n loadSpinnerService.start('mainSpinner');\n vm.collections = [];\n ArticleCollectionsApiService.listAllArticleCollections().then(function(response) {\n vm.collections = response;\n vm.collections = _.filter(vm.collections, function(c) { return c.toDate; });\n if (!isNewCollection) { vm.collections = _.filter(vm.collections, function(c) { return c.id !== vm.collection.id; }); }\n vm.collections = _.sortBy(vm.collections, ['toDate']);\n\n //Check which should be the next collection from date\n var lastCollection = vm.collections[vm.collections.length - 1];\n var lastToDate = lastCollection.toDate;\n var fromDate = new Date(lastToDate);\n fromDate.setDate(fromDate.getDate() + 1);\n var toDate = new Date(lastToDate);\n toDate.setDate(toDate.getDate() + 2);\n\n vm.collection.fromDate = fromDate;\n vm.collection.toDate = toDate;\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function setCurrentBehaviours() {\n //DoNotSetCurrent, SetCurrent, SetNotCurrent\n vm.currentBehaviours = [];\n vm.currentBehaviours.push({ id: 0, description: $translate.instant('articlecollection.currentBehaviourDoNotSetCurrent') }); //\"DoNotSetCurrent\"\n vm.currentBehaviours.push({ id: 1, description: $translate.instant('articlecollection.currentBehaviourSetCurrent') }); //\"SetCurrent\"\n vm.currentBehaviours.push({ id: 2, description: $translate.instant('articlecollection.currentBehaviourSetNotCurrent') }); //\"SetNotCurrent\"\n }\n\n function setArticleCollectionTypes() {\n //Static, Rolling\n vm.articleCollectionTypes = [];\n vm.articleCollectionTypes.push({ id: 0, description: $translate.instant('articlecollection.articleCollectionTypeStatic') }); //\"Static\"\n vm.articleCollectionTypes.push({ id: 1, description: $translate.instant('articlecollection.articleCollectionTypeRolling') }); //\"Rolling\"\n }\n\n function enableEditing() {\n collectionCopy = angular.copy(vm.collection);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.collection = collectionCopy;\n vm.isEditing = false;\n }\n\n function saveCollection() {\n vm.collections = [];\n ArticleCollectionsApiService.listAllArticleCollections().then(function(response) {\n vm.collections = response;\n vm.collections = _.filter(vm.collections, function(c) { return c.toDate; });\n if (!isNewCollection) { vm.collections = _.filter(vm.collections, function(c) { return c.id !== vm.collection.id; }); }\n vm.collections = _.sortBy(vm.collections, ['toDate']);\n\n vm.collection.collectionDescription.trim();\n\n //Check which should be the next collection from date\n // var lastCollection = vm.collections[vm.collections.length - 1];\n // var lastToDate = new Date(lastCollection.toDate);\n // var nextDate = new Date(lastToDate.toDateString());\n // nextDate.setDate(nextDate.getDate() + 1);\n // var cleanedFromDate = new Date(new Date(vm.collection.fromDate).toDateString());\n // var cleanedToDate = new Date(new Date(vm.collection.toDate).toDateString());\n\n // console.log('cleanedFromDate: ' + cleanedFromDate.getTime() + ', nextDate: ' + nextDate.getTime());\n\n // if (!vm.collection.collectionCode || vm.collection.collectionCode === 0) {\n // ToasterService.showError($translate.instant('articlecollection.errorCollectionCodeEmpty'), $translate.instant('common.error'));\n // $('#collectionCode').focus();\n if (vm.collection.collectionCode && vm.isNewCollection && _.find(response, function(r) { return r.collectionCode === vm.collection.collectionCode; })) {\n ToasterService.showError($translate.instant('articlecollection.errorCollectionCodeAlreadyPresent'), $translate.instant('common.error'));\n $('#collectionCode').focus();\n }\n // else if (vm.collections.length > 0 &&\n // vm.collection.articleCollectionType === 0 &&\n // cleanedFromDate.getTime() >= cleanedToDate.getTime()) {\n // //If from date is after to date\n // vm.collection.toDate = new Date(vm.collection.fromDate);\n // ToasterService.showError($translate.instant('articlecollection.errorFromDateAfterToDate'), $translate.instant('common.error'));\n // } else if (vm.collections.length > 0 &&\n // vm.collection.articleCollectionType === 0 &&\n // cleanedFromDate.getTime() < nextDate.getTime()) {\n // //Confirm to save when from-date is before as to-date of last collection\n // confirmationDialogService.showDialog($translate.instant('articlecollection.confirmDatesNotAligning') + ' Senaste säsong: ' + lastCollection.collectionCode + ' \"' + lastCollection.collectionDescription + '\", från och med-datum: ' + new Date(lastToDate.toDateString()).toDateString()).then(function (result) {\n // if (result === true) {\n // saveConfirmedCollection();\n // } else {\n // vm.collection.fromDate = new Date(nextDate.toDateString());\n // ToasterService.showError($translate.instant('articlecollection.dateWasAdjusted'), $translate.instant('common.information'));\n // }\n // });\n //} else {\n\n if (isNewCollection) {\n saveConfirmedCollection();\n } else {\n updateConfirmedCollection();\n }\n //}\n }, function(error) {\n console.log(error);\n });\n }\n\n function saveConfirmedCollection() {\n var request = {\n articleCollectionType: vm.collection.selectedArticleCollectionType.id,\n collectionCode: vm.collection.collectionCode,\n collectionDescription: vm.collection.collectionDescription.trim(),\n currentBehaviour: vm.collection.selectedCurrentBehaviour.id,\n duration: vm.collection.duration,\n fromDate: getFullDate(vm.collection.fromDate),\n offset: vm.collection.offset,\n toDate: getFullDate(vm.collection.toDate)\n };\n\n loadSpinnerService.start('mainSpinner');\n ArticleCollectionsApiService.saveArticleCollection(request).then(function(response) {\n $state.go('base.articlecollections.articlecollection', { collectionId: response.articleCollectionId });\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getFullDate(date) {\n var year = new Date(date).getFullYear();\n var month = zeroFill(new Date(date).getMonth() + 1, 2);\n var day = zeroFill(new Date(date).getDate(), 2);\n\n return '' + year + '-' + month + '-' + day;\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n // eslint-disable-next-line wrap-regex\n return new Array(width + (/\\./.test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function updateConfirmedCollection() {\n var request = {\n articleCollectionId: vm.collection.id,\n collectionDescription: vm.collection.collectionDescription.trim(),\n currentBehaviour: vm.collection.selectedCurrentBehaviour.id,\n duration: vm.collection.duration,\n fromDate: getFullDate(vm.collection.fromDate),\n offset: vm.collection.offset,\n toDate: getFullDate(vm.collection.toDate)\n };\n\n loadSpinnerService.start('mainSpinner');\n ArticleCollectionsApiService.updateArticleCollection(request).then(function(response) {\n $window.location.reload();\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function toggleDisplayForm(collection) {\n collection.showEditForm = !collection.showEditForm;\n }\n\n function prepareData() {\n if (vm.collection === undefined) {\n return;\n }\n\n vm.collectionCopy = angular.copy(vm.collection);\n\n setCurrentBehaviours();\n setArticleCollectionTypes();\n\n vm.collection.selectedCurrentBehaviour = vm.currentBehaviours.find(function(element) { return element.id === vm.collection.currentBehaviour; });\n vm.collection.selectedArticleCollectionType = vm.articleCollectionTypes.find(function(element) { return element.id === vm.collection.articleCollectionType; });\n }\n\n function isAllInformationValid() {\n //return vm.collection.collectionCode.length > 0 && vm.collection.collectionDescription.length > 0;\n return true;\n }\n}\n\nangular\n .module('articlecollections.articlecollection', [])\n .config(stateConfig)\n .controller('ArticleCollectionController', ArticleCollectionController);\n","// @ngInject\nfunction ArticleCollectionsApiService(ResourcesService) {\n\n var endpoint = 'articlecollections';\n\n return {\n listAllArticleCollections: ResourcesService.apiFactory.get(endpoint + '/briefs'),\n listAllCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies'),\n getArticleCollectionById: ResourcesService.apiFactory.get(endpoint),\n saveArticleCollection: ResourcesService.apiFactory.save(endpoint + '/save', 'ArticleCollection'),\n updateArticleCollection: ResourcesService.apiFactory.save(endpoint + '/update', 'ArticleCollection')\n };\n}\n\nangular\n .module('articlecollections.api', [])\n .factory('ArticleCollectionsApiService', ArticleCollectionsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.articlecollections', {\n url: '/articlecollections',\n views: {\n 'baseList': {\n templateUrl: 'main/base/articlecollections/articlecollections.tpl.html',\n controller: 'ArticleCollectionsController as vm'\n }},\n resolve: {\n collections: collectionsResolver\n }\n });\n}\n\n// @ngInject\nfunction collectionsResolver(ArticleCollectionsApiService) {\n return ArticleCollectionsApiService.listAllArticleCollections();\n}\n\n// @ngInject\nfunction ArticleCollectionsController($rootScope, $state, $scope, collections, ArticleCollectionsApiService, loadSpinnerService) {\n var vm = this;\n\n //Properties\n vm.currentUser = $rootScope.currentUser;\n vm.collections = collections;\n vm.selectedCollectionId = 0;\n vm.searchTerm = '';\n vm.currentPage = 1;\n\n //Methods\n vm.searchTermChange = searchTermChange;\n vm.getFullDate = getFullDate;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.collectionId; }, function(newValue, oldValue) {\n vm.selectedCollectionId = parseInt($state.params.collectionId,10);\n });\n $rootScope.$on('ArticleCollection.Inserted', function(event, response) {\n });\n $rootScope.$on('ArticleCollection.Updated', function(event, response) {\n });\n $rootScope.$on('ArticleCollection.Deleted', function(event, response) {\n });\n $rootScope.$on('ArticleCollection.Changed', function(event, response) {\n loadCollections();\n });\n }\n\n function loadCollections() {\n loadSpinnerService.start('mainSpinner');\n ArticleCollectionsApiService.listAllArticleCollections().then(function(response) {\n vm.collections = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadCollections();\n }\n\n function getFullDate(date) {\n var year = new Date(date).getFullYear();\n var month = zeroFill(new Date(date).getMonth() + 1, 2);\n var day = zeroFill(new Date(date).getDate(), 2);\n\n return '' + year + '-' + month + '-' + day;\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n // eslint-disable-next-line wrap-regex\n return new Array(width + (/\\./.test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n}\n\nangular\n .module('base.articlecollections', ['articlecollections.api', 'articlecollections.articlecollection'])\n .config(stateConfig)\n .controller('ArticleCollectionsController', ArticleCollectionsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.articletypes.articletype', {\n url: '/{articleTypeId}',\n views: {\n \"baseView@base\": {\n templateUrl: 'main/base/articletypes/articletype/articletype.tpl.html',\n controller: 'ArticleTypeController as vm'\n }\n },\n resolve: {\n articleType: articleTypesResolver,\n createNew: function () { return false; }\n }\n });\n\n $stateProvider.state('base.articletypes.new', {\n url: '/new',\n views: {\n \"baseView@base\": {\n templateUrl: 'main/base/articletypes/articletype/articletype.tpl.html',\n controller: 'ArticleTypeController as vm'\n }\n },\n resolve: {\n articleType: function () { return {}; },\n createNew: function () { return true; }\n }\n });\n}\n\n\n\n// @ngInject\nfunction articleTypesResolver($stateParams, ArticleTypesApiService) {\n return ArticleTypesApiService.getArticleType($stateParams.articleTypeId);\n}\n\n\n// @ngInject\nfunction ArticleTypeController($state, articleType, loadSpinnerService, ArticleTypesApiService, createNew, $scope, $translate, ToasterService, confirmationDialogService) {\n var vm = this;\n\n vm.articleType = articleType;\n vm.isEditing = false;\n vm.isNew = false;\n vm.articleTypeCopy = {};\n\n // functions\n vm.save = save;\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.delete = deleteArticleType;\n\n // initialize\n if (createNew) {\n vm.isNew = true;\n vm.isEditing = true;\n }\n\n function save() {\n ArticleTypesApiService.save(vm.articleType).then(function (result) {\n vm.articleType.id = result.data.id;\n vm.isEditing = false;\n vm.isNew = false;\n ToasterService.showSuccess('\"' + vm.articleType.name + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"base.articletypes\"));\n\n }, function (error) {\n ToasterService.showError(error.message, $translate.instant(\"base.articletypes\"));\n }).finally(function () {\n vm.isEditing = false;\n vm.isNew = false;\n $state.go('base.articletypes.articletype', { articleTypeId: vm.articleType.id });\n });\n }\n\n function enableEditing() {\n vm.articleTypeCopy = angular.copy(vm.articleType);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.articleType = angular.copy(vm.articleTypeCopy);\n vm.isEditing = false;\n }\n\n function deleteArticleType() {\n\n confirmationDialogService.showDialog($translate.instant(\"articletype.confirmDelete\")).then(function (deleteConfirmed) {\n if (deleteConfirmed === true) {\n ArticleTypesApiService.deleteArticleType(vm.articleType.id).then(function () {\n ToasterService.showSuccess('\"' + vm.articleType.name + '\" ' + $translate.instant(\"common.wasDeleted\"), $translate.instant(\"base.articletypes\"));\n }, function (error) {\n ToasterService.showError($translate.instant(error.data.message), $translate.instant(\"base.articletypes\"));\n }).finally(function () {\n vm.isEditing = false;\n vm.isNew = false;\n $state.go('base.articletypes');\n });\n }\n });\n }\n}\n\n\nangular\n .module('articletypes.articletype', [])\n .config(stateConfig)\n .controller('ArticleTypeController', ArticleTypeController);\n","// @ngInject\nfunction ArticleTypesApiService($q, $rootScope, DS, DSHttpAdapter) {\n\n return {\n getAll: getAll,\n getArticleType: getArticleType,\n save: save\n };\n\n function getAll(filter) {\n var deferred = $q.defer();\n\n var params = {};\n if (!_.isEmpty(filter)) {\n params.filter = filter;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/articletypes', { params: params }).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function getArticleType(id) {\n var deferred = $q.defer();\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/articletypes/' + id)\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function save(articleType) {\n var deferred = $q.defer();\n DSHttpAdapter.PUT(DS.defaults.basePath + 'products/articletypes/save/' + articleType.id, articleType).then(function (response) {\n deferred.resolve(response);\n $rootScope.$emit('ArticleType.Updated', response.data);\n $rootScope.$emit('ArticleType.Changed', response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n}\n\n\nangular.module('articletypes.api', [])\n .factory('ArticleTypesApiService', ArticleTypesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.articletypes', {\n url: '/articletypes?searchTerm',\n views: {\n 'baseList@base': {\n templateUrl: 'main/base/articletypes/articletypes.tpl.html',\n controller: 'ArticleTypesController as vm'\n }\n },\n resolve: {\n articleTypes: articleTypesResolver,\n searchTerm: searchTermResolver\n }\n });\n}\n\n\n// @ngInject\nfunction articleTypesResolver(ArticleTypesApiService, $stateParams) {\n return ArticleTypesApiService.getAll($stateParams.searchTerm);\n}\n\n// @ngInject\nfunction searchTermResolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction ArticleTypesController($rootScope, $state, articleTypes, $scope, ArticleTypesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n //Properties\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.articleTypes = articleTypes;\n vm.selectedArticleTypeId = 0;\n\n //Methods\n vm.searchTermChanged = searchTermChanged;\n\n activate();\n\n function activate() {\n $rootScope.$on('ArticleType.Changed', function () {\n loadArticleTypes();\n });\n }\n function searchTermChanged() {\n loadArticleTypes();\n }\n\n function loadArticleTypes() {\n loadSpinnerService.start('mainSpinner');\n ArticleTypesApiService.getAll(vm.searchTerm).then(function (response) {\n vm.articleTypes = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n}\n\nangular\n .module('base.articletypes', ['articletypes.api','articletypes.articletype'])\n .config(stateConfig)\n .controller('ArticleTypesController', ArticleTypesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base', {\n url: '/base',\n parent: 'main',\n abstract: true,\n templateUrl: \"main/base/base.tpl.html\",\n controller: \"BaseController as vm\"\n });\n}\n\n// @ngInject\nfunction BaseController() {\n var vm = this;\n}\n\nangular\n .module('main.base', ['base.dashboard', 'base.countries', 'base.articlecollections', 'base.articletypes', 'base.ordercollections', 'base.currencies', 'base.paymentterms', 'base.deliveryterms', 'base.deliveryplanningtemplates', 'base.shippingmethods', 'base.customergroups', 'base.ordertypes', 'base.invoicetypes', 'base.accounts', 'base.vats', 'base.paymenttypes', 'base.returnreasons'])\n .config(stateConfig)\n .controller('BaseController', BaseController);\n","// @ngInject\nfunction CountriesApiService(ResourcesService) {\n\n var endpoint = 'countries';\n\n return {\n getCountries: ResourcesService.apiFactory.get(endpoint),\n getCountryById: ResourcesService.apiFactory.get(endpoint),\n createCountry: ResourcesService.apiFactory.create(endpoint, 'Country'),\n updateCountry: ResourcesService.apiFactory.update(endpoint, 'Country'),\n deleteCountry: ResourcesService.apiFactory.delete(endpoint, 'Country')\n };\n}\n\nangular\n .module('countries.api', [])\n .factory('CountriesApiService', CountriesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.countries', {\n url: '/countries?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/countries/countries.tpl.html',\n controller: 'CountriesController as vm'\n }},\n resolve: {\n countries: countriesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction countriesResolver(CountriesApiService, $stateParams) {\n return CountriesApiService.getCountries({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction CountriesController($rootScope, $state, $scope, countries, CountriesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.countries = countries;\n vm.selectedCountryId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.countryId; }, function(newValue, oldValue) {\n vm.selectedCountryId = parseInt($state.params.countryId,10);\n });\n $rootScope.$on('Country.Inserted', function(event, response) {\n });\n $rootScope.$on('Country.Updated', function(event, response) {\n });\n $rootScope.$on('Country.Deleted', function(event, response) {\n });\n $rootScope.$on('Country.Changed', function(event, response) {\n loadCountries();\n });\n }\n\n function loadCountries() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n CountriesApiService.getCountries(request).then(function(response) {\n vm.countries = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadCountries();\n }\n\n}\n\nangular\n .module('base.countries', ['countries.api','countries.country'])\n .config(stateConfig)\n .controller('CountriesController', CountriesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.countries.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/countries/country/country.tpl.html',\n controller: 'CountryController as vm'\n }},\n resolve: {\n country: function() { return {}; },\n isNewCountry: function() {return true;},\n vats: vatsResolver\n }\n });\n $stateProvider.state('base.countries.country', {\n url:'/{countryId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/countries/country/country.tpl.html',\n controller: 'CountryController as vm'\n }},\n resolve: {\n country: countryResolver,\n vats: vatsResolver,\n isNewCountry: function() {return false;}\n }\n });\n}\n\n// @ngInject\nfunction countryResolver($stateParams, CountriesApiService) {\n return CountriesApiService.getCountryById($stateParams.countryId);\n}\n\n// @ngInject\nfunction vatsResolver(VatsApiService) {\n return VatsApiService.getVats();\n}\n\n// @ngInject\nfunction CountryController($state, country, loadSpinnerService, CountriesApiService, ToasterService, confirmationDialogService, $translate, isNewCountry, vats) {\n var vm = this;\n\n var countryCopy = {};\n\n //Properties\n vm.isNewCountry = isNewCountry;\n vm.isEditing = vm.isNewCountry;\n vm.country = country;\n vm.vats = vats;\n\n //Methods\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveCountry = saveCountry;\n vm.deleteCountry = deleteCountry;\n vm.isCountryCodeValid = isCountryCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewCountry) {\n vm.country = {};\n }\n appendVats(vm.country, vm.vats);\n }\n\n function appendVats(obj, vats) {\n if (!obj.vats) {\n obj.vats = [];\n }\n\n _.forEach(vats, function(vat) {\n var countryVats = _.filter(obj.vats, { vat: { id: vat.id}});\n var countryVat;\n if (countryVats.length === 0) {\n countryVat = { vat: vat, vatRate: vat.vatRate};\n obj.vats.push(countryVat);\n }\n });\n }\n\n function enableEditing() {\n countryCopy = angular.copy(vm.country);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.country = countryCopy;\n vm.isEditing = false;\n }\n\n function saveCountry() {\n if (vm.isNewCountry) {\n saveNewCountry();\n } else {\n updateCountry();\n }\n }\n\n function saveNewCountry() {\n loadSpinnerService.start('mainSpinner');\n CountriesApiService.createCountry(vm.country).then(function(response) {\n vm.country = response;\n prepareData();\n vm.isNewCountry = false;\n vm.isEditing = false;\n $state.go('base.countries.country', {countryId: vm.country.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateCountry() {\n loadSpinnerService.start('mainSpinner');\n\n CountriesApiService.updateCountry(vm.country).then(function(response) {\n vm.country = response;\n prepareData();\n vm.isNewCountry = false;\n vm.isEditing = false;\n $state.go('base.countries.country', {countryId: vm.country.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteCountry() {\n confirmationDialogService\n .showDialog($translate.instant('country.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n CountriesApiService.deleteCountry(vm.country.id).then(function(response) {\n vm.country = response;\n prepareData();\n vm.isNewCountry = false;\n vm.isEditing = false;\n $state.go('base.countries');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(country) {\n country.showEditForm = !country.showEditForm;\n }\n\n function prepareData() {\n if (vm.country === undefined) {\n return;\n }\n\n vm.countryCopy = angular.copy(vm.country);\n }\n\n function isAllInformationValid() {\n return isCountryCodeValid();\n }\n\n function isCountryCodeValid() {\n //if (vm.country && vm.country.code && vm.country.code.length > 3) { return false; }\n\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('countries.country', [])\n .config(stateConfig)\n .controller('CountryController', CountryController);\n","// @ngInject\nfunction CurrenciesApiService($q, $rootScope, DS, DSHttpAdapter) {\n\n return {\n getAll: getAll,\n getCurrency: getCurrency,\n save: save,\n deleteCurrency: deleteCurrency\n };\n\n function getAll(filter) {\n var deferred = $q.defer();\n\n var params = {};\n if (!_.isEmpty(filter)) {\n params.filter = filter;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'currencies', { params: params }).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function getCurrency(id) {\n var deferred = $q.defer();\n DSHttpAdapter.GET(DS.defaults.basePath + 'currencies/' + id)\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function save(currency) {\n var deferred = $q.defer();\n DSHttpAdapter.POST(DS.defaults.basePath + 'currencies/saveCurrency/', currency).then(function (response) {\n deferred.resolve(response);\n $rootScope.$emit('Currency.Updated', response.data);\n $rootScope.$emit('Currency.Changed', response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function deleteCurrency(id) {\n var deferred = $q.defer();\n DSHttpAdapter.GET(DS.defaults.basePath + 'currencies/deleteCurrency/' + id).then(function (response) {\n deferred.resolve(response);\n $rootScope.$emit('Currency.Deleted', response.data);\n $rootScope.$emit('Currency.Changed', response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n}\n\n\nangular.module('currencies.api', [])\n .factory('CurrenciesApiService', CurrenciesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.currencies', {\n url: '/currencies?searchTerm',\n views: {\n 'baseList@base': {\n templateUrl: 'main/base/currencies/currencies.tpl.html',\n controller: 'CurrenciesController as vm'\n }\n },\n resolve: {\n currencies: currenciesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n\n// @ngInject\nfunction currenciesResolver(CurrenciesApiService, $stateParams) {\n return CurrenciesApiService.getAll($stateParams.searchTerm);\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction CurrenciesController($rootScope, $state, currencies, $scope, CurrenciesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currencies = currencies;\n vm.selectedCurrencyId = 0;\n\n\n // functions\n vm.searchTermChanged = searchTermChanged;\n\n activate();\n\n function activate() {\n $rootScope.$on('Currency.Changed', function (event, response) {\n loadCurrencies();\n });\n }\n function searchTermChanged() {\n loadCurrencies();\n }\n\n function loadCurrencies() {\n loadSpinnerService.start('mainSpinner');\n CurrenciesApiService.getAll(vm.searchTerm).then(function (response) {\n vm.currencies = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n}\n\nangular\n .module('base.currencies', ['currencies.api','currencies.currency'])\n .config(stateConfig)\n .controller('CurrenciesController', CurrenciesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.currencies.currency', {\n url: '/{currencyId}',\n views: {\n \"baseView@base\": {\n templateUrl: 'main/base/currencies/currency/currency.tpl.html',\n controller: 'CurrencyController as vm'\n }\n },\n resolve: {\n currency: currenciesResolver,\n createNew: function () { return false; }\n }\n });\n\n $stateProvider.state('base.currencies.new', {\n url: '/new',\n views: {\n \"baseView@base\": {\n templateUrl: 'main/base/currencies/currency/currency.tpl.html',\n controller: 'CurrencyController as vm'\n }\n },\n resolve: {\n currency: function () { return {}; },\n createNew: function () { return true; }\n }\n });\n}\n\n\n\n// @ngInject\nfunction currenciesResolver($stateParams, CurrenciesApiService) {\n return CurrenciesApiService.getCurrency($stateParams.currencyId);\n}\n\n\n// @ngInject\nfunction CurrencyController($state, currency, loadSpinnerService, CurrenciesApiService, createNew, $scope, $translate, ToasterService, confirmationDialogService) {\n var vm = this;\n\n vm.currency = currency;\n vm.isEditing = false;\n vm.isNew = false;\n vm.currencyCopy = {};\n\n // functions\n vm.save = save;\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.delete = deleteCurrency;\n\n // initialize\n if (createNew) {\n vm.isNew = true;\n vm.isEditing = true;\n }\n\n function save() {\n CurrenciesApiService.save(vm.currency).then(function (result) {\n vm.currency.id = result.data.id;\n vm.isEditing = false;\n vm.isNew = false;\n ToasterService.showSuccess('\"' + vm.currency.code + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"base.currencies\"));\n\n }, function (error) {\n ToasterService.showError(error.message, $translate.instant(\"base.currencies\"));\n }).finally(function () {\n vm.isEditing = false;\n vm.isNew = false;\n $state.go('base.currencies.currency', { currencyId: vm.currency.id });\n });\n }\n\n function enableEditing() {\n vm.currencyCopy = angular.copy(vm.currency);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.currency = angular.copy(vm.currencyCopy);\n vm.isEditing = false;\n }\n\n function deleteCurrency() {\n\n confirmationDialogService.showDialog($translate.instant(\"currency.confirmDelete\")).then(function (deleteConfirmed) {\n if (deleteConfirmed === true) {\n CurrenciesApiService.deleteCurrency(vm.currency.id).then(function (result) {\n ToasterService.showSuccess('\"' + vm.currency.code + '\" ' + $translate.instant(\"common.wasDeleted\"), $translate.instant(\"base.currencies\"));\n }, function (error) {\n ToasterService.showError($translate.instant(error.data.message), $translate.instant(\"base.currencies\"));\n }).finally(function () {\n vm.isEditing = false;\n vm.isNew = false;\n $state.go('base.currencies');\n });\n }\n });\n }\n}\n\n\nangular\n .module('currencies.currency', [])\n .config(stateConfig)\n .controller('CurrencyController', CurrencyController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.customergroups.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/customergroups/customergroup/customergroup.tpl.html',\n controller: 'CustomerGroupController as vm'\n }},\n resolve: {\n customergroup: function() { return {}; },\n isNewCustomerGroup: function() {return true;}\n }\n });\n\n $stateProvider.state('base.customergroups.customergroup', {\n url:'/{customergroupId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/customergroups/customergroup/customergroup.tpl.html',\n controller: 'CustomerGroupController as vm'\n }},\n resolve: {\n customergroup: customergroupResolver,\n isNewCustomerGroup: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction customergroupResolver($stateParams, CustomerGroupsApiService) {\n return CustomerGroupsApiService.getCustomerGroup($stateParams.customergroupId);\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, CustomerGroupsApiService) {\n return CustomerGroupsApiService.getLanguages();\n}\n\n// @ngInject\nfunction CustomerGroupController($state, customergroup, loadSpinnerService, CustomerGroupsApiService, ToasterService, confirmationDialogService, $translate, isNewCustomerGroup) {\n var vm = this;\n\n var customergroupCopy = {};\n\n vm.customergroup = customergroup;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveCustomerGroup = saveCustomerGroup;\n vm.deleteCustomerGroup = deleteCustomerGroup;\n\n vm.isNewCustomerGroup = isNewCustomerGroup;\n vm.isEditing = vm.isNewCustomerGroup;\n\n vm.isCustomerGroupCodeValid = isCustomerGroupCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewCustomerGroup) {\n vm.customergroup = {};\n }\n\n }\n\n function enableEditing() {\n customergroupCopy = angular.copy(vm.customergroup);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.customergroup = customergroupCopy;\n vm.isEditing = false;\n }\n\n function saveCustomerGroup() {\n if (vm.isNewCustomerGroup) {\n saveNewCustomerGroup();\n } else {\n updateCustomerGroup();\n }\n }\n\n function saveNewCustomerGroup() {\n loadSpinnerService.start('mainSpinner');\n CustomerGroupsApiService.createCustomerGroup(vm.customergroup).then(function(response) {\n vm.customergroup = response;\n prepareData();\n vm.isNewCustomerGroup = false;\n vm.isEditing = false;\n $state.go('base.customergroups.customergroup', {customergroupId: vm.customergroup.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateCustomerGroup() {\n loadSpinnerService.start('mainSpinner');\n\n CustomerGroupsApiService.updateCustomerGroup(vm.customergroup).then(function(response) {\n vm.customergroup = response;\n prepareData();\n vm.isNewCustomerGroup = false;\n vm.isEditing = false;\n $state.go('base.customergroups.customergroup', {customergroupId: vm.customergroup.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteCustomerGroup() {\n confirmationDialogService\n .showDialog($translate.instant('customergroup.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n CustomerGroupsApiService.deleteCustomerGroup(vm.customergroup.id).then(function(response) {\n vm.customergroup = response;\n prepareData();\n vm.isNewCustomerGroup = false;\n vm.isEditing = false;\n $state.go('base.customergroups');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(customergroup) {\n customergroup.showEditForm = !customergroup.showEditForm;\n }\n\n function prepareData() {\n if (vm.customergroup === undefined) {\n return;\n }\n\n vm.customergroupCopy = angular.copy(vm.customergroup);\n }\n\n function isAllInformationValid() {\n return isCustomerGroupCodeValid();\n }\n\n function isCustomerGroupCodeValid() {\n if (!vm.customergroup.code) { return false; }\n if (vm.customergroup.code.length > 20) { return false; }\n\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('customergroups.customergroup', [])\n .config(stateConfig)\n .controller('CustomerGroupController', CustomerGroupController);\n","// @ngInject\nfunction CustomerGroupsApiService(ResourcesService) {\n\n var endpoint = 'customergroups';\n\n return {\n getCustomerGroups: ResourcesService.apiFactory.get(endpoint),\n getCustomerGroup: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createCustomerGroup: ResourcesService.apiFactory.create(endpoint, 'CustomerGroup'),\n updateCustomerGroup: ResourcesService.apiFactory.update(endpoint, 'CustomerGroup'),\n deleteCustomerGroup: ResourcesService.apiFactory.delete(endpoint, 'CustomerGroup')\n };\n\n}\n\nangular\n .module('customergroups.api', [])\n .factory('CustomerGroupsApiService', CustomerGroupsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.customergroups', {\n url: '/customergroups',\n views: {\n 'baseList': {\n templateUrl: 'main/base/customergroups/customergroups.tpl.html',\n controller: 'CustomerGroupsController as vm'\n }},\n resolve: {\n customergroups: customergroupsResolver\n }\n });\n}\n\n// @ngInject\nfunction customergroupsResolver(CustomerGroupsApiService) {\n return CustomerGroupsApiService.getCustomerGroups();\n}\n\n// @ngInject\nfunction CustomerGroupsController($rootScope, $state, $scope, customergroups, CustomerGroupsApiService, loadSpinnerService) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.customergroups = customergroups;\n vm.selectedCustomerGroupId = 0;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.customerGroupId; }, function(newValue, oldValue) {\n vm.selectedCustomerGroupId = parseInt($state.params.customerGroupId,10);\n });\n $rootScope.$on('CustomerGroup.Inserted', function(event, response) {\n });\n $rootScope.$on('CustomerGroup.Updated', function(event, response) {\n });\n $rootScope.$on('CustomerGroup.Deleted', function(event, response) {\n });\n $rootScope.$on('CustomerGroup.Changed', function(event, response) {\n loadCustomerGroups();\n });\n }\n\n function loadCustomerGroups() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n CustomerGroupsApiService.getCustomerGroups(request).then(function(response) {\n vm.customergroups = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadCustomerGroups();\n }\n\n}\n\nangular\n .module('base.customergroups', ['customergroups.api','customergroups.customergroup'])\n .config(stateConfig)\n .controller('CustomerGroupsController', CustomerGroupsController);\n","// @ngInject\nfunction DashboardApiService($q, DS, ResourcesService, DSHttpAdapter) {\n\n return {\n getWidgetDefinitions: getWidgetDefinitions,\n getWidgets: getWidgets,\n getWidgetData: getWidgetData,\n saveWidgets: saveWidgets\n };\n\n function getWidgets() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'dashboard/getdashboard/').then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getWidgetDefinitions() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'dashboard/getwidgetdefinitions/').then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getWidgetData(widget_id, settings) {\n var deferred = $q.defer();\n\n settings = settings !== undefined && settings !== \"\" && angular.isString(settings) ? JSON.parse(settings) : settings;\n\n var request = {\n locationIds: settings === undefined || settings === null ? undefined: settings.locationIds,\n hideTooltip: settings === undefined || settings === null ? undefined: settings.hideTooltip,\n businessAreaId: settings === undefined || settings === null ? undefined: settings.businessAreaId,\n selectedWidgetTimeFrame: settings === undefined || settings === null ? undefined: settings.selectedWidgetTimeFrame\n };\n \n if(settings === undefined || settings === null || settings.locationIds === undefined) {\n request.locationIds = [];\n if(settings !== null && settings !== '' && settings !== undefined && !isNaN(parseInt(settings))){\n request.locationIds.push(parseInt(settings));\n }\n }\n\n var jsonRequest = angular.toJson(request);\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'dashboard/getwidgetdata/' + widget_id, jsonRequest).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n function saveWidgets(data) {\n var deferred = $q.defer();\n\n var request = data;\n\n _.forEach(request, function(value){\n if(value.setting !== undefined && value.setting !== null \n && (value.setting.locationIds !== undefined || value.setting.businessAreaId !== undefined)){\n value.setting = angular.toJson(value.setting);\n }\n });\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'dashboard/saveWidgets', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n }\n\n}\n\nangular.module('dashboard.api', [])\n .factory('DashboardApiService', DashboardApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('main.dashboard', {\n url: '/dashboard',\n templateUrl: 'main/base/dashboard/dashboard.tpl.html',\n controller: 'MainDashboardController as vm',\n resolve: {\n initialData: ['DashboardApiService', '$q', function(DashboardApiService, $q) {\n return $q.all({\n widgetDefinitions: DashboardApiService.getWidgetDefinitions(),\n widgets: DashboardApiService.getWidgets()\n });\n }]\n }\n });\n}\n\n// @ngInject\nfunction MainDashboardController($scope, initialData) {\n $scope.widgetDefinitions = initialData.widgetDefinitions.data;\n $scope.widgets = initialData.widgets.data || [];\n}\n\nangular\n .module('base.dashboard', ['dashboard.api'])\n .config(stateConfig)\n .controller('MainDashboardController', ['$scope', 'initialData', MainDashboardController]);\n","// @ngInject\nfunction stateConfig($stateProvider){\n\n $stateProvider.state('base.deliveryplanningtemplates.new', {\n url:'/new',\n views: {\n 'baseView@base':{\n remplateUrl: 'main/base/deliveryplanningtemplates/deliveryplanningtemplate/deliveryplanningtemplate.tpl.html',\n controller: 'DeliveryPlanningTemplateController as vm'\n }},\n resolve: {\n deliveryplanningtemplate: function() {return {}; },\n isNewDeliveryPlanningTemplate: function() {return true;}\n }\n });\n\n $stateProvider.state('base.deliveryplanningtemplates.deliveryplanningtemplate', {\n url:'/{deliveryplanningtemplateId}',\n views: {\n 'baseView@base':{\n templateUrl: 'main/base/deliveryplanningtemplates/deliveryplanningtemplate/deliveryplanningtemplate.tpl.html',\n controller: 'DeliveryPlanningTemplateController as vm'\n }},\n resolve: {\n deliveryplanningtemplate: deliveryplanningtemplateResolver,\n isNewDeliveryPlanningTemplate: function() {return false;}\n }\n });\n}\n\n// @ngInject\nfunction deliveryplanningtemplateResolver($stateParams, DeliveryPlanningTemplatesApiService) {\n return DeliveryPlanningTemplatesApiService.getDeliveryPlanningTemplate($stateParams.deliveryplanningtemplateId);\n}\n\n// @ngInject\nfunction DeliveryPlanningTemplateController($state, deliveryplanningtemplate, DeliveryPlanningTemplatesApiService, ToasterService, confirmationDialogService, $translate, isNewDeliveryPlanningTemplate) {\n var vm = this;\n\n var deliveryplanningtemplateCopy = {};\n\n vm.deliveryplanningtemplate = deliveryplanningtemplate;\n\n console.log(vm.deliveryplanningtemplate);\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveDeliveryPlanningTemplate = saveDeliveryPlanningTemplate;\n vm.deleteDeliveryPlanningTemplate = deleteDeliveryPlanningTemplate;\n vm.isNewDeliveryPlanningTemplate = isNewDeliveryPlanningTemplate;\n vm.isEditing = vm.isNewDeliveryPlanningTemplate;\n\n vm.isAllInformationValid = isAllInformationValid;\n //vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if(vm.isNewDeliveryPlanningTemplate){\n vm.deliveryplanningtemplate = {};\n }\n }\n\n function enableEditing(){\n deliveryplanningtemplateCopy = angular.copy(vm.deliveryplanningtemplate);\n vm.isEditing = true;\n }\n\n function cancelEditing(){\n vm.deliveryplanningtemplate = deliveryplanningtemplateCopy;\n vm.isEditing = false;\n }\n\n function saveDeliveryPlanningTemplate() {\n if(vm.isNewDeliveryPlanningTemplate) {\n saveNewDeliveryPlanningTemplate();\n } else {\n updateDeliveryPlanningTemplate();\n }\n }\n\n function saveNewDeliveryPlanningTemplate() {\n loadSpinnerService.start('mainSpinner');\n DeliveryPlanningTemplatesApiService.createDeliveryPlanningTemplate(vm.deliveryplanningtemplate).then(function(response){\n vm.deliveryplanningtemplate = response;\n prepareData();\n vm.isNewDeliveryPlanningTemplate = false;\n vm.isEditing = false;\n $state.go('base.deliveryplanningtemplates.deliveryplanningtemplate', {deliveryplanningtemplateId: vm.deliveryplanningtemplate.id});\n }, function(error){\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateDeliveryPlanningTemplate() {\n loadSpinnerService.start('mainSpinner');\n DeliveryPlanningTemplatesApiService.updateDeliveryPlanningTemplate(vm.deliveryplanningtemplate).then(function(response){\n vm.deliveryplanningtemplate = response;\n prepareData();\n vm.isNewDeliveryPlanningTemplate = false;\n vm.isEditing = false;\n $state.go('base.deliveryplanningtemplates.deliveryplanningtemplate', {deliveryplanningtemplateId: vm.deliveryplanningtemplate.id});\n }, function(error){\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteDeliveryPlanningTemplate() {\n confirmationDialogService.showDialog($translate.instant('deliveryplanningtemplates.confirmDelete'))\n .then(function(confirmation) {\n if(confirmation) {\n loadSpinnerService.start('mainSpinner');\n DeliveryPlanningTemplatesApiService.updateDeliveryPlanningTemplate(vm.deliveryplanningtemplate).then(function(response){\n vm.deliveryplanningtemplate = response;\n prepareData();\n vm.isNewDeliveryPlanningTemplate = false;\n vm.isEditing = false;\n $state.go('base.deliveryplanningtemplates');\n }, function(error){\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function prepareData() {\n if (vm.deliveryplanningtemplate === undefined) {\n return;\n }\n\n vm.deliveryplanningtemplateCopy = angular.copy(vm.deliveryplanningtemplate);\n }\n\n function isAllInformationValid() {\n return true;\n }\n}\n\nangular\n .module('deliveryplanningtemplates.deliveryplanningtemplate', [])\n .config(stateConfig)\n .controller('DeliveryPlanningTemplateController', DeliveryPlanningTemplateController);","// @ngInject\nfunction DeliveryPlanningTemplatesApiService(ResourcesService) {\n\n var endpoint = 'deliveryplanningtemplate';\n\n return {\n getDeliveryPlanningTemplates: ResourcesService.apiFactory.get(endpoint),\n getDeliveryPlanningTemplate: ResourcesService.apiFactory.get(endpoint),\n createDeliveryPlanningTemplate: ResourcesService.apiFactory.create(endpoint, 'DeliveryPlanningTemplate'),\n updateDeliveryPlanningTemplate: ResourcesService.apiFactory.update(endpoint, 'DeliveryPlanningTemplate'),\n deleteDeliveryPlanningTemplate: ResourcesService.apiFactory.delete(endpoint, 'DeliveryPlanningTemplate')\n };\n}\n\nangular\n .module('deliveryplanningtemplates.api', [])\n .factory('DeliveryPlanningTemplatesApiService', DeliveryPlanningTemplatesApiService);","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.deliveryplanningtemplates', {\n url: '/deliveryplanningtemplates?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/deliveryplanningtemplates/deliveryplanningtemplates.tpl.html',\n controller: 'DeliveryPlanningTemplatesController as vm'\n }},\n resolve: {\n deliveryplanningtemplates: deliveryplanningtemplatesResolver,\n searchTerm: searchTermResolver\n }\n });\n}\n\n// @ngInject\nfunction deliveryplanningtemplatesResolver(DeliveryPlanningTemplatesApiService, $stateParams) {\n return DeliveryPlanningTemplatesApiService.getDeliveryPlanningTemplates({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n// @ngInject\nfunction searchTermResolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction DeliveryPlanningTemplatesController($rootScope, $state, $scope, deliveryplanningtemplates, DeliveryPlanningTemplatesApiService, loadSpinnerService, searchTerm){\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.deliveryplanningtemplates = deliveryplanningtemplates;\n vm.selectedDeliveryPlanningTemplateId = 0;\n vm.searchTerm = (searchTerm)? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function(){return $state.params.deliveryPlanningTemplateId;}, function(newValue, oldValue){\n vm.selectedDeliveryPlanningTemplateId = parseInt($state.params.deliveryPlanningTemplateId,10);\n });\n $rootScope.$on('DeliveryPlanningTemplate.Inserted', function(event, response){\n });\n $rootScope.$on('DeliveryPlanningTemplate.Updated', function(event, response){\n });\n $rootScope.$on('DeliveryPlanningTemplate.Deleted', function(event, response){\n });\n $rootScope.$on('DeliveryPlanningTemplate.Changed', function(event, response){\n loadDeliveryPlanningTemplates();\n });\n }\n\n function loadDeliveryPlanningTemplates() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n DeliveryPlanningTemplatesApiService.getDeliveryPlanningTemplates(request).then(function(response){\n vm.deliveryplanningtemplates = response;\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n \n function searchTermChange() {\n vm.currentPage = 1;\n loadDeliveryPlanningTemplates();\n }\n}\n\nangular\n .module('base.deliveryplanningtemplates', ['deliveryplanningtemplates.api', 'deliveryplanningtemplates.deliveryplanningtemplate'])\n .config(stateConfig)\n .controller('DeliveryPlanningTemplatesController', DeliveryPlanningTemplatesController);","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.deliveryterms.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/deliveryterms/deliveryterm/deliveryterm.tpl.html',\n controller: 'DeliveryTermController as vm'\n }},\n resolve: {\n deliveryterm: function() { return {}; },\n languages: languagesResolver,\n isNewDeliveryTerm: function() {return true;}\n }\n });\n\n $stateProvider.state('base.deliveryterms.deliveryterm', {\n url:'/{deliverytermId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/deliveryterms/deliveryterm/deliveryterm.tpl.html',\n controller: 'DeliveryTermController as vm'\n }},\n resolve: {\n deliveryterm: deliverytermResolver,\n languages: languagesResolver,\n isNewDeliveryTerm: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction deliverytermResolver($stateParams, DeliveryTermsApiService) {\n return DeliveryTermsApiService.getDeliveryTerm($stateParams.deliverytermId);\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, DeliveryTermsApiService) {\n return DeliveryTermsApiService.getLanguages();\n}\n\n// @ngInject\nfunction DeliveryTermController($state, deliveryterm, loadSpinnerService, DeliveryTermsApiService, ToasterService, confirmationDialogService, $translate, isNewDeliveryTerm, languages) {\n var vm = this;\n\n var deliverytermCopy = {};\n\n vm.deliveryterm = deliveryterm;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveDeliveryTerm = saveDeliveryTerm;\n vm.deleteDeliveryTerm = deleteDeliveryTerm;\n\n vm.isNewDeliveryTerm = isNewDeliveryTerm;\n vm.isEditing = vm.isNewDeliveryTerm;\n\n vm.isDeliveryTermCodeValid = isDeliveryTermCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n vm.languages = languages;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewDeliveryTerm) {\n vm.deliveryterm = {};\n }\n\n appendLocalizations(vm.deliveryterm, vm.languages);\n\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n deliverytermCopy = angular.copy(vm.deliveryterm);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.deliveryterm = deliverytermCopy;\n vm.isEditing = false;\n }\n\n function saveDeliveryTerm() {\n if (vm.isNewDeliveryTerm) {\n saveNewDeliveryTerm();\n } else {\n updateDeliveryTerm();\n }\n }\n\n function saveNewDeliveryTerm() {\n loadSpinnerService.start('mainSpinner');\n DeliveryTermsApiService.createDeliveryTerm(vm.deliveryterm).then(function(response) {\n vm.deliveryterm = response;\n prepareData();\n vm.isNewDeliveryTerm = false;\n vm.isEditing = false;\n $state.go('base.deliveryterms.deliveryterm', {deliverytermId: vm.deliveryterm.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateDeliveryTerm() {\n loadSpinnerService.start('mainSpinner');\n\n DeliveryTermsApiService.updateDeliveryTerm(vm.deliveryterm).then(function(response) {\n vm.deliveryterm = response;\n prepareData();\n vm.isNewDeliveryTerm = false;\n vm.isEditing = false;\n $state.go('base.deliveryterms.deliveryterm', {deliverytermId: vm.deliveryterm.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteDeliveryTerm() {\n confirmationDialogService\n .showDialog($translate.instant('deliveryterm.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n DeliveryTermsApiService.deleteDeliveryTerm(vm.deliveryterm.id).then(function(response) {\n vm.deliveryterm = response;\n prepareData();\n vm.isNewDeliveryTerm = false;\n vm.isEditing = false;\n $state.go('base.deliveryterms');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(deliveryterm) {\n deliveryterm.showEditForm = !deliveryterm.showEditForm;\n }\n\n function prepareData() {\n if (vm.deliveryterm === undefined) {\n return;\n }\n\n vm.deliverytermCopy = angular.copy(vm.deliveryterm);\n }\n\n function isAllInformationValid() {\n return isDeliveryTermCodeValid();\n }\n\n function isDeliveryTermCodeValid() {\n if (!vm.deliveryterm.code) { return false; }\n if (vm.deliveryterm.code.length > 20) { return false; }\n\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('deliveryterms.deliveryterm', [])\n .config(stateConfig)\n .controller('DeliveryTermController', DeliveryTermController);\n","// @ngInject\nfunction DeliveryTermsApiService(ResourcesService) {\n\n var endpoint = 'deliveryterms';\n\n return {\n getDeliveryTerms: ResourcesService.apiFactory.get(endpoint),\n getDeliveryTerm: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createDeliveryTerm: ResourcesService.apiFactory.create(endpoint, 'DeliveryTerm'),\n updateDeliveryTerm: ResourcesService.apiFactory.update(endpoint, 'DeliveryTerm'),\n deleteDeliveryTerm: ResourcesService.apiFactory.delete(endpoint, 'DeliveryTerm')\n };\n\n}\n\nangular\n .module('deliveryterms.api', [])\n .factory('DeliveryTermsApiService', DeliveryTermsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.deliveryterms', {\n url: '/deliveryterms?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/deliveryterms/deliveryterms.tpl.html',\n controller: 'DeliveryTermsController as vm'\n }},\n resolve: {\n deliveryterms: deliverytermsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction deliverytermsResolver(DeliveryTermsApiService, $stateParams) {\n return DeliveryTermsApiService.getDeliveryTerms({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction DeliveryTermsController($rootScope, $state, $scope, deliveryterms, DeliveryTermsApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.deliveryterms = deliveryterms;\n vm.selectedDeliveryTermId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.deliveryTermId; }, function(newValue, oldValue) {\n vm.selectedDeliveryTermId = parseInt($state.params.deliveryTermId,10);\n });\n $rootScope.$on('DeliveryTerm.Inserted', function(event, response) {\n });\n $rootScope.$on('DeliveryTerm.Updated', function(event, response) {\n });\n $rootScope.$on('DeliveryTerm.Deleted', function(event, response) {\n });\n $rootScope.$on('DeliveryTerm.Changed', function(event, response) {\n loadDeliveryTerms();\n });\n }\n\n function loadDeliveryTerms() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n DeliveryTermsApiService.getDeliveryTerms(request).then(function(response) {\n vm.deliveryterms = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadDeliveryTerms();\n }\n\n}\n\nangular\n .module('base.deliveryterms', ['deliveryterms.api','deliveryterms.deliveryterm'])\n .config(stateConfig)\n .controller('DeliveryTermsController', DeliveryTermsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.invoicetypes.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/invoicetypes/invoicetype/invoicetype.tpl.html',\n controller: 'InvoiceTypeController as vm'\n }},\n resolve: {\n invoicetype: function() { return {}; },\n languages: languagesResolver,\n isNewInvoiceType: function() {return true;},\n printDocumentTemplates: printDocumentResolver\n }\n });\n\n $stateProvider.state('base.invoicetypes.invoicetype', {\n url:'/{invoicetypeId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/invoicetypes/invoicetype/invoicetype.tpl.html',\n controller: 'InvoiceTypeController as vm'\n }},\n resolve: {\n invoicetype: invoicetypeResolver,\n languages: languagesResolver,\n isNewInvoiceType: function() {return false;},\n printDocumentTemplates: printDocumentResolver\n }\n });\n\n}\n\n// @ngInject\nfunction invoicetypeResolver($stateParams, InvoiceTypesApiService) {\n return InvoiceTypesApiService.getInvoiceType($stateParams.invoicetypeId);\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, InvoiceTypesApiService) {\n return InvoiceTypesApiService.getLanguages();\n}\n\n// @ngInject\nfunction printDocumentResolver($stateParams, InvoiceTypesApiService) {\n return InvoiceTypesApiService.getPrintDocumentTemplates();\n}\n\n// @ngInject\nfunction InvoiceTypeController($state, invoicetype, loadSpinnerService, InvoiceTypesApiService, ToasterService, confirmationDialogService, $translate, isNewInvoiceType, languages, printDocumentTemplates) {\n var vm = this;\n\n var invoicetypeCopy = {};\n\n vm.invoicetype = invoicetype;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveInvoiceType = saveInvoiceType;\n vm.deleteInvoiceType = deleteInvoiceType;\n\n vm.isNewInvoiceType = isNewInvoiceType;\n vm.isEditing = vm.isNewInvoiceType;\n vm.isAllInformationValid = isAllInformationValid;\n vm.languages = languages;\n vm.printDocumentTemplates = printDocumentTemplates;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewInvoiceType) {\n vm.invoicetype = {};\n }\n\n appendLocalizations(vm.invoicetype, vm.languages);\n\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n invoicetypeCopy = angular.copy(vm.invoicetype);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.invoicetype = invoicetypeCopy;\n vm.isEditing = false;\n }\n\n function saveInvoiceType() {\n if (vm.isNewInvoiceType) {\n saveNewInvoiceType();\n } else {\n updateInvoiceType();\n }\n }\n\n function saveNewInvoiceType() {\n loadSpinnerService.start('mainSpinner');\n InvoiceTypesApiService.createInvoiceType(vm.invoicetype).then(function(response) {\n vm.invoicetype = response;\n prepareData();\n vm.isNewInvoiceType = false;\n vm.isEditing = false;\n $state.go('base.invoicetypes.invoicetype', {invoicetypeId: vm.invoicetype.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateInvoiceType() {\n loadSpinnerService.start('mainSpinner');\n\n InvoiceTypesApiService.updateInvoiceType(vm.invoicetype).then(function(response) {\n vm.invoicetype = response;\n prepareData();\n vm.isNewInvoiceType = false;\n vm.isEditing = false;\n $state.go('base.invoicetypes.invoicetype', {invoicetypeId: vm.invoicetype.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteInvoiceType() {\n confirmationDialogService\n .showDialog($translate.instant('invoicetype.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n InvoiceTypesApiService.deleteInvoiceType(vm.invoicetype.id).then(function(response) {\n vm.invoicetype = response;\n prepareData();\n vm.isNewInvoiceType = false;\n vm.isEditing = false;\n $state.go('base.invoicetypes');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(invoicetype) {\n invoicetype.showEditForm = !invoicetype.showEditForm;\n }\n\n function prepareData() {\n if (vm.invoicetype === undefined) {\n return;\n }\n\n vm.invoicetypeCopy = angular.copy(vm.invoicetype);\n }\n\n function isAllInformationValid() {\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('invoicetypes.invoicetype', [])\n .config(stateConfig)\n .controller('InvoiceTypeController', InvoiceTypeController);\n","// @ngInject\nfunction InvoiceTypesApiService(ResourcesService) {\n\n var endpoint = 'invoicetypes';\n\n return {\n getInvoiceTypes: ResourcesService.apiFactory.get(endpoint),\n getInvoiceType: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createInvoiceType: ResourcesService.apiFactory.create(endpoint, 'InvoiceType'),\n updateInvoiceType: ResourcesService.apiFactory.update(endpoint, 'InvoiceType'),\n deleteInvoiceType: ResourcesService.apiFactory.delete(endpoint, 'InvoiceType'),\n getPrintDocumentTemplates: ResourcesService.apiFactory.get(endpoint + '/printDocumentTemplates')\n };\n\n}\n\nangular\n .module('invoicetypes.api', [])\n .factory('InvoiceTypesApiService', InvoiceTypesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.invoicetypes', {\n url: '/invoicetypes?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/invoicetypes/invoicetypes.tpl.html',\n controller: 'InvoiceTypesController as vm'\n }},\n resolve: {\n invoicetypes: invoicetypesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction invoicetypesResolver(InvoiceTypesApiService, $stateParams) {\n return InvoiceTypesApiService.getInvoiceTypes({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction InvoiceTypesController($rootScope, $state, $scope, invoicetypes, InvoiceTypesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.invoicetypes = invoicetypes;\n vm.selectedInvoiceTypeId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.invoiceTypeId; }, function(newValue, oldValue) {\n vm.selectedInvoiceTypeId = parseInt($state.params.invoiceTypeId,10);\n });\n $rootScope.$on('InvoiceType.Inserted', function(event, response) {\n });\n $rootScope.$on('InvoiceType.Updated', function(event, response) {\n });\n $rootScope.$on('InvoiceType.Deleted', function(event, response) {\n });\n $rootScope.$on('InvoiceType.Changed', function(event, response) {\n loadInvoiceTypes();\n });\n }\n\n function loadInvoiceTypes() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n InvoiceTypesApiService.getInvoiceTypes(request).then(function(response) {\n vm.invoicetypes = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadInvoiceTypes();\n }\n\n}\n\nangular\n .module('base.invoicetypes', ['invoicetypes.api','invoicetypes.invoicetype'])\n .config(stateConfig)\n .controller('InvoiceTypesController', InvoiceTypesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.ordercollections.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/ordercollections/ordercollection/ordercollection.tpl.html',\n controller: 'OrderCollectionController as vm'\n }},\n resolve: {\n collection: function() { return {\n collectionCode: '',\n collectionDescription: '',\n articleCollectionType: 0,\n currentBehaviour: 0,\n currentRank: 0,\n currencySettings: [],\n duration: 360,\n isArticleSeason: false,\n isOrderSeason: true,\n offset: -180,\n currencies: []\n }; },\n currencies: currencyResolver,\n isNewCollection: function() { return true; }\n }\n });\n $stateProvider.state('base.ordercollections.ordercollection', {\n url:'/{collectionId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/ordercollections/ordercollection/ordercollection.tpl.html',\n controller: 'OrderCollectionController as vm'\n }},\n resolve: {\n collection: collectionResolver,\n currencies: currencyResolver,\n isNewCollection: function() { return false; }\n }\n });\n}\n\n// @ngInject\nfunction collectionResolver($stateParams, OrderCollectionsApiService) {\n return OrderCollectionsApiService.getOrderCollectionById($stateParams.collectionId);\n}\n\n// @ngInject\nfunction currencyResolver($stateParams, OrderCollectionsApiService) {\n return OrderCollectionsApiService.listAllCurrencies();\n}\n\n// @ngInject\nfunction OrderCollectionController($window, $state, $scope, $translate, collection,\n currencies, loadSpinnerService, OrderCollectionsApiService,\n ToasterService, isNewCollection) {\n var vm = this;\n\n //Properties\n var collectionCopy = {};\n vm.isNewCollection = isNewCollection;\n vm.isEditing = vm.isNewCollection;\n vm.collection = collection;\n vm.currentBehaviours = [];\n vm.articleCollectionTypes = [];\n\n //Methods\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveCollection = saveCollection;\n vm.isAllInformationValid = isAllInformationValid;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n\n $scope.$watch(function() { return vm.collection.selectedCurrentBehaviour; }, function(newValue, oldValue) {\n if (newValue.id !== oldValue.id) {\n vm.collection.currentBehaviour = newValue.id;\n }\n });\n $scope.$watch(function() { return vm.collection.selectedArticleCollectionType; }, function(newValue, oldValue) {\n if (newValue.id !== oldValue.id) {\n vm.collection.articleCollectionType = newValue.id;\n }\n });\n\n if (isNewCollection) {\n loadSpinnerService.start('mainSpinner');\n vm.collections = [];\n OrderCollectionsApiService.listAllOrderCollections().then(function(response) {\n vm.collections = response;\n vm.collections = _.filter(vm.collections, function(c) { return c.toDate; });\n if (!isNewCollection) { vm.collections = _.filter(vm.collections, function(c) { return c.id !== vm.collection.id; }); }\n vm.collections = _.sortBy(vm.collections, ['toDate']);\n\n //Check which should be the next collection from date\n var lastCollection = vm.collections[vm.collections.length - 1];\n var lastToDate = lastCollection.toDate;\n var fromDate = new Date(lastToDate);\n fromDate.setDate(fromDate.getDate() + 1);\n var toDate = new Date(lastToDate);\n toDate.setDate(toDate.getDate() + 2);\n\n vm.collection.fromDate = fromDate;\n vm.collection.toDate = toDate;\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function setCurrentBehaviours() {\n //DoNotSetCurrent, SetCurrent, SetNotCurrent\n vm.currentBehaviours.push({ id: 0, description: $translate.instant('articlecollection.currentBehaviourDoNotSetCurrent') }); //\"DoNotSetCurrent\"\n vm.currentBehaviours.push({ id: 1, description: $translate.instant('articlecollection.currentBehaviourSetCurrent') }); //\"SetCurrent\"\n vm.currentBehaviours.push({ id: 2, description: $translate.instant('articlecollection.currentBehaviourSetNotCurrent') }); //\"SetNotCurrent\"\n }\n\n function setArticleCollectionTypes() {\n //Static, Rolling\n vm.articleCollectionTypes.push({ id: 0, description: $translate.instant('articlecollection.articleCollectionTypeStatic') }); //\"Static\"\n vm.articleCollectionTypes.push({ id: 1, description: $translate.instant('articlecollection.articleCollectionTypeRolling') }); //\"Rolling\"\n }\n\n function enableEditing() {\n collectionCopy = angular.copy(vm.collection);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.collection = collectionCopy;\n vm.isEditing = false;\n }\n\n function saveCollection() {\n if (!vm.collection.collectionCode || vm.collection.collectionCode === 0) {\n ToasterService.showError($translate.instant('articlecollection.errorCollectionCodeEmpty'), $translate.instant('common.error'));\n $('#collectionCode').focus();\n return;\n }\n\n vm.collections = [];\n OrderCollectionsApiService.listAllOrderCollections().then(function(response) {\n vm.collections = response;\n vm.collections = _.filter(vm.collections, function(c) { return c.toDate; });\n if (!isNewCollection) { vm.collections = _.filter(vm.collections, function(c) { return c.id !== vm.collection.id; }); }\n vm.collections = _.sortBy(vm.collections, ['toDate']);\n\n //Check which should be the next collection from date\n //var lastCollection = vm.collections[vm.collections.length - 1];\n //var lastToDate = new Date(lastCollection.toDate);\n //var nextDate = new Date(lastToDate.toDateString());\n //nextDate.setDate(nextDate.getDate() + 1);\n //var cleanedFromDate = new Date(new Date(vm.collection.fromDate).toDateString());\n //var cleanedToDate = new Date(new Date(vm.collection.toDate).toDateString());\n\n //console.log('cleanedFromDate: ' + cleanedFromDate.getTime() + ', nextDate: ' + nextDate.getTime());\n\n if (vm.collection.collectionCode && vm.isNewCollection && _.find(response, function(r) { return r.collectionCode === vm.collection.collectionCode; })) {\n ToasterService.showError($translate.instant('articlecollection.errorCollectionCodeAlreadyPresent'), $translate.instant('common.error'));\n $('#collectionCode').focus();\n return;\n }\n //} else if (vm.collections.length > 0 &&\n // vm.collection.articleCollectionType === 0 &&\n // cleanedFromDate.getTime() >= cleanedToDate.getTime()) {\n // //If from date is after to date\n // vm.collection.toDate = new Date(vm.collection.fromDate);\n // ToasterService.showError($translate.instant('articlecollection.errorFromDateAfterToDate'), $translate.instant('common.error'));\n // } else if (vm.collections.length > 0 &&\n // vm.collection.articleCollectionType === 0 &&\n // cleanedFromDate.getTime() < nextDate.getTime()) {\n // //Confirm to save when from-date is before as to-date of last collection\n // confirmationDialogService.showDialog($translate.instant('articlecollection.confirmDatesNotAligning') + ' Senaste säsong: ' + lastCollection.collectionCode + ' \"' + lastCollection.collectionDescription + '\", från och med-datum: ' + new Date(lastToDate.toDateString()).toDateString()).then(function (result) {\n // if (result === true) {\n // if (isNewCollection) {\n // saveConfirmedCollection();\n // } else {\n // updateConfirmedCollection();\n // }\n // } else {\n // vm.collection.fromDate = new Date(nextDate.toDateString());\n // ToasterService.showError($translate.instant('articlecollection.dateWasAdjusted'), $translate.instant('common.information'));\n // }\n // });\n\n if (isNewCollection) {\n saveConfirmedCollection();\n } else {\n updateConfirmedCollection();\n }\n }, function(error) {\n console.log(error);\n });\n }\n\n function saveConfirmedCollection() {\n var request = {\n articleCollectionType: vm.collection.selectedArticleCollectionType.id,\n collectionCode: vm.collection.collectionCode,\n collectionDescription: vm.collection.collectionDescription.trim(),\n currencySettings: [],\n currentBehaviour: vm.collection.selectedCurrentBehaviour.id,\n duration: vm.collection.duration,\n fromDate: getFullDate(vm.collection.fromDate),\n offset: vm.collection.offset,\n toDate: getFullDate(vm.collection.toDate)\n };\n //Add currency settings\n _.forEach(vm.collection.currencySettings, function(o) {\n request.currencySettings.push({\n currencyCode: o.currency.code,\n currencyRate: o.currencyRate\n });\n });\n\n loadSpinnerService.start('mainSpinner');\n OrderCollectionsApiService.saveOrderCollection(request).then(function(response) {\n $state.go('base.ordercollections.ordercollection', { collectionId: response.orderCollectionId });\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getFullDate(date) {\n var year = new Date(date).getFullYear();\n var month = zeroFill(new Date(date).getMonth() + 1, 2);\n var day = zeroFill(new Date(date).getDate(), 2);\n\n return '' + year + '-' + month + '-' + day;\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n // eslint-disable-next-line wrap-regex\n return new Array(width + (/\\./.test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function updateConfirmedCollection() {\n var request = {\n articleCollectionId: vm.collection.id,\n collectionDescription: vm.collection.collectionDescription.trim(),\n currencySettings: [],\n currentBehaviour: vm.collection.selectedCurrentBehaviour.id,\n duration: vm.collection.duration,\n fromDate: getFullDate(vm.collection.fromDate),\n offset: vm.collection.offset,\n toDate: getFullDate(vm.collection.toDate)\n };\n //Add currency settings\n _.forEach(vm.collection.currencySettings, function(o) {\n request.currencySettings.push({\n currencyCode: o.currency.code,\n currencyRate: o.currencyRate\n });\n });\n\n loadSpinnerService.start('mainSpinner');\n OrderCollectionsApiService.updateOrderCollection(request).then(function(response) {\n $window.location.reload();\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n\n function toggleDisplayForm(collection) {\n collection.showEditForm = !collection.showEditForm;\n }\n\n function prepareData() {\n if (vm.collection === undefined) {\n return;\n }\n\n vm.collectionCopy = angular.copy(vm.collection);\n\n setCurrentBehaviours();\n setArticleCollectionTypes();\n\n vm.collection.selectedCurrentBehaviour = vm.currentBehaviours.find(function(element) { return element.id === vm.collection.currentBehaviour; });\n vm.collection.selectedArticleCollectionType = vm.articleCollectionTypes.find(function(element) { return element.id === vm.collection.articleCollectionType; });\n\n //If collection currency doesn't contain all available currencies, add them\n _.forEach(currencies, function(currency) {\n var existingCurrency;\n if (vm.collection.currencySettings.length > 0) {\n existingCurrency = vm.collection.currencySettings.find(function(element) {\n return element.currency.code === currency.code;\n });\n }\n if (!existingCurrency) {\n var newCurrencySetting = {\n currency: currency,\n currencyRate: currency.currencyRate\n };\n vm.collection.currencySettings.push(newCurrencySetting);\n }\n });\n }\n\n function isAllInformationValid() {\n //return vm.collection.collectionCode.length > 0 && vm.collection.collectionDescription.length > 0;\n return true;\n }\n}\n\nangular\n .module('ordercollections.ordercollection', [])\n .config(stateConfig)\n .controller('OrderCollectionController', OrderCollectionController);\n","// @ngInject\nfunction OrderCollectionsApiService(ResourcesService) {\n\n var endpoint = 'ordercollections';\n\n return {\n listAllOrderCollections: ResourcesService.apiFactory.get(endpoint + '/briefs'),\n listAllCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies'),\n getOrderCollectionById: ResourcesService.apiFactory.get(endpoint),\n saveOrderCollection: ResourcesService.apiFactory.save(endpoint + '/save', 'OrderCollection'),\n updateOrderCollection: ResourcesService.apiFactory.save(endpoint + '/update', 'OrderCollection')\n };\n}\n\nangular\n .module('ordercollections.api', [])\n .factory('OrderCollectionsApiService', OrderCollectionsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.ordercollections', {\n url: '/ordercollections',\n views: {\n 'baseList': {\n templateUrl: 'main/base/ordercollections/ordercollections.tpl.html',\n controller: 'OrderCollectionsController as vm'\n }},\n resolve: {\n collections: collectionsResolver\n }\n });\n}\n\n// @ngInject\nfunction collectionsResolver(OrderCollectionsApiService) {\n return OrderCollectionsApiService.listAllOrderCollections();\n}\n\n// @ngInject\nfunction OrderCollectionsController($rootScope, $state, $scope, collections, OrderCollectionsApiService, loadSpinnerService) {\n var vm = this;\n\n //Properties\n vm.currentUser = $rootScope.currentUser;\n vm.collections = collections;\n vm.selectedCollectionId = 0;\n vm.searchTerm = '';\n vm.currentPage = 1;\n\n //Methods\n vm.searchTermChange = searchTermChange;\n vm.getFullDate = getFullDate;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.collectionId; }, function(newValue, oldValue) {\n vm.selectedCollectionId = parseInt($state.params.collectionId,10);\n });\n $rootScope.$on('OrderCollection.Inserted', function(event, response) {\n });\n $rootScope.$on('OrderCollection.Updated', function(event, response) {\n });\n $rootScope.$on('OrderCollection.Deleted', function(event, response) {\n });\n $rootScope.$on('OrderCollection.Changed', function(event, response) {\n loadCollections();\n });\n }\n\n function loadCollections() {\n loadSpinnerService.start('mainSpinner');\n OrderCollectionsApiService.listAllOrderCollections().then(function(response) {\n vm.collections = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadCollections();\n }\n\n function getFullDate(date) {\n var year = new Date(date).getFullYear();\n var month = zeroFill(new Date(date).getMonth() + 1, 2);\n var day = zeroFill(new Date(date).getDate(), 2);\n\n return '' + year + '-' + month + '-' + day;\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n // eslint-disable-next-line wrap-regex\n return new Array(width + (/\\./.test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n}\n\nangular\n .module('base.ordercollections', ['ordercollections.api', 'ordercollections.ordercollection'])\n .config(stateConfig)\n .controller('OrderCollectionsController', OrderCollectionsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.ordertypes.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/ordertypes/ordertype/ordertype.tpl.html',\n controller: 'OrderTypeController as vm'\n }},\n resolve: {\n ordertype: function() { return {}; },\n printDocumentTemplates: printDocumentResolver,\n deliveryPlanningTemplate: deliveryPlanningTemplatesResolver,\n locations: locationsResolver,\n languages: languagesResolver,\n isNewOrderType: function() {return true;}\n }\n });\n\n $stateProvider.state('base.ordertypes.ordertype', {\n url:'/{ordertypeId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/ordertypes/ordertype/ordertype.tpl.html',\n controller: 'OrderTypeController as vm'\n }},\n resolve: {\n ordertype: ordertypeResolver,\n printDocumentTemplates: printDocumentResolver,\n deliveryPlanningTemplate: deliveryPlanningTemplatesResolver,\n locations: locationsResolver,\n languages: languagesResolver,\n isNewOrderType: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction ordertypeResolver($stateParams, OrderTypesApiService) {\n return OrderTypesApiService.getOrderType($stateParams.ordertypeId);\n}\n\n// @ngInject\nfunction printDocumentResolver($stateParams, OrderTypesApiService) {\n return OrderTypesApiService.getPrintDocumentTemplates();\n}\n// @ngInject\nfunction deliveryPlanningTemplatesResolver($stateParams, OrderTypesApiService) {\n return OrderTypesApiService.getDeliveryPlanningTemplates();\n \n}\n\n// @ngInject\nfunction languagesResolver($stateParams, OrderTypesApiService) {\n return OrderTypesApiService.getLanguages();\n}\n\n// @ngInject\nfunction locationsResolver(OrderTypesApiService) {\n return OrderTypesApiService.getLocations();\n}\n\n\n// @ngInject\nfunction OrderTypeController($state, ordertype, deliveryPlanningTemplate ,printDocumentTemplates, loadSpinnerService, OrderTypesApiService, OrdersApiService, ToasterService, confirmationDialogService, $translate, isNewOrderType, languages, locations) {\n var vm = this;\n\n var ordertypeCopy = {};\n vm.enableDeliveryPlanning = false;\n\n vm.ordertype = ordertype;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveOrderType = saveOrderType;\n vm.deleteOrderType = deleteOrderType;\n vm.deliveryPlanningTemplate;\n vm.isNewOrderType = isNewOrderType;\n vm.isEditing = vm.isNewOrderType;\n\n vm.printDocumentTemplates = printDocumentTemplates;\n vm.getDeliveryPlanningTemplates = deliveryPlanningTemplate;\n\n vm.isAllInformationValid = isAllInformationValid;\n vm.languages = languages;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n vm.locations = locations;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewOrderType) {\n vm.ordertype = {};\n }\n\n appendLocalizations(vm.ordertype, vm.languages);\n appendLocations(vm.locations);\n initDeliveryPlanningTemplate();\n isDeliveryPlanningEnabled();\n }\n\n function isDeliveryPlanningEnabled() {\n OrdersApiService.isDeliveryPlanningEnabled().then(function(response){\n vm.enableDeliveryPlanning = response;\n }, function(error){\n ToasterService.showError(error.message);\n });\n }\n\n function initDeliveryPlanningTemplate(){\n vm.deliveryPlanningTemplate = vm.ordertype.deliveryPlanningTemplate;\n }\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function appendLocations(locations) {\n locations.push({ id: 0, locationName: '-'});\n }\n\n function enableEditing() {\n ordertypeCopy = angular.copy(vm.ordertype);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.ordertype = ordertypeCopy;\n vm.isEditing = false;\n }\n\n function saveOrderType() {\n if (vm.isNewOrderType) {\n saveNewOrderType();\n } else {\n updateOrderType();\n }\n }\n\n function saveNewOrderType() {\n loadSpinnerService.start('mainSpinner');\n OrderTypesApiService.createOrderType(vm.ordertype).then(function(response) {\n vm.ordertype = response;\n prepareData();\n vm.isNewOrderType = false;\n vm.isEditing = false;\n $state.go('base.ordertypes.ordertype', {ordertypeId: vm.ordertype.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateOrderType() {\n loadSpinnerService.start('mainSpinner');\n if(vm.enableDeliveryPlanning){\n if(vm.deliveryPlanningTemplate.id <= 0 || vm.deliveryPlanningTemplate.id === undefined){ \n vm.deliveryPlanningTemplate.id = null;\n }\n vm.ordertype.deliveryPlanningTemplateId = vm.deliveryPlanningTemplate.id;\n }\n else {\n vm.ordertype.deliveryPlanningTemplateId = null;\n }\n OrderTypesApiService.updateOrderType(vm.ordertype).then(function(response) {\n vm.ordertype = response;\n prepareData();\n vm.isNewOrderType = false;\n vm.isEditing = false;\n $state.go('base.ordertypes.ordertype', {ordertypeId: vm.ordertype.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteOrderType() {\n confirmationDialogService\n .showDialog($translate.instant('ordertype.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n OrderTypesApiService.deleteOrderType(vm.ordertype.id).then(function(response) {\n vm.ordertype = response;\n prepareData();\n vm.isNewOrderType = false;\n vm.isEditing = false;\n $state.go('base.ordertypes');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(ordertype) {\n ordertype.showEditForm = !ordertype.showEditForm;\n }\n\n function prepareData() {\n if (vm.ordertype === undefined) {\n return;\n }\n\n vm.ordertypeCopy = angular.copy(vm.ordertype);\n }\n\n function isAllInformationValid() {\n return true;\n }\n\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('ordertypes.ordertype', [])\n .config(stateConfig)\n .controller('OrderTypeController', OrderTypeController);\n","// @ngInject\nfunction OrderTypesApiService(ResourcesService) {\n\n var endpoint = 'ordertypes';\n\n return {\n getOrderTypes: ResourcesService.apiFactory.get(endpoint),\n getOrderType: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getPrintDocumentTemplates: ResourcesService.apiFactory.get(endpoint + '/printDocumentTemplates'),\n getDeliveryPlanningTemplates: ResourcesService.apiFactory.get(endpoint + '/deliveryPlanningTemplates'),\n createOrderType: ResourcesService.apiFactory.create(endpoint, 'OrderType'),\n updateOrderType: ResourcesService.apiFactory.update(endpoint, 'OrderType'),\n deleteOrderType: ResourcesService.apiFactory.delete(endpoint, 'OrderType')\n };\n}\n\nangular\n .module('ordertypes.api', [])\n .factory('OrderTypesApiService', OrderTypesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.ordertypes', {\n url: '/ordertypes?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/ordertypes/ordertypes.tpl.html',\n controller: 'OrderTypesController as vm'\n }},\n resolve: {\n ordertypes: ordertypesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction ordertypesResolver(OrderTypesApiService, $stateParams) {\n return OrderTypesApiService.getOrderTypes({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction OrderTypesController($rootScope, $state, $scope, ordertypes, OrderTypesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.ordertypes = ordertypes;\n vm.selectedOrderTypeId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.orderTypeId; }, function(newValue, oldValue) {\n vm.selectedOrderTypeId = parseInt($state.params.orderTypeId,10);\n });\n $rootScope.$on('OrderType.Inserted', function(event, response) {\n });\n $rootScope.$on('OrderType.Updated', function(event, response) {\n });\n $rootScope.$on('OrderType.Deleted', function(event, response) {\n });\n $rootScope.$on('OrderType.Changed', function(event, response) {\n loadOrderTypes();\n });\n }\n\n function loadOrderTypes() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n OrderTypesApiService.getOrderTypes(request).then(function(response) {\n vm.ordertypes = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadOrderTypes();\n }\n\n}\n\nangular\n .module('base.ordertypes', ['ordertypes.api','ordertypes.ordertype'])\n .config(stateConfig)\n .controller('OrderTypesController', OrderTypesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.paymentterms.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/paymentterms/paymentterm/paymentterm.tpl.html',\n controller: 'PaymentTermController as vm'\n }},\n resolve: {\n paymentterm: function() { return {}; },\n languages: languagesResolver,\n isNewPaymentTerm: function() {return true;}\n }\n });\n\n $stateProvider.state('base.paymentterms.paymentterm', {\n url:'/{paymenttermId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/paymentterms/paymentterm/paymentterm.tpl.html',\n controller: 'PaymentTermController as vm'\n }},\n resolve: {\n paymentterm: paymenttermResolver,\n languages: languagesResolver,\n isNewPaymentTerm: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction paymenttermResolver($stateParams, PaymentTermsApiService) {\n return PaymentTermsApiService.getPaymentTerm($stateParams.paymenttermId);\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, PaymentTermsApiService) {\n return PaymentTermsApiService.getLanguages();\n}\n\n// @ngInject\nfunction PaymentTermController($state, paymentterm, loadSpinnerService, PaymentTermsApiService, ToasterService, confirmationDialogService, $translate, isNewPaymentTerm, languages) {\n var vm = this;\n\n var paymenttermCopy = {};\n\n vm.paymentterm = paymentterm;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.savePaymentTerm = savePaymentTerm;\n vm.deletePaymentTerm = deletePaymentTerm;\n\n vm.isNewPaymentTerm = isNewPaymentTerm;\n vm.isEditing = vm.isNewPaymentTerm;\n\n vm.isPaymentTermCodeValid = isPaymentTermCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n vm.languages = languages;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewPaymentTerm) {\n vm.paymentterm = {};\n }\n\n appendLocalizations(vm.paymentterm, vm.languages);\n\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n paymenttermCopy = angular.copy(vm.paymentterm);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.paymentterm = paymenttermCopy;\n vm.isEditing = false;\n }\n\n function savePaymentTerm() {\n if (vm.isNewPaymentTerm) {\n saveNewPaymentTerm();\n } else {\n updatePaymentTerm();\n }\n }\n\n function saveNewPaymentTerm() {\n loadSpinnerService.start('mainSpinner');\n PaymentTermsApiService.createPaymentTerm(vm.paymentterm).then(function(response) {\n vm.paymentterm = response;\n prepareData();\n vm.isNewPaymentTerm = false;\n vm.isEditing = false;\n $state.go('base.paymentterms.paymentterm', {paymenttermId: vm.paymentterm.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updatePaymentTerm() {\n loadSpinnerService.start('mainSpinner');\n\n PaymentTermsApiService.updatePaymentTerm(vm.paymentterm).then(function(response) {\n vm.paymentterm = response;\n prepareData();\n vm.isNewPaymentTerm = false;\n vm.isEditing = false;\n $state.go('base.paymentterms.paymentterm', {paymenttermId: vm.paymentterm.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deletePaymentTerm() {\n confirmationDialogService\n .showDialog($translate.instant('paymentterm.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n PaymentTermsApiService.deletePaymentTerm(vm.paymentterm.id).then(function(response) {\n vm.paymentterm = response;\n prepareData();\n vm.isNewPaymentTerm = false;\n vm.isEditing = false;\n $state.go('base.paymentterms');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(paymentterm) {\n paymentterm.showEditForm = !paymentterm.showEditForm;\n }\n\n function prepareData() {\n if (vm.paymentterm === undefined) {\n return;\n }\n\n vm.paymenttermCopy = angular.copy(vm.paymentterm);\n }\n\n function isAllInformationValid() {\n return isPaymentTermCodeValid();\n }\n\n function isPaymentTermCodeValid() {\n if (!vm.paymentterm.code) { return false; }\n if (vm.paymentterm.code.length > 20) { return false; }\n\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('paymentterms.paymentterm', [])\n .config(stateConfig)\n .controller('PaymentTermController', PaymentTermController);\n","// @ngInject\nfunction PaymentTermsApiService(ResourcesService) {\n\n var endpoint = 'paymentterms';\n\n return {\n getPaymentTerms: ResourcesService.apiFactory.get(endpoint),\n getPaymentTerm: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createPaymentTerm: ResourcesService.apiFactory.create(endpoint, 'PaymentTerm'),\n updatePaymentTerm: ResourcesService.apiFactory.update(endpoint, 'PaymentTerm'),\n deletePaymentTerm: ResourcesService.apiFactory.delete(endpoint, 'PaymentTerm')\n };\n\n}\n\nangular\n .module('paymentterms.api', [])\n .factory('PaymentTermsApiService', PaymentTermsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.paymentterms', {\n url: '/paymentterms?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/paymentterms/paymentterms.tpl.html',\n controller: 'PaymentTermsController as vm'\n }},\n resolve: {\n paymentterms: paymenttermsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction paymenttermsResolver(PaymentTermsApiService, $stateParams) {\n return PaymentTermsApiService.getPaymentTerms({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction PaymentTermsController($rootScope, $state, $scope, paymentterms, PaymentTermsApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.paymentterms = paymentterms;\n vm.selectedPaymentTermId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.paymentTermId; }, function(newValue, oldValue) {\n vm.selectedPaymentTermId = parseInt($state.params.paymentTermId,10);\n });\n $rootScope.$on('PaymentTerm.Inserted', function(event, response) {\n });\n $rootScope.$on('PaymentTerm.Updated', function(event, response) {\n });\n $rootScope.$on('PaymentTerm.Deleted', function(event, response) {\n });\n $rootScope.$on('PaymentTerm.Changed', function(event, response) {\n loadPaymentTerms();\n });\n }\n\n function loadPaymentTerms() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n PaymentTermsApiService.getPaymentTerms(request).then(function(response) {\n vm.paymentterms = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadPaymentTerms();\n }\n\n}\n\nangular\n .module('base.paymentterms', ['paymentterms.api','paymentterms.paymentterm'])\n .config(stateConfig)\n .controller('PaymentTermsController', PaymentTermsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.paymenttypes.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/paymenttypes/paymenttype/paymenttype.tpl.html',\n controller: 'PaymentTypeController as vm'\n }},\n resolve: {\n paymentType: function() { return {}; },\n isNewPaymentType: function() {return true;},\n accounts: accountsResolver\n }\n });\n\n $stateProvider.state('base.paymenttypes.paymenttype', {\n url:'/{paymentTypeId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/paymenttypes/paymenttype/paymenttype.tpl.html',\n controller: 'PaymentTypeController as vm'\n }},\n resolve: {\n paymentType: paymentTypeResolver,\n isNewPaymentType: function() {return false;},\n accounts: accountsResolver\n }\n });\n\n}\n\n// @ngInject\nfunction paymentTypeResolver($stateParams, PaymentTypesApiService) {\n return PaymentTypesApiService.getPaymentType($stateParams.paymentTypeId);\n}\n\n// @ngInject\nfunction accountsResolver(PaymentTypesApiService) {\n return PaymentTypesApiService.getAccounts();\n}\n\n\n// @ngInject\nfunction PaymentTypeController($state, paymentType, loadSpinnerService, PaymentTypesApiService, ToasterService, confirmationDialogService, $translate, isNewPaymentType, accounts) {\n var vm = this;\n\n //Properties\n var paymentTypeCopy = {};\n vm.paymentType = paymentType;\n vm.accounts = accounts;\n vm.isNewPaymentType = isNewPaymentType;\n vm.isEditing = vm.isNewPaymentType;\n\n //Methods\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.savePaymentType = savePaymentType;\n vm.deletePaymentType = deletePaymentType;\n vm.isPaymentTypeCodeValid = isPaymentTypeCodeValid;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n actipaymentTypee();\n\n function actipaymentTypee() {\n prepareData();\n if (vm.isNewPaymentType) {\n vm.paymentType = {};\n }\n\n appendLocalizations(vm.paymentType, vm.languages);\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n paymentTypeCopy = angular.copy(vm.paymentType);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.paymentType = paymentTypeCopy;\n vm.isEditing = false;\n }\n\n function savePaymentType() {\n if (vm.isNewPaymentType) {\n // saveNewPaymentType();\n } else {\n updatePaymentType();\n }\n }\n\n // function saveNewPaymentType() {\n // loadSpinnerService.start('mainSpinner');\n // PaymentTypesApiService.createPaymentType(vm.paymentType).then(function(response) {\n // vm.paymentType = response;\n // prepareData();\n // vm.isNewPaymentType = false;\n // vm.isEditing = false;\n // $state.go('base.paymentTypes.paymentType', {paymentTypeId: vm.paymentType.id});\n // }, function(error) {\n // console.log(error);\n // ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n // }).then(function() {\n // loadSpinnerService.stop('mainSpinner');\n // });\n // }\n\n function updatePaymentType() {\n loadSpinnerService.start('mainSpinner');\n\n PaymentTypesApiService.updatePaymentType(vm.paymentType).then(function(response) {\n vm.paymentType = response;\n prepareData();\n vm.isNewPaymentType = false;\n vm.isEditing = false;\n $state.go('base.paymenttypes.paymenttype', {paymentTypeId: vm.paymentType.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deletePaymentType() {\n confirmationDialogService\n .showDialog($translate.instant('paymentType.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n PaymentTypesApiService.deletePaymentType(vm.paymentType.id).then(function(response) {\n vm.paymentType = response;\n prepareData();\n vm.isNewPaymentType = false;\n vm.isEditing = false;\n $state.go('base.paymentTypes');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(paymentType) {\n paymentType.showEditForm = !paymentType.showEditForm;\n }\n\n function prepareData() {\n if (vm.paymentType === undefined) {\n return;\n }\n\n vm.paymentTypeCopy = angular.copy(vm.paymentType);\n }\n\n\n function isPaymentTypeCodeValid() {\n if (!vm.paymentType.paymentTypeCode) { return false; }\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('paymenttypes.paymenttype', [])\n .config(stateConfig)\n .controller('PaymentTypeController', PaymentTypeController);\n","// @ngInject\nfunction PaymentTypesApiService(ResourcesService) {\n\n var endpoint = 'paymenttypes';\n\n return {\n getAccounts: ResourcesService.apiFactory.get(endpoint + '/accounts'),\n getPaymentTypes: ResourcesService.apiFactory.get(endpoint),\n getPaymentType: ResourcesService.apiFactory.get(endpoint),\n createPaymentType: ResourcesService.apiFactory.create(endpoint, 'PaymentType'),\n updatePaymentType: ResourcesService.apiFactory.update(endpoint, 'PaymentType'),\n deletePaymentType: ResourcesService.apiFactory.delete(endpoint, 'PaymentType')\n };\n\n}\n\nangular\n .module('paymenttypes.api', [])\n .factory('PaymentTypesApiService', PaymentTypesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.paymenttypes', {\n url: '/paymenttypes?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/paymenttypes/paymenttypes.tpl.html',\n controller: 'PaymentTypesController as vm'\n }},\n resolve: {\n paymentTypes: paymentTypesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction paymentTypesResolver(PaymentTypesApiService, $stateParams) {\n return PaymentTypesApiService.getPaymentTypes({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction PaymentTypesController($rootScope, $state, $scope, paymentTypes, PaymentTypesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.paymentTypes = paymentTypes;\n vm.selectedPaymentTypeId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.paymentTypeId; }, function(newValue, oldValue) {\n vm.selectedPaymentTypeId = parseInt($state.params.paymentTypeId,10);\n });\n $rootScope.$on('PaymentType.Inserted', function(event, response) {\n });\n $rootScope.$on('PaymentType.Updated', function(event, response) {\n });\n $rootScope.$on('PaymentType.Deleted', function(event, response) {\n });\n $rootScope.$on('PaymentType.Changed', function(event, response) {\n loadPaymentTypes();\n });\n }\n\n function loadPaymentTypes() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n PaymentTypesApiService.getPaymentTypes(request).then(function(response) {\n vm.paymentTypes = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadPaymentTypes();\n }\n\n}\n\nangular\n .module('base.paymenttypes', ['paymenttypes.api','paymenttypes.paymenttype'])\n .config(stateConfig)\n .controller('PaymentTypesController', PaymentTypesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.returnreasons.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/returnreasons/returnreason/returnreason.tpl.html',\n controller: 'ReturnReasonController as vm'\n }},\n resolve: {\n returnreason: function() { return {}; },\n locations: locationsResolver,\n isNewReturnReason: function() {return true;}\n }\n });\n\n $stateProvider.state('base.returnreasons.returnreason', {\n url:'/{returnreasonId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/returnreasons/returnreason/returnreason.tpl.html',\n controller: 'ReturnReasonController as vm'\n }},\n resolve: {\n returnreason: returnreasonResolver,\n locations: locationsResolver,\n isNewReturnReason: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction returnreasonResolver($stateParams, ReturnReasonsApiService) {\n return ReturnReasonsApiService.getReturnReason($stateParams.returnreasonId);\n}\n\n// @ngInject\nfunction locationsResolver(ReturnReasonsApiService) {\n return ReturnReasonsApiService.getLocations();\n}\n\n// @ngInject\nfunction ReturnReasonController($state, returnreason, loadSpinnerService, ReturnReasonsApiService, ToasterService, confirmationDialogService, $translate, isNewReturnReason, locations, $scope, FeatureSwitchService) {\n var vm = this;\n\n var returnreasonCopy = {};\n var locationCopy = {};\n\n vm.returnreason = returnreason;\n vm.locations = [];\n vm.location = {};\n vm.featureStockLocationEnabled = FeatureSwitchService.hasAdvancedReturnReason();\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveReturnReason = saveReturnReason;\n vm.deleteReturnReason = deleteReturnReason;\n\n vm.isNewReturnReason = isNewReturnReason;\n vm.isEditing = vm.isNewReturnReason;\n\n vm.isReturnReasonCodeValid = isReturnReasonCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n vm.locations = locations.data;\n vm.locations.unshift(getNoLocationLocation());\n vm.location = vm.locations[0];\n _.forEach(vm.locations, function(location) { \n if (vm.returnreason.stockLocationId && location.id === vm.returnreason.stockLocationId) {\n vm.location = location;\n }\n });\n \n\n prepareData();\n if (vm.isNewReturnReason) {\n vm.returnreason = {};\n }\n\n $scope.$watch(function() {\n return vm.location.id;\n }, \n function(newValue, oldValue) {\n if (oldValue !== newValue) {\n vm.returnreason.stockLocationId = newValue;\n }\n });\n\n $scope.$watch(function() {\n return vm.returnreason.adjustStock;\n }, \n function(newValue, oldValue) {\n if (newValue !== oldValue && !newValue) {\n vm.location = getNoLocationLocation();\n }\n });\n\n }\n\n function enableEditing() {\n returnreasonCopy = angular.copy(vm.returnreason);\n locationCopy = angular.copy(vm.location);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.returnreason = returnreasonCopy;\n vm.location = locationCopy;\n vm.isEditing = false;\n }\n\n function saveReturnReason() {\n if (vm.isNewReturnReason) {\n saveNewReturnReason();\n } else {\n updateReturnReason();\n }\n }\n\n function saveNewReturnReason() {\n loadSpinnerService.start('mainSpinner');\n ReturnReasonsApiService.createReturnReason(vm.returnreason).then(function(response) {\n vm.returnreason = response;\n prepareData();\n vm.isNewReturnReason = false;\n vm.isEditing = false;\n $state.go('base.returnreasons.returnreason', {returnreasonId: vm.returnreason.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateReturnReason() {\n loadSpinnerService.start('mainSpinner');\n\n ReturnReasonsApiService.updateReturnReason(vm.returnreason).then(function(response) {\n vm.returnreason = response;\n prepareData();\n vm.isNewReturnReason = false;\n vm.isEditing = false;\n $state.go('base.returnreasons.returnreason', {returnreasonId: vm.returnreason.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteReturnReason() {\n confirmationDialogService\n .showDialog($translate.instant('returnreason.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n ReturnReasonsApiService.deleteReturnReason(vm.returnreason.id).then(function(response) {\n vm.returnreason = response;\n prepareData();\n vm.isNewReturnReason = false;\n vm.isEditing = false;\n $state.go('base.returnreasons');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(returnreason) {\n returnreason.showEditForm = !returnreason.showEditForm;\n }\n\n function prepareData() {\n if (vm.returnreason === undefined) {\n return;\n }\n\n vm.returnreasonCopy = angular.copy(vm.returnreason);\n }\n\n function isAllInformationValid() {\n return isReturnReasonCodeValid();\n }\n\n function isReturnReasonCodeValid() {\n if (!vm.returnreason.code) { return false; }\n if (vm.returnreason.code.length > 20) { return false; }\n\n return true;\n }\n\n function getNoLocationLocation() {\n return { id: null, locationName: '---' };\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('returnreasons.returnreason', [])\n .config(stateConfig)\n .controller('ReturnReasonController', ReturnReasonController);\n","// @ngInject\nfunction ReturnReasonsApiService(ResourcesService, DSHttpAdapter, DS, $q) {\n\n var endpoint = 'returnreasons';\n\n return {\n getReturnReasons: ResourcesService.apiFactory.get(endpoint),\n getReturnReason: ResourcesService.apiFactory.get(endpoint),\n getLocations: GetLocations,\n createReturnReason: ResourcesService.apiFactory.create(endpoint),\n updateReturnReason: ResourcesService.apiFactory.update(endpoint, 'ReturnReason'),\n deleteReturnReason: ResourcesService.apiFactory.delete(endpoint, 'ReturnReason')\n };\n\n function GetLocations() \n {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + \"/returnreasons\" + \"/locations\").then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n\n }\n\n}\n\nangular\n .module('returnreasons.api', [])\n .factory('ReturnReasonsApiService', ReturnReasonsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.returnreasons', {\n url: '/returnreasons?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/returnreasons/returnreasons.tpl.html',\n controller: 'ReturnReasonsController as vm'\n }},\n resolve: {\n returnreasons: returnreasonsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction returnreasonsResolver(ReturnReasonsApiService, $stateParams) {\n return ReturnReasonsApiService.getReturnReasons({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction ReturnReasonsController($rootScope, $state, $scope, returnreasons, ReturnReasonsApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.returnreasons = returnreasons;\n vm.selectedReturnReasonId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.returnReasonId; }, function(newValue, oldValue) {\n vm.selectedReturnReasonId = parseInt($state.params.returnReasonId,10);\n });\n $rootScope.$on('ReturnReason.Inserted', function(event, response) {\n });\n $rootScope.$on('ReturnReason.Updated', function(event, response) {\n });\n $rootScope.$on('ReturnReason.Deleted', function(event, response) {\n });\n $rootScope.$on('ReturnReason.Changed', function(event, response) {\n loadReturnReasons();\n });\n }\n\n function loadReturnReasons() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n ReturnReasonsApiService.getReturnReasons(request).then(function(response) {\n vm.returnreasons = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadReturnReasons();\n }\n\n}\n\nangular\n .module('base.returnreasons', ['returnreasons.api','returnreasons.returnreason'])\n .config(stateConfig)\n .controller('ReturnReasonsController', ReturnReasonsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.shippingmethods.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/shippingmethods/shippingmethod/shippingmethod.tpl.html',\n controller: 'ShippingMethodController as vm'\n }},\n resolve: {\n shippingmethod: function() { return {}; },\n languages: languagesResolver,\n isNewShippingMethod: function() {return true;}\n }\n });\n\n $stateProvider.state('base.shippingmethods.shippingmethod', {\n url:'/{shippingmethodId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/shippingmethods/shippingmethod/shippingmethod.tpl.html',\n controller: 'ShippingMethodController as vm'\n }},\n resolve: {\n shippingmethod: shippingmethodResolver,\n languages: languagesResolver,\n isNewShippingMethod: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction shippingmethodResolver($stateParams, ShippingMethodsApiService) {\n return ShippingMethodsApiService.getShippingMethod($stateParams.shippingmethodId);\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, ShippingMethodsApiService) {\n return ShippingMethodsApiService.getLanguages();\n}\n\n// @ngInject\nfunction ShippingMethodController($state, shippingmethod, loadSpinnerService, ShippingMethodsApiService, ToasterService, confirmationDialogService, $translate, isNewShippingMethod, languages) {\n var vm = this;\n\n var shippingmethodCopy = {};\n\n vm.shippingmethod = shippingmethod;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveShippingMethod = saveShippingMethod;\n vm.deleteShippingMethod = deleteShippingMethod;\n\n vm.isNewShippingMethod = isNewShippingMethod;\n vm.isEditing = vm.isNewShippingMethod;\n\n vm.isShippingMethodCodeValid = isShippingMethodCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n vm.languages = languages;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewShippingMethod) {\n vm.shippingmethod = {};\n }\n\n appendLocalizations(vm.shippingmethod, vm.languages);\n\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n shippingmethodCopy = angular.copy(vm.shippingmethod);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.shippingmethod = shippingmethodCopy;\n vm.isEditing = false;\n }\n\n function saveShippingMethod() {\n if (vm.isNewShippingMethod) {\n saveNewShippingMethod();\n } else {\n updateShippingMethod();\n }\n }\n\n function saveNewShippingMethod() {\n loadSpinnerService.start('mainSpinner');\n ShippingMethodsApiService.createShippingMethod(vm.shippingmethod).then(function(response) {\n vm.shippingmethod = response;\n prepareData();\n vm.isNewShippingMethod = false;\n vm.isEditing = false;\n $state.go('base.shippingmethods.shippingmethod', {shippingmethodId: vm.shippingmethod.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateShippingMethod() {\n loadSpinnerService.start('mainSpinner');\n\n ShippingMethodsApiService.updateShippingMethod(vm.shippingmethod).then(function(response) {\n vm.shippingmethod = response;\n prepareData();\n vm.isNewShippingMethod = false;\n vm.isEditing = false;\n $state.go('base.shippingmethods.shippingmethod', {shippingmethodId: vm.shippingmethod.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteShippingMethod() {\n confirmationDialogService\n .showDialog($translate.instant('shippingmethod.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n ShippingMethodsApiService.deleteShippingMethod(vm.shippingmethod.id).then(function(response) {\n vm.shippingmethod = response;\n prepareData();\n vm.isNewShippingMethod = false;\n vm.isEditing = false;\n $state.go('base.shippingmethods');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(shippingmethod) {\n shippingmethod.showEditForm = !shippingmethod.showEditForm;\n }\n\n function prepareData() {\n if (vm.shippingmethod === undefined) {\n return;\n }\n\n vm.shippingmethodCopy = angular.copy(vm.shippingmethod);\n }\n\n function isAllInformationValid() {\n return isShippingMethodCodeValid();\n }\n\n function isShippingMethodCodeValid() {\n if (!vm.shippingmethod.code) { return false; }\n if (vm.shippingmethod.code.length > 20) { return false; }\n\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('shippingmethods.shippingmethod', [])\n .config(stateConfig)\n .controller('ShippingMethodController', ShippingMethodController);\n","// @ngInject\nfunction ShippingMethodsApiService(ResourcesService) {\n\n var endpoint = 'shippingmethods';\n\n return {\n getShippingMethods: ResourcesService.apiFactory.get(endpoint),\n getShippingMethod: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createShippingMethod: ResourcesService.apiFactory.create(endpoint, 'ShippingMethod'),\n updateShippingMethod: ResourcesService.apiFactory.update(endpoint, 'ShippingMethod'),\n deleteShippingMethod: ResourcesService.apiFactory.delete(endpoint, 'ShippingMethod')\n };\n\n}\n\nangular\n .module('shippingmethods.api', [])\n .factory('ShippingMethodsApiService', ShippingMethodsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.shippingmethods', {\n url: '/shippingmethods?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/shippingmethods/shippingmethods.tpl.html',\n controller: 'ShippingMethodsController as vm'\n }},\n resolve: {\n shippingmethods: shippingmethodsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction shippingmethodsResolver(ShippingMethodsApiService, $stateParams) {\n return ShippingMethodsApiService.getShippingMethods({ page: 0, searchTerm:$stateParams.searchTerm, pageSize: null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction ShippingMethodsController($rootScope, $state, $scope, shippingmethods, ShippingMethodsApiService, loadSpinnerService,searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.shippingmethods = shippingmethods;\n vm.selectedShippingMethodId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.shippingMethodId; }, function(newValue, oldValue) {\n vm.selectedShippingMethodId = parseInt($state.params.shippingMethodId,10);\n });\n $rootScope.$on('ShippingMethod.Inserted', function(event, response) {\n });\n $rootScope.$on('ShippingMethod.Updated', function(event, response) {\n });\n $rootScope.$on('ShippingMethod.Deleted', function(event, response) {\n });\n $rootScope.$on('ShippingMethod.Changed', function(event, response) {\n loadShippingMethods();\n });\n }\n\n function loadShippingMethods() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n ShippingMethodsApiService.getShippingMethods(request).then(function(response) {\n vm.shippingmethods = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadShippingMethods();\n }\n\n}\n\nangular\n .module('base.shippingmethods', ['shippingmethods.api','shippingmethods.shippingmethod'])\n .config(stateConfig)\n .controller('ShippingMethodsController', ShippingMethodsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('base.vats.new', {\n url:'/new',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/vats/vat/vat.tpl.html',\n controller: 'VatController as vm'\n }},\n resolve: {\n vat: function() { return {}; },\n isNewVat: function() {return true;},\n accounts: accountsResolver\n }\n });\n\n $stateProvider.state('base.vats.vat', {\n url:'/{vatId}',\n views: {\n 'baseView@base': {\n templateUrl: 'main/base/vats/vat/vat.tpl.html',\n controller: 'VatController as vm'\n }},\n resolve: {\n vat: vatResolver,\n isNewVat: function() {return false;},\n accounts: accountsResolver\n }\n });\n\n}\n\n// @ngInject\nfunction vatResolver($stateParams, VatsApiService) {\n return VatsApiService.getVat($stateParams.vatId);\n}\n\n// @ngInject\nfunction accountsResolver(VatsApiService) {\n return VatsApiService.getAccounts();\n}\n\n// @ngInject\nfunction languagesResolver($stateParams, VatsApiService) {\n return VatsApiService.getLanguages();\n}\n\n// @ngInject\nfunction VatController($state, vat, loadSpinnerService, VatsApiService, ToasterService, confirmationDialogService, $translate, isNewVat, accounts) {\n var vm = this;\n\n //Properties\n var vatCopy = {};\n vm.vat = vat;\n vm.accounts = accounts;\n vm.isNewVat = isNewVat;\n vm.isEditing = vm.isNewVat;\n\n //Methods\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveVat = saveVat;\n vm.deleteVat = deleteVat;\n vm.isVatCodeValid = isVatCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewVat) {\n vm.vat = {};\n }\n\n appendLocalizations(vm.vat, vm.languages);\n }\n\n function appendLocalizations(obj, languages) {\n if (!obj.localizations) {\n obj.localizations = [];\n }\n _.forEach(languages, function(language) {\n if (_.filter(obj.localizations, { language: { id: language.id}}).length === 0) {\n obj.localizations.push({ language: language });\n }\n });\n }\n\n function enableEditing() {\n vatCopy = angular.copy(vm.vat);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.vat = vatCopy;\n vm.isEditing = false;\n }\n\n function saveVat() {\n if (vm.isNewVat) {\n saveNewVat();\n } else {\n updateVat();\n }\n }\n\n function saveNewVat() {\n loadSpinnerService.start('mainSpinner');\n VatsApiService.createVat(vm.vat).then(function(response) {\n vm.vat = response;\n prepareData();\n vm.isNewVat = false;\n vm.isEditing = false;\n $state.go('base.vats.vat', {vatId: vm.vat.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateVat() {\n loadSpinnerService.start('mainSpinner');\n\n VatsApiService.updateVat(vm.vat).then(function(response) {\n vm.vat = response;\n prepareData();\n vm.isNewVat = false;\n vm.isEditing = false;\n $state.go('base.vats.vat', {vatId: vm.vat.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteVat() {\n confirmationDialogService\n .showDialog($translate.instant('vat.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n VatsApiService.deleteVat(vm.vat.id).then(function(response) {\n vm.vat = response;\n prepareData();\n vm.isNewVat = false;\n vm.isEditing = false;\n $state.go('base.vats');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(vat) {\n vat.showEditForm = !vat.showEditForm;\n }\n\n function prepareData() {\n if (vm.vat === undefined) {\n return;\n }\n\n vm.vatCopy = angular.copy(vm.vat);\n }\n\n function isAllInformationValid() {\n return isVatCodeValid();\n }\n\n function isVatCodeValid() {\n if (!vm.vat.vatCode) { return false; }\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('vats.vat', [])\n .config(stateConfig)\n .controller('VatController', VatController);\n","\n// @ngInject\nfunction VatsApiService($q, $rootScope, DS, DSHttpAdapter, ResourcesService) {\n var endpoint = 'vats';\n \n return {\n getAccounts: getAccounts,\n getVats: getVats,\n getVat: ResourcesService.apiRms2Factory.get(endpoint),\n createVat: ResourcesService.apiRms2Factory.create(endpoint, 'Vat'),\n updateVat: ResourcesService.apiRms2Factory.update(endpoint, 'Vat'),\n deleteVat: ResourcesService.apiRms2Factory.delete(endpoint, 'Vat')\n\n };\n function getAccounts() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.rms2Path + endpoint + '/accounts').then(function (response) {\n deferred.resolve(response.data.accounts);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n\n }\n \n function getVats(params) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.rms2Path + endpoint, { params: params } ).then(function (response) {\n deferred.resolve(response.data.vats);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n}\n\n angular\n .module('vats.api', [])\n .factory('VatsApiService', VatsApiService);","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('base.vats', {\n url: '/vats?searchTerm',\n views: {\n 'baseList': {\n templateUrl: 'main/base/vats/vats.tpl.html',\n controller: 'VatsController as vm'\n }},\n resolve: {\n vats: vatsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction vatsResolver(VatsApiService, $stateParams) {\n return VatsApiService.getVats({ page: 0, searchTerm:$stateParams.searchTerm, pageSize:null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction VatsController($rootScope, $state, $scope, vats, VatsApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.vats = vats;\n vm.selectedVatId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.vatId; }, function(newValue, oldValue) {\n vm.selectedVatId = parseInt($state.params.vatId,10);\n });\n $rootScope.$on('Vat.Inserted', function(event, response) {\n });\n $rootScope.$on('Vat.Updated', function(event, response) {\n });\n $rootScope.$on('Vat.Deleted', function(event, response) {\n });\n $rootScope.$on('Vat.Changed', function(event, response) {\n loadVats();\n });\n }\n\n function loadVats() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n VatsApiService.getVats(request).then(function(response) {\n vm.vats = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadVats();\n }\n\n}\n\nangular\n .module('base.vats', ['vats.api','vats.vat'])\n .config(stateConfig)\n .controller('VatsController', VatsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('budget', {\n url: '/budget',\n parent: 'main',\n abstract: true,\n templateUrl: \"main/budget/budget.tpl.html\",\n controller: \"MainBudgetController as vm\"\n });\n}\n\n// @ngInject\nfunction MainBudgetController() {\n var vm = this;\n}\n\nangular\n .module('main.budget', ['budgets.api', 'budget.budgets'])\n .config(stateConfig)\n .controller('MainBudgetController', MainBudgetController);\n","// @ngInject\nfunction BudgetsApiService($q, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = \"budgets\";\n\n return {\n getSalesBudgets: getSalesBudgets,\n getBudgetsForItemGroupAndCollection: getBudgetsForItemGroupAndCollection,\n getBudgetForItemGroupLocationAndCollection: getBudgetForItemGroupLocationAndCollection,\n getBudgetForCollection: getBudgetForCollection,\n getBudgetsForCompany: getBudgetsForCompany,\n importBudgets: ResourcesService.apiFactory.save(endpoint + '/salesbudgets/import')\n };\n\n function getSalesBudgets(page, filter, pageSize) {\n\n var params = {\n filter: '',\n page: 1,\n pageSize: 20\n };\n\n if (page && page > 1) {\n params.page = page;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.filter = filter;\n }\n\n var args = { params: params };\n\n return ResourcesService.apiFactory.get(endpoint + '/sales')(args);\n }\n\n function getBudgetsForItemGroupAndCollection(itemGroupId, collectionId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'budgets/itemgroup/' + itemGroupId + '/collection/' + collectionId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getBudgetForItemGroupLocationAndCollection(itemGroupId, locationId, collectionId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'budgets/itemgroup/' + itemGroupId + '/location/' + locationId + '/collection/' + collectionId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getBudgetForCollection(collectionId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'budgets/collection/' + collectionId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getBudgetsForCompany(companyId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'budgets/company/' + companyId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('budgets.api', [])\n .factory('BudgetsApiService', BudgetsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('budget.budgets', {\n url: '',\n templateUrl: 'main/budget/budgets/budgets.tpl.html',\n controller: 'BudgetsController as vm'\n });\n}\n\n// @ngInject\nfunction BudgetsController($rootScope, $state, $translate, loadSpinnerService, BudgetsApiService) {\n var vm = this;\n\n vm.budgets = [];\n vm.currentPage = 1;\n vm.itemsPerPage = 15;\n vm.totalItems= 0;\n vm.filter = '';\n\n vm.loadSpinnerService = loadSpinnerService;\n vm.BudgetsApiService = BudgetsApiService;\n vm.onBudgetImported = onBudgetImported;\n\n function onBudgetImported(budgets) {\n BudgetsApiService.importBudgets({budgets:budgets}).then(function (response) {\n loadBudgets();\n })\n .catch(function (error) {\n console.error(error);\n });\n }\n\n function loadBudgets() {\n vm.loadSpinnerService.start('mainSpinner');\n vm.BudgetsApiService.getSalesBudgets(vm.currentPage, vm.filter, vm.itemsPerPage).then(function (response) {\n vm.budgets = response.results;\n vm.totalItems = response.total;\n }).finally(function() {\n vm.loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n vm.loadBudgets = loadBudgets;\n loadBudgets();\n}\n\n\nangular\n .module('budget.budgets', ['budgets.api'])\n .config(stateConfig)\n .controller('BudgetsController', BudgetsController);\n","angular.module('components.caBudgetImport', [])\n.component('caBudgetImport', {\n templateUrl: 'main/budget/budgets/components/budgetImport.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n disabledBy: '<',\n onBudgetImported: '&'\n },\n controller: controller\n});\n\n// @ngInject\nfunction controller(GenericComponentService, $translate, loadSpinnerService, confirmationDialogService) {\n var vm = this;\n\n vm.importData = [];\n\n var fileInputDomElement = $(\"#xlf\")[ 0 ];\n\n fileInputDomElement.addEventListener('change', handleFile, false);\n\n function handleFile(element) {\n var file = element.target.files[0];\n\n var reader = new FileReader();\n reader.onload = onLoadFunction;\n reader.readAsArrayBuffer(file);\n }\n\n function onLoadFunction(e) {\n try {\n loadSpinnerService.start('mainSpinner');\n\n var data = \"\";\n var bytes = new Uint8Array(e.target.result);\n var length = bytes.byteLength;\n for (var i = 0; i < length; i++) {\n data += String.fromCharCode(bytes[i]);\n }\n var workbook = XLSX.read(data, {type: 'binary'});\n\n var firstSheetName = workbook.SheetNames[0];\n\n var workSheet = workbook.Sheets[firstSheetName];\n\n vm.importData = XLSX.utils.sheet_to_json(workSheet);\n\n confirmationDialogService.showDialog($translate.instant('budget.numberOfRows') + \": \" + vm.importData.length).then(function (result) {\n if (result === true) {\n vm.onBudgetImported({budgets:vm.importData});\n }\n $(\"#xlf\")[ 0 ].value = \"\";\n });\n\n } catch (error) {\n console.error(error);\n } finally {\n loadSpinnerService.stop('mainSpinner');\n }\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.bulkoperation', {\n url: '/bulk',\n views: {\n \"wideColumnView@contacts\": {\n templateUrl: 'main/contacts/bulkoperation/bulkoperation.tpl.html',\n controller: 'BulkOperationController as vm'\n }\n }\n });\n}\n\n//@ngInject\nfunction BulkOperationController($scope, $translate, $q, $rootScope, AuthService, UsersApiService, LocationsApiService, RolesApiService, loadSpinnerService) {\n var vm = this;\n\n var flexGrid = {};\n var originalRowData = [];\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n\n var currentUserClaims = $rootScope.currentUser.claims;\n\n vm.dataSource = {};\n vm.dataSourceChoice = {};\n vm.dataSourceChoices = [\n {translationKey: 'bulk.usersandlocations', value: 'usersAndLocations'}\n ];\n vm.captureGrid = captureGrid;\n vm.saveData = saveData;\n vm.rowCollection = rowCollection;\n vm.selectAll = selectAll;\n vm.selectNone = selectNone;\n vm.searchTerm = \"\";\n vm.searchTermChanged = searchTermChanged;\n vm.isAllowedToSave = isAllowedToSave;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return vm.dataSourceChoice.value; },\n function() {\n console.log(\"Data source changed.\");\n getData();\n });\n }\n\n function captureGrid(s) {\n flexGrid = s;\n flexGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.None,\n itemsSource: rowCollection\n });\n }\n\n function getData() {\n var dataSource = vm.dataSourceChoice.value;\n if (dataSource === 'usersAndLocations') {\n prepareUsersAndLocationData();\n }\n }\n\n function saveData() {\n var dataSource = vm.dataSourceChoice.value;\n if (dataSource === 'usersAndLocations') {\n saveUserAndLocationData();\n }\n }\n\n function searchTermChanged() {\n var dataSource = vm.dataSourceChoice.value;\n if (dataSource === 'usersAndLocations') {\n generateUsersAndLocationDataRows();\n }\n }\n\n function isAllowedToSave() {\n var dataSource = vm.dataSourceChoice.value;\n if (dataSource === 'usersAndLocations') {\n if (AuthService.canAccess('user', 'update')) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n // =======================================\n // Getting data and populating grid\n // =======================================\n // -------- Users and locations --------\n function prepareUsersAndLocationData() {\n loadSpinnerService.start('mainSpinner');\n vm.dataSource = {};\n clearGridColumns();\n\n // Get data\n $q.all([\n UsersApiService.getAll({showInactiveUsers:false}),\n LocationsApiService.getLocations()\n ]).then(function(responses) {\n vm.dataSource['users'] = responses[0];\n vm.dataSource['locations'] = responses[1];\n\n // Generate columns\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"rowHeader\";\n rowHeader.header = \" \";\n rowHeader.allowSorting = false;\n rowHeader.width = 150;\n rowHeader.isReadOnly = true;\n flexGrid.columns.push(rowHeader);\n\n _.forEach(vm.dataSource['locations'], function(location) {\n var c = new wijmo.grid.Column();\n c.binding = location.locationNumber + location.locationName;\n c.header = location.locationNumber + \" \" + location.locationName;\n c.allowSorting = false;\n c.width = 100;\n c.isReadOnly = false;\n flexGrid.columns.push(c);\n });\n\n generateUsersAndLocationDataRows();\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function generateUsersAndLocationDataRows() {\n clearRowData();\n _.forEach(vm.dataSource['users'], function(user) {\n var r = { rowHeader: user.firstName + \" \" + user.lastName };\n _.forEach(vm.dataSource['locations'], function(location) {\n if (_.find(user.locations, function(userLocation) { return userLocation.id === location.id; })) {\n r[location.locationNumber + location.locationName] = true;\n } else {\n r[location.locationNumber + location.locationName] = false;\n }\n });\n\n if (vm.searchTerm === '' || (vm.searchTerm !== '' && stringMatchesSearchTerm(r.rowHeader, vm.searchTerm))) {\n rowData.push(r);\n }\n });\n\n originalRowData = angular.copy(rowData);\n flexGrid.invalidate();\n rowCollection.refresh();\n }\n\n\n // =======================================\n // Persisting data\n // =======================================\n function saveUserAndLocationData() {\n var changedRows = getChangedRows(rowData, originalRowData);\n var requests = [];\n\n // Construct request data structure.\n _.forEach(changedRows, function(row) {\n var user = _.find(vm.dataSource['users'], function(user) {\n return user.firstName + \" \" + user.lastName === row.rowHeader;\n });\n\n var locations = [];\n var locationIdentifiers = _.without(Object.keys(row), \"rowHeader\");\n\n _.forEach(locationIdentifiers, function(identifier) {\n\n if (row[identifier] === true) {\n var location = _.find(vm.dataSource['locations'], function(location) {\n return location.locationNumber + location.locationName === identifier;\n });\n locations.push(location);\n }\n\n });\n\n user.locations = locations;\n user.password = undefined;\n requests.push(user);\n });\n\n // Send requests and collect promises.\n var requestPromises = [];\n loadSpinnerService.start('mainSpinner');\n _.forEach(requests, function(request) {\n var promise = UsersApiService.updateUserInfo(request, request.id);\n requestPromises.push(promise);\n });\n\n // Wait for promises to resolve.\n $q.all(requestPromises).then(function(responses) {\n vm.dataSource = {};\n vm.dataSourceChoice = {};\n loadSpinnerService.stop('mainSpinner');\n clearGridColumns();\n });\n }\n\n function selectAll() {\n _.forEach(flexGrid.rows, function(gridRow) {\n var keys = Object.keys(gridRow.dataItem);\n _.forEach(keys, function(key) {\n if (key.indexOf('rowHeader') > -1) {\n\n } else {\n gridRow.dataItem[key] = true;\n }\n });\n });\n\n flexGrid.invalidate();\n rowCollection.refresh();\n }\n\n function selectNone() {\n _.forEach(flexGrid.rows, function(gridRow) {\n var keys = Object.keys(gridRow.dataItem);\n _.forEach(keys, function(key) {\n if (key.indexOf('rowHeader') > -1) {\n\n } else {\n gridRow.dataItem[key] = false;\n }\n });\n });\n\n flexGrid.invalidate();\n rowCollection.refresh();\n }\n\n function stringMatchesSearchTerm(str, searchTerm) {\n\n var splitSearchTerms = searchTerm.split(' ');\n var matchResults = [];\n\n for (var i = 0; i < splitSearchTerms.length; i++) {\n var term = splitSearchTerms[i];\n if (_.toLower(str).indexOf(_.toLower(term)) > -1) {\n // Matches\n } else {\n // Does not match\n return false;\n }\n }\n return true;\n }\n\n function getChangedRows(data, originalData) {\n var changedRows = [];\n for (var i = 0; i < data.length; i++) {\n var row = data[i];\n var originalRow = originalData[i];\n var keys = Object.keys(row);\n _.forEach(keys, addRowIfValueChanged);\n }\n\n return changedRows;\n\n function addRowIfValueChanged(key) {\n if (row[key] !== originalRow[key]) {\n changedRows.push(row);\n return false;\n }\n }\n }\n\n function clearGridColumns() {\n flexGrid.columns.clear();\n flexGrid.invalidate();\n rowCollection.refresh();\n }\n\n function clearRowData() {\n rowData.length = 0;\n originalRowData.length = 0;\n }\n\n}\n\n\nangular.module('contacts.bulkoperation', [])\n .config(stateConfig)\n .controller('BulkOperationController', BulkOperationController);\n","// @ngInject\nfunction CompaniesApiService(ResourcesService) {\n\n var endpoint = 'companies';\n\n return {\n getAll: ResourcesService.apiFactory.get(endpoint),\n listAll: ResourcesService.apiFactory.get(endpoint + '/brief'),\n getCompany: ResourcesService.apiFactory.get(endpoint),\n createCompany: ResourcesService.apiFactory.create(endpoint,'Company'),\n updateCompany: updateCompany,\n getCompanyTypes: ResourcesService.apiFactory.get(endpoint + '/companytypes'),\n getSuppliers: ResourcesService.apiFactory.get(endpoint + '/suppliers'),\n getSuppliersBrief: ResourcesService.apiFactory.get(endpoint + '/suppliersbrief'),\n getDeliveryTerms: ResourcesService.apiFactory.get(endpoint + '/deliveryterms'),\n getPaymentTerms: ResourcesService.apiFactory.get(endpoint + '/paymentterms'),\n getShippingMethods: ResourcesService.apiFactory.get(endpoint + '/shippingmethods'),\n getAddressTypes: ResourcesService.apiFactory.get(endpoint + '/addresstypes'),\n getContactInfoTypes: ResourcesService.apiFactory.get(endpoint + '/contactinfotypes'),\n getCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies'),\n getActiveUsers: ResourcesService.apiFactory.get(endpoint + '/activeusers'),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n getPricingModels: ResourcesService.apiFactory.get(endpoint + '/pricemodels'),\n getPriceListBriefs: ResourcesService.apiFactory.get(endpoint + '/pricelists')\n };\n\n function updateCompany(id, data) {\n\n // The internal json stringification of DSHttpAdapter seems to cause some object fields to go\n // missing for some reason.\n data = JSON.stringify(data);\n\n return ResourcesService.apiFactory.update(endpoint + '/' + id, 'Company')(data);\n }\n}\n\n\nangular.module('companies.api', [])\n .factory('CompaniesApiService', CompaniesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.companies', {\n url: '/companies?searchTerm',\n views: {\n \"contactList@contacts\": {\n templateUrl: 'main/contacts/companies/companies.tpl.html',\n controller: 'ContactsCompaniesController as vm'\n }\n },\n resolve: {\n companies: companiesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction companiesResolver(CompaniesApiService,$stateParams) {\n return CompaniesApiService.listAll({ filter: $stateParams.searchTerm});\n}\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction ContactsCompaniesController($rootScope, $state, $scope, AuthService, companies, CompaniesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.companies = companies;\n vm.selectedCompanyId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n\n vm.searchTermChange = searchTermChange;\n vm.goToCompany = goToCompany;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.brandId; }, function(newValue, oldValue) {\n vm.selectedCompanyId = parseInt($state.params.companyId, 10);\n });\n $rootScope.$on('Company.Changed', function() {\n reload();\n });\n }\n\n function searchTermChange() {\n reload();\n }\n\n function reload() {\n loadSpinnerService.start('mainSpinner');\n CompaniesApiService.listAll({ filter: vm.searchTerm}).then(function (data) {\n vm.companies = data;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n function goToCompany(company) {\n if (AuthService.canAccess('company', 'read')) {\n vm.selectedCompanyId = company.id;\n $state.go('contacts.companies.company', {companyId: company.id});\n }\n }\n}\n\nangular.module('contacts.companies', ['companies.api','companies.company'])\n .config(stateConfig)\n .controller('ContactsCompaniesController', ContactsCompaniesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('contacts.companies.new', {\n url: '/new/',\n views: {\n \"contactView@contacts\": {\n templateUrl: 'main/contacts/companies/company/company.tpl.html',\n controller: 'CompanyController as vm'\n }\n },\n resolve: {\n company: function() {return {};},\n isNewCompany: function() {return true;},\n companyTypes: companyTypesResolver,\n currencies: currenciesResolver,\n users: usersResolver,\n languages: languagesResolver,\n shippingMethods: shippingMethodsResolver,\n deliveryTerms: deliveryTermsResolver,\n paymentTerms: paymentTermsResolver,\n pricingModels: pricingModelResolver,\n priceLists: priceListResolver\n }\n });\n\n $stateProvider.state('contacts.companies.company', {\n url: '/{companyId}',\n views: {\n \"contactView@contacts\": {\n templateUrl: 'main/contacts/companies/company/company.tpl.html',\n controller: 'CompanyController as vm'\n }\n },\n resolve: {\n company: companyResolver,\n isNewCompany: function() {return false;},\n companyTypes: companyTypesResolver,\n currencies: currenciesResolver,\n users: usersResolver,\n languages: languagesResolver,\n shippingMethods: shippingMethodsResolver,\n deliveryTerms: deliveryTermsResolver,\n paymentTerms: paymentTermsResolver,\n pricingModels: pricingModelResolver,\n priceLists: priceListResolver\n }\n });\n\n}\n\n// @ngInject\nfunction companyResolver($stateParams, CompaniesApiService) {\n return CompaniesApiService.getCompany($stateParams.companyId);\n}\n\n// @ngInject\nfunction companyTypesResolver(CompaniesApiService) {\n return CompaniesApiService.getCompanyTypes();\n}\n\n// @ngInject\nfunction currenciesResolver(CompaniesApiService) {\n return CompaniesApiService.getCurrencies();\n}\n\n// @ngInject\nfunction usersResolver(CompaniesApiService) {\n return CompaniesApiService.getActiveUsers();\n}\n\n// @ngInject\nfunction languagesResolver(CompaniesApiService) {\n return CompaniesApiService.getLanguages();\n}\n// @ngInject\nfunction shippingMethodsResolver(CompaniesApiService) {\n return CompaniesApiService.getShippingMethods();\n}\n// @ngInject\nfunction deliveryTermsResolver(CompaniesApiService) {\n return CompaniesApiService.getDeliveryTerms();\n}\n// @ngInject\nfunction paymentTermsResolver(CompaniesApiService) {\n return CompaniesApiService.getPaymentTerms();\n}\n// @ngInject\nfunction pricingModelResolver(CompaniesApiService) {\n return CompaniesApiService.getPricingModels();\n}\n\n// @ngInject\nfunction priceListResolver(CompaniesApiService) {\n return CompaniesApiService.getPriceListBriefs();\n}\n\n// @ngInject\nfunction CompanyController($state, $filter, $translate, company, isNewCompany, companyTypes, CompaniesApiService, loadSpinnerService, $scope, AuthService, currencies, users, languages, shippingMethods, deliveryTerms, paymentTerms, ToasterService, pricingModels, priceLists) {\n var vm = this;\n\n //Properties\n vm.companyTypes = companyTypes;\n vm.pricingModels = pricingModels.priceModels;\n vm.languages = languages;\n vm.currencies = currencies;\n if (isNewCompany === undefined || !isNewCompany) {\n vm.company = company;\n vm.company.commissionPercent = vm.company.commissionPercent ? vm.company.commissionPercent * 100 : 0;\n vm.priceModelObject = $filter('filter')(vm.pricingModels, {'name':vm.company.priceModel})[0];\n\n if (vm.company && vm.company.addresses) {\n _.forEach(vm.company.addresses, function (currAddr) {\n currAddr.addressType = _.find(vm.addressTypes, function(at) { return at.id === currAddr.addressTypeId; });\n });\n }\n\n vm.isEditing = false;\n } else {\n vm.company = {\n id: -1,\n companyType: vm.companyTypes[0],\n language: vm.languages[0],\n purchasingCurrency: vm.currencies[0]\n };\n vm.priceModelObject = vm.pricingModels[0];\n vm.isEditing = true;\n }\n vm.users = users;\n vm.shippingMethods = shippingMethods;\n vm.paymentTerms = paymentTerms;\n vm.deliveryTerms = deliveryTerms;\n vm.isNewCompany = isNewCompany;\n var companyCopy = angular.copy(vm.company);\n vm.canAccess = AuthService.canAccess;\n vm.newAddress = {};\n vm.newContactInfo = {};\n vm.availableAddressTypes = [];\n vm.availableContactInfoTypes = [];\n vm.addressTypes = [];\n vm.contactInfoTypes = [];\n vm.priceLists = priceLists;\n vm.resellerPriorities = [];\n vm.company.selectedPriority = {};\n\n //Methods\n vm.addNewAddress = addNewAddress;\n vm.removeAddress = removeAddress;\n vm.addNewContactInfo = addNewContactInfo;\n vm.removeContactInfo = removeContactInfo;\n vm.save = save;\n vm.startEdit = startEdit;\n vm.cancelEdit = cancelEdit;\n vm.allInformationIsValid = allInformationIsValid;\n vm.hasCompanyName = hasCompanyName;\n vm.hasDeliveryTerm = hasDeliveryTerm;\n vm.hasPaymentTerm = hasPaymentTerm;\n vm.hasShippingMethod = hasShippingMethod;\n vm.hasResellerPriceList = hasResellerPriceList;\n\n activate();\n\n function activate() {\n CompaniesApiService.getAddressTypes().then(function(types) {\n vm.addressTypes = types;\n\n if (vm.company && vm.company.addresses) {\n for (var index = 0; index < vm.company.addresses.length; index++) {\n var currAddr = vm.company.addresses[index];\n currAddr.addressType = _.find(vm.addressTypes, function(at) { return at.id === currAddr.addressTypeId; });\n }\n }\n\n resetTypes();\n });\n CompaniesApiService.getContactInfoTypes().then(function(types) {\n vm.contactInfoTypes = types;\n resetTypes();\n });\n\n if (vm.isNewCompany) {\n vm.isEditing = true;\n }\n\n vm.resellerPriorities = [\n { code: 'A', displayName: 'A - ' + $translate.instant('resellerorder.priorityA') },\n { code: 'B', displayName: 'B - ' + $translate.instant('resellerorder.priorityB') },\n { code: 'C', displayName: 'C - ' + $translate.instant('resellerorder.priorityC') },\n { code: 'D', displayName: 'D - ' + $translate.instant('resellerorder.priorityD') },\n { code: 'S', displayName: 'S - ' + $translate.instant('resellerorder.priorityS') }\n ];\n\n applyResellerPriority();\n }\n\n $scope.$watch(function() { return vm.priceModelObject.id; }, function(oldValue, newValue) {\n vm.company.priceModel = vm.priceModelObject.name;\n });\n\n function hasCompanyName() {\n return vm.company.companyName && vm.company.companyName.trim().length > 0;\n }\n function hasDeliveryTerm() {\n return vm.company.deliveryTerm && vm.company.deliveryTerm.id > 0;\n }\n function hasPaymentTerm() {\n return vm.company.paymentTerm && vm.company.paymentTerm.id > 0;\n }\n function hasShippingMethod() {\n return vm.company.shippingMethod && vm.company.shippingMethod.id > 0;\n }\n function hasResellerPriceList() {\n if (vm.company.companyType && vm.company.companyType.type === 'reseller') {\n return vm.company.resellerPriceList && vm.company.resellerPriceList.id > 0;\n }\n else { return false; }\n }\n\n function allInformationIsValid() {\n return hasCompanyName() && hasDeliveryTerm() && hasPaymentTerm() && hasShippingMethod();\n }\n\n function createCompanyObject(company) {\n if (company.addresses) {\n for (var index = 0; index < company.addresses.length; index++) {\n var currAddr = company.addresses[index];\n currAddr.addressTypeId = currAddr.addressType.id;\n }\n }\n\n return {\n addresses: company.addresses,\n alternativeCompanyId: company.alternativeCompanyId,\n brands: company.brands,\n commissionPercent: company.commissionPercent / 100,\n companyName: company.companyName,\n companySystemType: company.companyType !== null && company.companyType !== undefined ? company.companyType.companySystemType : 0,\n companyTypeId: company.companyType !== null && company.companyType !== undefined ? company.companyType.id : null,\n contactInfos: company.contactInfos,\n deliveryTermsId: company.deliveryTerm !== null && company.deliveryTerm !== undefined ? company.deliveryTerm.id : null,\n languageId: company.language !== null && company.language !== undefined ? company.language.id : null,\n leadTime: company.leadTime,\n organizationNumber: company.organizationNumber,\n paymentTermsId: company.paymentTerm !== null && company.paymentTerm !== undefined ? company.paymentTerm.id : null,\n priceModel: company.priceModel,\n primaryPurchaserId: company.primaryPurchaser !== null && company.primaryPurchaser !== undefined ? company.primaryPurchaser.id : null,\n priority: company.selectedPriority.code,\n purchasingCurrencyId: company.purchasingCurrency !== null && company.purchasingCurrency !== undefined ? company.purchasingCurrency.id : null,\n resellerPriceListId: company.resellerPriceList !== null && company.resellerPriceList !== undefined ? company.resellerPriceList.id : null,\n shippingMethodId: company.shippingMethod !== null && company.shippingMethod !== undefined ? company.shippingMethod.id : null\n };\n }\n\n function saveNewCompany() {\n loadSpinnerService.start('mainSpinner');\n var companyObject = createCompanyObject(vm.company);\n CompaniesApiService.createCompany(companyObject).then(function(response) {\n $state.go('contacts.companies.company', { companyId: response.id });\n vm.isEditing = false;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateCompany() {\n loadSpinnerService.start('mainSpinner');\n\n var companyObject = createCompanyObject(vm.company);\n\n CompaniesApiService.updateCompany(vm.company.id, companyObject).then(function(response) {\n vm.company = response;\n vm.company.commissionPercent = vm.company.commissionPercent ? vm.company.commissionPercent * 100 : 0;\n\n if (vm.company && vm.company.addresses) {\n for (var index = 0; index < vm.company.addresses.length; index++) {\n var currAddr = vm.company.addresses[index];\n currAddr.addressType = _.find(vm.addressTypes, function(at) { return at.id === currAddr.addressTypeId; });\n }\n }\n\n companyCopy = angular.copy(response);\n\n applyResellerPriority();\n\n vm.isEditing = false;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function addNewAddress() {\n vm.company.addresses = vm.company.addresses || [];\n vm.company.addresses.push(_.clone(vm.newAddress));\n resetTypes();\n }\n\n function addNewContactInfo() {\n vm.company.contactInfos = vm.company.contactInfos || [];\n vm.company.contactInfos.push(_.clone(vm.newContactInfo));\n resetTypes();\n }\n\n function removeAddress(address) {\n vm.company.addresses.splice(_.findIndex(vm.company.addresses,{addressType:{typeName:address.addressType.typeName}}),1);\n resetTypes();\n }\n\n function removeContactInfo(contactInfo) {\n vm.company.contactInfos.splice(_.findIndex(vm.company.contactInfos,{contactInfoType:{typeName:contactInfo.contactInfoType.typeName}}),1);\n resetTypes();\n }\n\n function getAvailableAddressTypes() {\n return _.filter(vm.addressTypes, function(obj) {\n if (!vm.company.addresses) {\n return true;\n } else {\n return !_.find(vm.company.addresses, { addressType: { id: obj.id }});\n }\n });\n }\n\n function getAvailableContactInfoTypes() {\n return _.filter(vm.contactInfoTypes, function(obj) { return !_.find(vm.company.contactInfos, {contactInfoType: { id: obj.id }}); });\n }\n\n function resetTypes() {\n vm.newAddress = {};\n vm.newContactInfo = {};\n vm.availableAddressTypes = getAvailableAddressTypes();\n vm.availableContactInfoTypes = getAvailableContactInfoTypes();\n }\n\n function save() {\n if (vm.isNewCompany) {\n saveNewCompany();\n } else {\n updateCompany();\n }\n }\n\n function startEdit() {\n companyCopy = angular.copy(vm.company);\n resetTypes();\n vm.isEditing = true;\n }\n\n function cancelEdit() {\n vm.company = angular.copy(companyCopy);\n vm.isEditing = false;\n }\n\n function applyResellerPriority() \n {\n if (vm.company.priority) {\n vm.company.selectedPriority = _.find(vm.resellerPriorities, function(o) {\n return o.code.toLowerCase() === vm.company.priority.toLowerCase();\n });\n } else {\n vm.company.selectedPriority = vm.resellerPriorities[4];\n }\n }\n}\n\nangular.module('companies.company', [])\n .config(stateConfig)\n .controller('CompanyController', CompanyController);\n","angular.module('components.caAddressForm', [])\n .component('caAddressForm', {\n templateUrl: 'main/contacts/components/addressform.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n address: '=',\n isEditing: '<',\n onAddressUpdated: '&',\n onAddressDeleted: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller() {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.addressUpdated = addressUpdated;\n vm.deleteAddress = deleteAddress;\n\n function onInit() {\n if (vm.isEditing === undefined) {\n vm.isEditing = false;\n }\n }\n function onChanges(changes) {\n }\n function onDestroy() {\n }\n\n function addressUpdated(address) {\n vm.address.addressLine1 = address.addressLine1;\n vm.address.addressLine2 = address.addressLine2;\n vm.address.addressLine3 = address.addressLine3;\n vm.address.postalCode = address.postalCode;\n vm.address.city = address.city;\n vm.address.country = address.country;\n }\n\n function deleteAddress(address) {\n vm.onAddressDeleted({address: address});\n }\n}\n","angular.module('components.caContactInfoForm', [])\n .component('caContactInfoForm', {\n templateUrl: 'main/contacts/components/contactinfoform.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n contactInfo: '=',\n isEditing: '<',\n onContactInfoUpdated: '&',\n onContactInfoDeleted: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller() {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.contactInfoUpdated = contactInfoUpdated;\n vm.deleteContactInfo = deleteContactInfo;\n\n function onInit() {\n if (vm.isEditing === undefined) {\n vm.isEditing = false;\n }\n }\n function onChanges(changes) {\n }\n function onDestroy() {\n }\n\n function contactInfoUpdated(contactInfo) {\n vm.contactInfo.value = contactInfo.value;\n // vm.onContactInfoUpdated({contactInfo: contactInfo});\n }\n\n function deleteContactInfo(contactInfo) {\n vm.onContactInfoDeleted({contactInfo: contactInfo});\n }\n\n\n}\n","angular.module('components.caNewAddressForm', [])\n .component('caNewAddressForm', {\n templateUrl: 'main/contacts/components/newaddressform.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n addressTypes: '<',\n onAddressCreated: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller() {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.createAddress = createAddress;\n\n vm.selectedAddressType = {};\n\n function onInit() {\n if (vm.addressTypes.length !== 0) {\n vm.selectedAddressType = vm.addressTypes[0];\n }\n }\n function onChanges(changes) {\n }\n function onDestroy() {\n }\n\n function createAddress() {\n var newAddress = {\n addressType: vm.selectedAddressType,\n addressLine1: '',\n addressLine2: '',\n addressLine3: '',\n postalcode: '',\n city: '',\n country: ''\n };\n\n vm.onAddressCreated({address: newAddress});\n }\n}\n","angular.module('components.caNewContactInfoForm', [])\n .component('caNewContactInfoForm', {\n templateUrl: 'main/contacts/components/newcontactinfoform.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n contactInfoTypes: '<',\n onContactInfoCreated: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller() {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.createContactInfo = createContactInfo;\n\n vm.selectedContactInfoType = {};\n\n function onInit() {\n if (vm.contactInfoTypes.length !== 0) {\n vm.selectedContactInfoType = vm.contactInfoTypes[0];\n }\n }\n function onChanges(changes) {\n }\n function onDestroy() {\n }\n\n function createContactInfo() {\n var newContactInfo = {\n contactInfoType: vm.selectedContactInfoType,\n value: ''\n };\n\n vm.onContactInfoCreated({contactInfo: newContactInfo});\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts', {\n url: '/contacts',\n parent: 'main',\n abstract: true,\n templateUrl: \"main/contacts/contacts.tpl.html\",\n controller: \"MainContactsController as vm\"\n });\n}\n\n// @ngInject\nfunction MainContactsController() {\n var vm = this;\n}\n\nangular.module('main.contacts', ['contacts.locations', 'contacts.users', 'contacts.companies', 'contacts.roles', 'contacts.bulkoperation'])\n .config(stateConfig)\n .controller('MainContactsController', MainContactsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.locations.location', {\n url: '/{locationId}',\n views: {\n \"contactView@contacts\": {\n templateUrl: 'main/contacts/locations/location/location.tpl.html',\n controller: 'ContactsLocationController as vm'\n }\n },\n resolve: {\n location: locationResolver,\n users: usersResolver,\n addressTypes: addressTypesResolver,\n contactInfoTypes: contactInfoTypesResolver,\n userLocations: userLocationsResolver,\n pricelists: pricelistsResolver\n }\n });\n}\n\n// @ngInject\nfunction locationResolver($stateParams,LocationsApiService) {\n return LocationsApiService.getLocation($stateParams.locationId);\n}\n\n// @ngInject\nfunction usersResolver(LocationsApiService) {\n return LocationsApiService.getUsers();\n}\n\n// @ngInject\nfunction userLocationsResolver(LocationsApiService) {\n return LocationsApiService.getUserLocations();\n}\n\n// @ngInject\nfunction addressTypesResolver(LocationsApiService) {\n return LocationsApiService.getAddressTypes();\n}\n\n// @ngInject\nfunction contactInfoTypesResolver(LocationsApiService) {\n return LocationsApiService.getContactInfoTypes();\n}\n\n// @ngInject\nfunction pricelistsResolver(LocationsApiService) {\n return LocationsApiService.getPricelists();\n}\n\n// @ngInject\nfunction ContactsLocationController(location, users, addressTypes, contactInfoTypes, LocationsApiService, ToasterService, loadSpinnerService, userLocations, AuthService, currentUser, pricelists) {\n var vm = this;\n\n vm.allowUpdate = false;\n vm.isEditing = false;\n vm.selectedLocation = location;\n vm.selectedLocationCopy = angular.copy(location);\n vm.users = users;\n vm.addressTypes = addressTypes;\n vm.contactInfoTypes = contactInfoTypes;\n vm.userLocations = userLocations;\n vm.priceLists = pricelists;\n\n vm.newAddress = {};\n vm.newContactInfo = {};\n\n vm.startEditing = startEditing;\n vm.cancelEditing = cancelEditing;\n vm.save = save;\n\n vm.addNewContactInfo = addNewContactInfo;\n vm.updateContactInfo = updateContactInfo;\n vm.deleteContactInfo = deleteContactInfo;\n\n vm.addNewAddress = addNewAddress;\n vm.updateAddress = updateAddress;\n vm.deleteAddress = deleteAddress;\n vm.allowSaveLocation = allowSaveLocation;\n vm.isAllowedToSetAutoOrder = false;\n\n activate();\n\n function activate() {\n vm.priceLists.unshift({id: 0, pricelistName: '-'});\n vm.allowUpdate = AuthService.matchAnyDemand(\n {location: { update: true }},\n currentUser.claims\n );\n vm.isAllowedToSetAutoOrder = AuthService.matchAnyDemand(\n {stocklogistics: { update: true }},\n currentUser.claims\n );\n }\n\n function allowSaveLocation() {\n\n if (!vm.allowUpdate) {\n return false;\n }\n\n if (userLocations.length === 0 || _.includes(userLocations, vm.selectedLocation.id)) {\n return true;\n }\n\n return false;\n }\n\n function startEditing() {\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.selectedLocation = angular.copy(vm.selectedLocationCopy);\n vm.isEditing = false;\n }\n\n function save() {\n loadSpinnerService.start('mainSpinner');\n LocationsApiService.updateLocation(vm.selectedLocation).then(function(response) {\n vm.selectedLocation = response;\n vm.selectedLocationCopy = angular.copy(vm.selectedLocation);\n vm.isEditing = false;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n\n }\n\n function removeContactInfo(contactInfo) {\n vm.selectedLocation.contactInfos.splice(_.findIndex(vm.selectedLocation.contactInfos,{contactInfoType:{typeName:contactInfo.contactInfoType.typeName}}),1);\n resetTypes();\n }\n\n function resetTypes() {\n vm.newAddress = {};\n vm.newContactInfo = {};\n }\n\n function addNewContactInfo(contactInfo) {\n vm.selectedLocation.contactInfos.push(contactInfo);\n }\n\n function addNewAddress(address) {\n vm.selectedLocation.addresses.push(address);\n }\n\n function updateAddress(address) {\n var addressToUpdate = _.find(vm.selectedLocation.addresses, function(addr) { return addr.id === address.id; });\n if (addressToUpdate !== undefined) {\n addressToUpdate.addressLine1 = address.addressLine1;\n addressToUpdate.addressLine2 = address.addressLine2;\n addressToUpdate.addressLine3 = address.addressLine3;\n addressToUpdate.postalcode = address.postalcode;\n addressToUpdate.city = address.city;\n addressToUpdate.country = address.country;\n }\n }\n\n function deleteAddress(address) {\n var addressToUpdate = _.find(vm.selectedLocation.addresses, function(addr) { return addr.id === address.id; });\n if (addressToUpdate !== undefined) {\n vm.selectedLocation.addresses = _.without(vm.selectedLocation.addresses, addressToUpdate);\n }\n }\n\n function updateContactInfo(contactInfo) {\n var infoToUpdate = _.find(vm.selectedLocation.contactInfos, function(ci) { return ci.id === contactInfo.id; });\n if (infoToUpdate !== undefined) {\n infoToUpdate.value = contactInfo.value;\n infoToUpdate.contactInfoType = contactInfo.contactInfoType;\n }\n }\n\n function deleteContactInfo(contactInfo) {\n var infoToUpdate = _.find(vm.selectedLocation.contactInfos, function(ci) { return ci.id === contactInfo.id; });\n if (infoToUpdate !== undefined) {\n vm.selectedLocation.contactInfos = _.without(vm.selectedLocation.contactInfos, infoToUpdate);\n }\n }\n\n}\n\nangular.module('contacts.locations.location', [])\n .config(stateConfig)\n .controller('ContactsLocationController', ContactsLocationController);\n","// @ngInject\nfunction LocationsApiService($q, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'locations';\n\n return {\n getLocations: getLocations,\n listAll: ResourcesService.apiFactory.get(endpoint + '/brief'),\n getLocation: ResourcesService.apiFactory.get(endpoint),\n getUsers: ResourcesService.apiFactory.get(endpoint + '/users'),\n getAddressTypes: ResourcesService.apiFactory.get(endpoint + '/addresstypes'),\n getContactInfoTypes: ResourcesService.apiFactory.get(endpoint + '/contactinfotypes'),\n getUserLocations: ResourcesService.apiFactory.get(endpoint + '/user/locations'),\n updateLocation: updateLocation,\n getPricelists: ResourcesService.apiFactory.get(endpoint + '/pricelists')\n };\n\n function getLocations(request) \n {\n console.log(\"LocationsApiService.getLocactions\");\n var params = {\n filter: '',\n page: 1,\n pageSize: 20\n };\n\n //page, filter, pageSize, companyId, showInactiveLocations\n if (request.currentPage && request.currentPage > 1) {\n params.page = request.currentPage;\n }\n\n if (request.pageSize && request.pageSize > 0) {\n params.pageSize = request.pageSize;\n }\n\n if (!_.isEmpty(request.filter)) {\n params.filter = request.filter;\n }\n\n if (request.companyId) {\n params.companyId = request.companyId;\n }\n\n if (request.showInactiveLocations) {\n params.showInactiveLocations = request.showInactiveLocations;\n }\n\n if(request.matchEntireSearchTerm !== undefined) {\n params.matchEntireSearchTerm = request.matchEntireSearchTerm;\n }\n\n var args = { params: params };\n\n return ResourcesService.apiFactory.get(endpoint)(args);\n\n }\n\n function updateLocation(location) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + endpoint + '/' + location.id, location).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n}\n\nangular.module('locations.api', [])\n .factory('LocationsApiService', LocationsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.locations', {\n url: '/locations?currentPage&filter&pageSize&inactive&match',\n views: {\n \"contactList@contacts\": {\n templateUrl: 'main/contacts/locations/locations.tpl.html',\n controller: 'ContactsLocationsController as vm'\n }\n },\n resolve: {\n // locations: locationsResolver,\n searchTerms: searchTermResolver\n }\n });\n}\n\n// // @ngInject\n// function locationsResolver(LocationsApiService) {\n// return LocationsApiService.listAll();\n// }\n\n// @ngInject\nfunction searchTermResolver($stateParams) {\n return {\n filter: $stateParams.filter,\n currentPage: $stateParams.currentPage,\n pageSize: $stateParams.pageSize,\n inactive: $stateParams.inactive,\n match: $stateParams.match\n };\n}\n\n// @ngInject\nfunction ContactsLocationsController(AuthService, $state, $stateParams, searchTerms, loadSpinnerService, LocationsApiService) {\n var vm = this;\n\n vm.isLoading = false;\n\n vm.locations = [];\n vm.goToLocation = goToLocation;\n vm.searchTermChange = searchTermChange;\n\n vm.filter = ($stateParams.filter === undefined) ? '' : $stateParams.filter; // \"SearchTerm\"\n vm.currentPage = 1;\n vm.pageSize = 15;\n vm.matchExactly = false;\n vm.inactive = false;\n vm.totalItems = [];\n\n activate();\n\n function activate() {\n searchTermChange();\n\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.currentPage = searchTerms.currentPage > 1 ? searchTerms.currentPage : 1;\n vm.pageSize = searchTerms.pageSize >= 20 ? searchTerms.pageSize : 20;\n vm.matchExactly = searchTerms.match ? searchTerms.match == 'true' ? true : false : false;\n vm.inactive = searchTerms.inactive ? searchTerms.inactive == 'true' ? true : false : false;\n }\n\n function goToLocation(location) {\n if (AuthService.canAccess('location', 'read')) {\n $state.go('contacts.locations.location', {\n locationId: location.id\n });\n }\n }\n\n function searchTermChange() {\n if (vm.isLoading) { return; }\n\n console.log(\"searchTermChange()\");\n\n if ($stateParams.filter && $stateParams.filter !== vm.filter) {\n vm.currentPage = 1;\n }\n\n $stateParams.filter = vm.filter;\n $stateParams.currentPage = vm.currentPage;\n $stateParams.pageSize = vm.pageSize;\n $stateParams.inactive = vm.inactive;\n $stateParams.match = vm.matchExactly;\n\n forceReloadUrl();\n\n if (vm.filter.length > 2) {\n loadLocations();\n } else if (vm.filter.length === 0) {\n loadLocations();\n }\n }\n\n function forceReloadUrl() {\n var params = {\n currentPage: vm.currentPage,\n pageSize: vm.pageSize,\n filter: $stateParams.filter,\n inactive: vm.inactive,\n match: vm.matchExactly\n };\n console.log(\"forceReloadUrl()\", params);\n $state.go($state.current.name, \n params,\n {notify: false}\n );\n }\n\n function loadLocations() {\n if(vm.isLoading) return;\n\n vm.isLoading = true;\n\n loadSpinnerService.start('mainSpinner');\n var request = {\n currentPage: vm.currentPage,\n filter: vm.filter,\n pageSize: vm.pageSize,\n showInactiveLocations: vm.inactive,\n matchEntireSearchTerm: vm.matchExactly\n };\n\n LocationsApiService.getLocations(request).then(function(response) {\n vm.locations = response.data.results;\n vm.totalItems = response.data.total;\n vm.pageSize = response.data.limit;\n vm.currentPage = response.data.page;\n\n $stateParams.filter = vm.filter;\n $stateParams.currentPage = vm.currentPage;\n $stateParams.pageSize = vm.pageSize;\n $stateParams.inactive = vm.inactive;\n $stateParams.match = vm.matchExactly;\n }).finally(function afterGetAllLocations() {\n loadSpinnerService.stop('mainSpinner',{force: true});\n if (vm.currentPage === 1 && vm.locations.length === 1 && vm.totalItems === 1) {\n goToLocation(vm.locations[0]);\n }\n vm.isLoading = false;\n });\n }\n}\n\nangular.module('contacts.locations', ['locations.api','contacts.locations.location'])\n .config(stateConfig)\n .controller('ContactsLocationsController', ContactsLocationsController);\n","//@ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.roles.role', {\n url: '/{roleId}',\n views: {\n \"contactView@contacts\": {\n templateUrl: 'main/contacts/roles/role/role.tpl.html',\n controller: 'RoleController as vm'\n }\n },\n resolve: {\n role: roleResolver,\n claims: claimsResolver,\n widgets: widgetsResolver,\n dataSources: dataSourcesResolver\n }\n });\n}\n\n//@ngInject\nfunction roleResolver(RolesApiService, $stateParams) {\n return RolesApiService.getRole($stateParams.roleId);\n}\n\n//@ngInject\nfunction claimsResolver(RolesApiService) {\n return RolesApiService.getAllClaims();\n}\n\n//@ngInject\nfunction widgetsResolver(RolesApiService) {\n return RolesApiService.getAllWidgets();\n}\n\n//@ngInject\nfunction dataSourcesResolver(RolesApiService) {\n return RolesApiService.getAllDataSources();\n}\n\n//@ngInject\nfunction RoleController($translate, $scope, AuthService, role, claims, RolesApiService, loadSpinnerService, widgets, dataSources) {\n var vm = this;\n\n vm.role = role;\n vm.claims = claims;\n\n vm.objectTypes = [];\n vm.claimsRowData = [];\n vm.claimTypes = [];\n\n vm.saveRole = saveRole;\n vm.canAccess = AuthService.canAccess;\n vm.widgets = widgets;\n vm.dataSources = dataSources;\n\n activate();\n\n function activate() {\n _.forEach(vm.claims, function(claim) {\n if (!_.find(vm.claimTypes, function(claimType) { return claimType === claim.claimType; })) {\n vm.claimTypes.push(claim.claimType);\n }\n if (!_.find(vm.objectTypes, function(objectType) { return objectType === claim.objectType; })) {\n vm.objectTypes.push(claim.objectType);\n }\n });\n\n loadClaimsGridData();\n }\n\n function saveRole() {\n var claimsToSave = [];\n _.forEach(vm.claimsRowData, function(rowData) {\n var objectType = rowData[\"rowHeaderSystemType\"];\n var keys = Object.keys(rowData);\n\n keys = _.without(keys, \"rowHeaderSystemType\");\n\n _.forEach(keys, function(claimType) {\n if (rowData[claimType] === true) {\n var foundClaim = _.find(vm.claims, function(claim) {\n return claim.objectType === objectType && claim.claimType === claimType;\n });\n claimsToSave.push(foundClaim);\n }\n });\n });\n\n vm.role.claims = claimsToSave;\n\n loadSpinnerService.start('mainSpinner');\n RolesApiService.updateRole(vm.role).then(function(response) {\n\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n\n function loadClaimsGridData() {\n _.forEach(vm.objectTypes, function(objectType) {\n\n var r = {\n rowHeaderSystemType: objectType,\n rowHeaderLabel: $translate.instant('role.' + objectType)\n };\n _.forEach(vm.claimTypes, function(claimType) {\n if (_.find(vm.role.claims, function(claim) { return claim.claimType === claimType && claim.objectType === objectType; })) {\n r[claimType] = true;\n } else {\n r[claimType] = false;\n }\n });\n vm.claimsRowData.push(r);\n });\n\n\n }\n\n\n}\n\n\nangular.module('contacts.roles.role', [])\n .config(stateConfig)\n .controller('RoleController', RoleController);\n","// @ngInject\nfunction RolesApiService(ResourcesService) {\n\n var endpoint = 'roles';\n\n return {\n getAllClaims: ResourcesService.apiFactory.get(endpoint + '/claims'),\n getAllRoles: ResourcesService.apiFactory.get(endpoint),\n getAllWidgets: ResourcesService.apiFactory.get(endpoint + '/widgets'),\n getAllDataSources: ResourcesService.apiFactory.get(endpoint + '/datasources'),\n getRole: ResourcesService.apiFactory.get(endpoint),\n updateRole: ResourcesService.apiFactory.update(endpoint)\n };\n\n}\n\nangular.module('roles.api', [])\n .factory('RolesApiService', RolesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.roles', {\n url: '/roles',\n views: {\n \"contactList@contacts\": {\n templateUrl: 'main/contacts/roles/roles.tpl.html',\n controller: 'RolesController as vm'\n }\n },\n resolve: {\n roles: rolesResolver\n }\n });\n}\n\n//@ngInject\nfunction rolesResolver(RolesApiService) {\n return RolesApiService.getAllRoles();\n}\n\n//@ngInject\nfunction RolesController($state, roles, RolesApiService, AuthService) {\n var vm = this;\n\n vm.searchTerm = \"\";\n vm.roles = roles;\n vm.selectedRoleId = 0;\n\n vm.selectRole = selectRole;\n\n activate();\n\n function activate() {\n\n }\n\n function selectRole(role) {\n if (AuthService.canAccess('role', 'read')) {\n $state.go('contacts.roles.role', {roleId: role.id});\n }\n }\n}\n\nangular.module('contacts.roles', ['roles.api','contacts.roles.role'])\n .config(stateConfig)\n .controller('RolesController', RolesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.users.new', {\n url: '/new',\n views: {\n \"contactView@contacts\": {\n templateUrl: 'main/contacts/users/user/user.tpl.html',\n controller: 'ContactsUserController as vm'\n }\n },\n resolve: {\n user: function() { return { isActive: true};}\n }\n });\n $stateProvider.state('contacts.users.user', {\n url: '/{userId}',\n views: {\n \"contactView@contacts\": {\n templateUrl: 'main/contacts/users/user/user.tpl.html',\n controller: 'ContactsUserController as vm'\n }\n },\n resolve: {\n user: userResolver\n }\n });\n}\n\n// @ngInject\nfunction userResolver($stateParams,UsersApiService) {\n return UsersApiService.getById($stateParams.userId);\n}\n\n// @ngInject\nfunction ContactsUserController($q,$scope, $rootScope, $state,user,HelperService,UsersApiService,loadSpinnerService,AuthService) {\n var vm = this;\n var isNewUser = !user.id;\n\n //Properties\n vm.isEditing = false;\n vm.addressTypes = [];\n vm.contactInfoTypes = [];\n vm.availableAddressTypes = [];\n vm.availableContactInfoTypes = [];\n vm.selectedLocations = [];\n vm.selectedBrands = [];\n vm.locations = [];\n vm.brands = [];\n vm.newAddress = {};\n vm.newContactInfo = {};\n vm.selectedUser = user;\n vm.selectedUserCopy = angular.copy(vm.selectedUser);\n vm.validationErrors = [];\n vm.salaryTypes = ['T', 'M'];\n vm.canAccess = AuthService.canAccess;\n vm.isEmailValid = false;\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n\n //Methods\n vm.isNewUser = isNewUser;\n vm.save = save;\n vm.startEdit = startEdit;\n vm.cancelEdit = cancelEdit;\n vm.addNewAddress = addNewAddress;\n vm.removeAddress = removeAddress;\n vm.addNewContactInfo = addNewContactInfo;\n vm.removeContactInfo = removeContactInfo;\n vm.isAllInformationValid = isAllInformationValid;\n vm.hasEmail = hasEmail;\n vm.validateEmail = validateEmail;\n vm.hasFirstName = hasFirstName;\n vm.hasLastName = hasLastName;\n vm.hasUserName = hasUserName;\n vm.hasPassword = hasPassword;\n vm.hasRole = hasRole;\n vm.isEmailInfo = isEmailInfo;\n\n validateEmail();\n activate();\n\n function activate() {\n UsersApiService.getAddressTypes().then(function(types) {\n vm.addressTypes = types;\n resetTypes();\n });\n UsersApiService.getContactInfoTypes().then(function(types) {\n vm.contactInfoTypes = types;\n if (isNewUser) {\n\n vm.isEditing = true;\n vm.selectedUserCopy.contactInfos = vm.selectedUserCopy.contactInfos || [];\n const contactInfoTypeEmail = vm.contactInfoTypes.find(x => x.systemTypeName === \"Email\") ;\n const emailContactInfo = \n {\n contactInfoType : contactInfoTypeEmail\n }\n vm.selectedUserCopy.contactInfos.push(emailContactInfo);\n \n }\n\n resetTypes();\n });\n UsersApiService.getLocations().then(function(locations) {\n vm.locations = locations;\n });\n UsersApiService.getValidRoles().then(function(roles) {\n vm.roles = roles;\n });\n UsersApiService.getBrands().then(function(brands) {\n vm.brands = brands;\n });\n\n var intervalId = window.setInterval(function(){\n if(vm.isEditing)\n validateEmail();\n }, 3000)\n }\n\n function addNewAddress() {\n vm.selectedUserCopy.addresses = vm.selectedUserCopy.addresses || [];\n vm.selectedUserCopy.addresses.push(_.clone(vm.newAddress));\n resetTypes();\n }\n\n function addNewContactInfo() {\n vm.selectedUserCopy.contactInfos = vm.selectedUserCopy.contactInfos || [];\n vm.selectedUserCopy.contactInfos.push(_.clone(vm.newContactInfo));\n resetTypes();\n }\n\n function save() {\n if (isNewUser) {\n return saveNewUser();\n } else {\n return updateUser();\n }\n }\n\n function startEdit() {\n vm.selectedUserCopy = angular.copy(user);\n vm.selectedLocations = vm.selectedUserCopy.locations || [];\n vm.selectedBrands = vm.selectedUserCopy.brands || [];\n resetTypes();\n vm.isEditing = true;\n }\n\n function resetTypes() {\n vm.newAddress = {};\n vm.newContactInfo = {};\n vm.availableAddressTypes = getAvailableAddressTypes();\n vm.availableContactInfoTypes = getAvailableContactInfoTypes();\n }\n\n function cancelEdit() {\n vm.selectedUserCopy = angular.copy(user);\n vm.validationErrors = [];\n vm.isEditing = false;\n }\n\n function getAvailableAddressTypes() {\n return _.filter(vm.addressTypes, function(obj) {\n if (!vm.selectedUserCopy.addresses) {\n return true;\n } else {\n return !_.find(vm.selectedUserCopy.addresses, { addressType: { id: obj.id }});\n }\n });\n }\n\n function getAvailableContactInfoTypes() {\n return _.filter(vm.contactInfoTypes, function(obj) { return !_.find(vm.selectedUserCopy.contactInfos, {contactInfoType: { id: obj.id }}); });\n }\n\n function removeAddress(address) {\n vm.selectedUserCopy.addresses.splice(_.findIndex(vm.selectedUserCopy.addresses,{addressType:{typeName:address.addressType.typeName}}),1);\n resetTypes();\n }\n\n function removeContactInfo(contactInfo) {\n vm.selectedUserCopy.contactInfos.splice(_.findIndex(vm.selectedUserCopy.contactInfos,{contactInfoType:{typeName:contactInfo.contactInfoType.typeName}}),1);\n resetTypes();\n }\n\n function updateUser() {\n vm.validationErrors = [];\n\n vm.selectedUserCopy.brands = vm.selectedBrands;\n vm.selectedUserCopy.locations = vm.selectedLocations;\n\n var propertiesToInspect = ['firstName','lastName','username', 'usernamePos', 'password','addresses','contactInfos','locations','role','isActive','startDate','employeeNumber', 'usesTimeStamping', 'salaryType', 'socialSecurityNumber', 'brands', 'isAllowedToViewCommonReports'];\n\n HelperService.setUndefinedToNull(user, propertiesToInspect);\n var changedData = HelperService.getChangedData(user, vm.selectedUserCopy, propertiesToInspect);\n changedData.role = vm.selectedUserCopy.role\n\n if (!_.isEmpty(changedData)) {\n loadSpinnerService.start('mainSpinner');\n UsersApiService.updateUserInfo(changedData,user.id).then(function(response) {\n user = angular.copy(response);\n vm.selectedUserCopy = angular.copy(response);\n vm.cancelEdit();\n $rootScope.$emit('User.Changed', response);\n }, function(error) {\n if (error.errors) {\n error.errors.forEach(function (error) {\n vm.validationErrors.push(error);\n }, this);\n }\n if (error.message.length > 0) {\n vm.validationErrors.push({ message: error.message});\n }\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function saveNewUser() {\n vm.validationErrors = [];\n\n vm.selectedUserCopy.brands = vm.selectedBrands;\n vm.selectedUserCopy.locations = vm.selectedLocations;\n\n if (!vm.selectedUserCopy.startDate) {\n var today = new Date();\n var dd = today.getDate();\n var mm = today.getMonth() + 1; //January is 0!\n var yyyy = today.getFullYear();\n\n if (dd < 10) {\n dd = '0' + dd;\n }\n\n if (mm < 10) {\n mm = '0' + mm;\n }\n\n today = yyyy + '-' + mm + '-' + dd; //2015-05-13T22:00:00.000Z\n vm.selectedUserCopy.startDate = today;\n }\n\n loadSpinnerService.start('mainSpinner');\n UsersApiService.newUser(vm.selectedUserCopy).then(function(response) {\n $state.go('contacts.users.user', {userId: response.id});\n $rootScope.$emit('User.Inserted', response);\n vm.cancelEdit();\n }, function(error) {\n if (error.errors) {\n error.errors.forEach(function(error) {\n vm.validationErrors.push(error);\n }, this);\n }\n if (error.message.length > 0) {\n vm.validationErrors.push({ message: error.message});\n }\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function isAllInformationValid() {\n return hasFirstName() &&\n hasLastName() &&\n hasUserName() &&\n hasPassword() &&\n hasEmail() &&\n hasRole() &&\n vm.isEmailValid;\n }\n function hasFirstName() {\n return vm.selectedUserCopy && vm.selectedUserCopy.firstName && vm.selectedUserCopy.firstName.length > 0;\n }\n function hasLastName() {\n return vm.selectedUserCopy && vm.selectedUserCopy.lastName && vm.selectedUserCopy.lastName.length > 0;\n }\n function hasUserName() {\n return vm.selectedUserCopy && vm.selectedUserCopy.username && vm.selectedUserCopy.username.length > 0;\n }\n function hasPassword() {\n return vm.selectedUserCopy && vm.selectedUserCopy.password && vm.selectedUserCopy.password.length > 0;\n }\n function hasRole() {\n return vm.selectedUserCopy && vm.selectedUserCopy.role && vm.selectedUserCopy.role.id != -1;\n }\n function hasEmail() {\n return vm.selectedUserCopy && vm.selectedUserCopy.contactInfos && vm.selectedUserCopy.contactInfos.find(info => info.contactInfoType.systemTypeName === \"Email\");\n }\n function isEmailInfo(contactInfo) {\n console.log(contactInfo);\n }\n\n\n function validateEmail()\n {\n if(vm.selectedUserCopy.contactInfos !== undefined) {\n var length = vm.selectedUserCopy.contactInfos.length;\n try{\n for (let i = 0; i < length; i++){\n if(vm.selectedUserCopy.contactInfos[i].contactInfoType.systemTypeName === \"Email\"){\n var email = vm.selectedUserCopy.contactInfos[i];\n vm.isEmailValid = email.value.match(mailformat);\n break;\n }\n vm.isEmailValid = false;\n }\n }catch(err){\n vm.isEmailValid = false;\n }\n }\n else{\n vm.isEmailValid = false;\n }\n }\n}\n\nangular.module('contacts.users.user', [])\n .config(stateConfig)\n .controller('ContactsUserController', ContactsUserController);\n","// @ngInject\nfunction UsersApiService($q,DS,DSHttpAdapter,ResourcesService) {\n\n var endpoint = 'users';\n\n return {\n getSelf: getSelf,\n getAll: ResourcesService.apiFactory.get(endpoint),\n listAll: ResourcesService.apiFactory.get(endpoint + '/brief'),\n getById: getById,\n newUser: newUser,\n updateUserInfo: updateUserInfo,\n getAddressTypes: ResourcesService.apiFactory.get(endpoint + '/addresstypes'),\n getContactInfoTypes: ResourcesService.apiFactory.get(endpoint + '/contactinfotypes'),\n getValidRoles: ResourcesService.apiFactory.get(endpoint + '/validuserroles'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getBrands: ResourcesService.apiFactory.get(endpoint + '/brands')\n };\n\n function getSelf() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'users/me').then(function(response) {\n var user = DS.inject('user', response.data);\n deferred.resolve(user);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n }\n\n function getById(id) {\n var deferred = $q.defer();\n\n DS.find('user', id, { bypassCache: true }).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function newUser(user) {\n var deferred = $q.defer();\n\n\n if (user.brands) {\n user.brands = _.map(user.brands, _.partialRight(_.pick, \"id\"));\n }\n\n if (user.locations) {\n user.locations = _.map(user.locations, _.partialRight(_.pick, \"id\"));\n }\n\n if (user.roles) {\n user.roles = _.map(user.roles, _.partialRight(_.pick, \"id\"));\n }\n\n DS.create('user', user).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateUserInfo(data, id) {\n var deferred = $q.defer();\n\n if (data.brands) {\n data.brands = _.map(data.brands, _.partialRight(_.pick, \"id\"));\n }\n\n if (data.locations) {\n data.locations = _.map(data.locations, _.partialRight(_.pick, \"id\"));\n }\n\n if (data.roles) {\n data.roles = _.map(data.roles, _.partialRight(_.pick, \"id\"));\n }\n\n DS.update('user', id, data, { cacheResponse: false }).then(function(response) {\n var user = DS.get('user', id);\n user.firstName = response.firstName;\n user.lastName = response.lastName;\n user.username = response.username;\n user.isActive = response.isActive;\n user.addresses = response.addresses;\n user.employeeNumber = response.employeeNumber;\n user.usernamePos = response.usernamePos;\n user.startDate = response.startDate;\n user.locations = response.locations;\n user.brands = response.brands;\n user.contactInfos = response.contactInfos;\n DS.inject('user',user);\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('users.api',[])\n .factory('UsersApiService', UsersApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.users', {\n url: '/users?searchTerm',\n views: {\n \"contactList@contacts\": {\n templateUrl: 'main/contacts/users/users.tpl.html',\n controller: 'ContactsUsersController as vm'\n }\n },\n resolve: {\n users: usersResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction usersResolver(UsersApiService,$stateParams) {\n return UsersApiService.getAll({searchTerm:$stateParams.searchTerm,showInactiveUsers:false});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction ContactsUsersController($scope,$state, $rootScope, users,UsersApiService,loadSpinnerService,AuthService, searchTerm) {\n var vm = this;\n\n vm.userList = generateUserList(users);\n vm.selectedUserId = 0;\n vm.selectUser = selectUser;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.searchTermChanged = searchTermChanged;\n vm.canAccess = AuthService.canAccess;\n vm.showExtraOptions = false;\n vm.showInactiveUsers = false;\n\n activate();\n\n function activate() {\n $rootScope.$on('User.Inserted', function(event, response) {\n loadUsers();\n });\n $rootScope.$on('User.Changed', function(event, response) {\n loadUsers();\n });\n }\n\n function selectUser(user) {\n if (AuthService.canAccess('user', 'read')) {\n $state.go('contacts.users.user', {userId: user.id});\n }\n }\n\n function generateUserList(users) {\n var list = [];\n\n _.forEach(users,function(user) {\n if(!isCleverAppsUser(user) || cleverAppsLoggedIn()){\n var userCopy = _.clone(user);\n var mobileNumber = _.find(user.contactInfos, { contactInfoType: { systemTypeName: 'Mobile'}});\n userCopy.mobileNumber = mobileNumber ? mobileNumber.value : '';\n list.push(userCopy);\n }\n });\n\n return _.sortBy(list, ['firstName']);\n }\n\n function searchTermChanged() {\n loadUsers();\n }\n\n function loadUsers() {\n loadSpinnerService.start('mainSpinner');\n UsersApiService.getAll({searchTerm: vm.searchTerm, showInactiveUsers: vm.showInactiveUsers}).then(function (response) {\n vm.userList = generateUserList(response);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n function isCleverAppsUser(user){\n return user.firstName.toLowerCase() === \"cleverapps\"\n && (user.lastName.toLowerCase() === \"superuser\" || \n user.lastName.toLowerCase() === \"support\" || \n user.lastName.toLowerCase() === \"thomas sverker\" || \n user.lastName.toLowerCase().includes(\"integration\"))\n && (user.username.toLowerCase() === \"superuser\" || \n user.username.toLowerCase() === \"support\" || \n user.username.toLowerCase() === \"thsv\" || \n user.username.toLowerCase().includes(\"integration\"))\n }\n\n function cleverAppsLoggedIn(){\n return $rootScope.currentUser.firstName === \"CleverApps\"\n && ($rootScope.currentUser.lastName === \"Superuser\" || \n $rootScope.currentUser.lastName === \"Support\" || \n $rootScope.currentUser.lastName === \"Thomas Sverker\")\n && ($rootScope.currentUser.username === \"superuser\" || \n $rootScope.currentUser.username === \"support\" || \n $rootScope.currentUser.username === \"thsv\")\n }\n\n $scope.$watch(function() { return $state.params.userId; }, function(newValue, oldValue) {\n vm.selectedUserId = parseInt($state.params.userId,10);\n });\n}\n\nangular.module('contacts.users', ['users.api', 'contacts.users.user'])\n .config(stateConfig)\n .controller('ContactsUsersController', ContactsUsersController);\n","// @ngInject\nfunction CustomerInvoiceApiService($q, $window, $cookies, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'customerinvoices';\n\n return {\n downloadAsPdf: downloadAsPdf,\n getAll: getAll,\n getAllUnboundInvoiceRow: getAllUnboundInvoiceRow,\n getById: ResourcesService.apiFactory.get(endpoint),\n setStatus: ResourcesService.apiFactory.get(endpoint + '/status'),\n saveCustomerInvoice: ResourcesService.apiFactory.save(endpoint + '/save')\n };\n\n function getAll(page, filter, pageSize) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (filter && !_.isEmpty(filter.term)) {\n params.searchTerm = filter.term;\n }\n if (filter && (filter.dueDateMin || filter.dueDateMax || filter.invoiceDateMin || filter.invoiceDateMax)) {\n params.dueDateMin = filter.dueDateMin;\n params.dueDateMax = filter.dueDateMax;\n params.invoiceDateMin = filter.invoiceDateMin;\n params.invoiceDateMax = filter.invoiceDateMax;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint, {params: params}).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getAllUnboundInvoiceRow(page, filter, pageSize) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter.term)) {\n params.searchTerm = filter.term;\n }\n if (filter.createdDateMin || filter.createdDateMax) {\n params.createdDateMin = filter.createdDateMin;\n params.createdDateMax = filter.createdDateMax;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/unboundrows', {params: params}).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n function downloadAsPdf(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + request.invoiceId + '/aspdf', { params: request, responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'invoice.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s]){1,}.pdf/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n}\n\nangular\n .module('customerinvoices.api', [])\n .factory('CustomerInvoiceApiService', CustomerInvoiceApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('customerinvoice', {\n url: '/customerinvoice',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/customerinvoice/customerinvoice.tpl.html',\n controller: 'MainCustomerInvoiceController as vm'\n });\n}\n\n// @ngInject\nfunction MainCustomerInvoiceController() {\n var vm = this;\n}\n\nangular\n .module('main.customerinvoice', ['customerinvoices.api','customerinvoice.customerinvoicesearch', 'customerinvoice.customerinvoicerowsearch'])\n .config(stateConfig)\n .controller('MainCustomerInvoiceController', MainCustomerInvoiceController);\n","var module = angular.module('main.customerinvoice');\n\nmodule.component('caCustomerInvoice',{\n templateUrl: 'main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicecontent.cmp.tpl.html',\n bindings: {\n invoiceId: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($rootScope, $scope, $http, $cookies, DS, $state, $stateParams, $translate, CustomerInvoiceApiService,\n confirmationDialogService, printInvoiceDialogService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.customerInvoice = {};\n vm.customerInvoiceCopy = {};\n vm.showInvoiceHead = true;\n vm.isEditing = false;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.toggleInvoiceHead = toggleInvoiceHead;\n vm.canAccess = $rootScope.canAccess;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getTypeTranslation = getTypeTranslation;\n vm.getSelectedInvoiceAsPdf = getSelectedInvoiceAsPdf;\n vm.showInvoicePrintDialog = showInvoicePrintDialog;\n vm.startEdit = startEdit;\n vm.saveEdit = saveEdit;\n vm.cancelEdit = cancelEdit;\n vm.invoiceStatusAllowsEdit = invoiceStatusAllowsEdit;\n\n function onInit() {\n }\n function onChanges() {\n if (vm.invoiceId) {\n CustomerInvoiceApiService.getById(vm.invoiceId)\n .then(function(response) {\n vm.customerInvoice = response;\n });\n }\n }\n\n function toggleInvoiceHead() {\n vm.showInvoiceHead = !vm.showInvoiceHead;\n }\n\n function getStatusTranslation(text) {\n return $translate.instant('customerinvoice.status' + text);\n }\n function getTypeTranslation(text) {\n return $translate.instant('customerinvoice.type' + text);\n }\n\n function startEdit() {\n vm.isEditing = true;\n vm.customerInvoiceCopy = angular.copy(vm.customerInvoice);\n }\n function saveEdit() {\n //Change status\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('customerinvoice.savingCustomerInvoice') });\n CustomerInvoiceApiService.saveCustomerInvoice(vm.customerInvoice).then(function(response) {\n if (response && response.id !== 0) {\n vm.customerInvoice = response;\n vm.customerInvoiceCopy = {};\n vm.isEditing = false;\n\n ToasterService.showSuccess($translate.instant('customerinvoice.customerInvoiceSaved'), $translate.instant('common.success'));\n }\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.message, $translate.instant('common.error'));\n vm.customerInvoice = angular.copy(vm.customerInvoiceCopy);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n vm.isEditing = false;\n });\n }\n function cancelEdit() {\n vm.isEditing = false;\n vm.customerInvoice = vm.customerInvoiceCopy;\n }\n\n function isRowInvalid(row) {\n return (\n isTextInvalid(row.intrastatCode) ||\n (!row.weight || row.weight <= 0) ||\n isTextInvalid(row.currencyCode) ||\n isTextInvalid(row.countryOfOriginCode)\n );\n }\n function isTextInvalid(text) {\n return (text === undefined || text.trim().length === 0);\n }\n\n function allRowsValid() {\n var rowsAreValid = true;\n _.forEach(vm.customerInvoice.invoiceRows, function(row) {\n if (isRowInvalid(row)) {\n rowsAreValid = false;\n return;\n }\n });\n return rowsAreValid;\n }\n\n function invoiceStatusAllowsEdit() {\n return vm.customerInvoice && vm.customerInvoice.invoiceStatus &&\n vm.customerInvoice.invoiceStatus.invoiceSystemStatus.toLowerCase() === \"created\";\n }\n\n function getSelectedInvoiceAsPdf() {\n if (vm.customerInvoice.invoiceStatus.invoiceSystemStatus.toLowerCase() === \"invoiced\") {\n showInvoicePrintDialog();\n } else if (vm.customerInvoice.invoiceStatus.invoiceSystemStatus.toLowerCase() === \"created\") {\n //Check that no rows are invalid\n if (!allRowsValid()) {\n ToasterService.showError($translate.instant('customerinvoice.errorNotAllRowsValid'));\n return;\n }\n\n var confirmationMessage = $translate.instant(\"customerinvoice.confirmFinalizeInvoice\").replace(/%1/g, '<br>');\n confirmationDialogService.showDialog(confirmationMessage).then(function (result) {\n if (result === true) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('customerinvoice.creatingPrint') });\n CustomerInvoiceApiService.setStatus(vm.invoiceId).then(function(response) {\n vm.customerInvoice = response;\n vm.customerInvoice.invoiceStatus.invoiceSystemStatus = \"invoiced\";\n showInvoicePrintDialog();\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n }\n\n function showInvoicePrintDialog() {\n printInvoiceDialogService.showDialog($translate.instant(\"analysis.confirmDeleteReport\")).then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n CustomerInvoiceApiService.downloadAsPdf({\n invoiceId: vm.customerInvoice.id,\n invoiceNumber: vm.customerInvoice.invoiceNumber,\n languageCode: result.languageCode,\n weightSetting: result.weightSetting\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n}\n","var module = angular.module('main.customerinvoice');\n\nmodule.component('caCustomerInvoiceRows',{\n templateUrl: 'main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicerows.cmp.tpl.html',\n bindings: {\n customerInvoice: '=',\n isEditing: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate, CustomerInvoiceApiService) {\n var vm = this;\n\n vm.customerInvoice = {};\n\n //Properties\n vm.currentRow = {};\n vm.rowCopy = {};\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.goToArticleVariant = goToArticle;\n vm.getEllipsis = getEllipsis;\n vm.isRowInvalid = isRowInvalid;\n vm.isTextInvalid = isTextInvalid;\n vm.getTotalCustomerinvoiceQuantity = getTotalCustomerinvoiceQuantity;\n vm.getTotalCustomerinvoiceAmount = getTotalCustomerinvoiceAmount;\n vm.getTotalCustomerinvoiceTotalAmount = getTotalCustomerinvoiceTotalAmount;\n vm.getTotalCustomerinvoiceVat = getTotalCustomerinvoiceVat;\n vm.getTotalCustomerinvoiceTotalVat = getTotalCustomerinvoiceTotalVat;\n vm.getTotalCustomerinvoiceWeight = getTotalCustomerinvoiceWeight;\n vm.getTotalCustomerinvoiceTotalWeight = getTotalCustomerinvoiceTotalWeight;\n\n function onInit() {\n\n }\n function onChanges() {\n }\n\n function getEllipsis(text, len) {\n if (text && text.length > len) {\n return text.substr(0, len) + '...';\n } else {\n return text;\n }\n }\n\n function isTextDifferent(text, field) {\n return vm.rowCopy[field] !== text;\n }\n\n function isRowInvalid(row) {\n return vm.isEditing ||\n (\n isTextInvalid(row.intrastatCode) ||\n (!row.weight || row.weight <= 0) ||\n isTextInvalid(row.currencyCode) ||\n isTextInvalid(row.countryOfOriginCode)\n );\n }\n\n function isTextInvalid(text) {\n return (text === undefined || text.trim().length === 0);\n }\n\n function getTotalCustomerinvoiceQuantity() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n return _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.quantity;\n });\n }\n function getTotalCustomerinvoiceAmount() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n var sum = _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.quantity > 0 ? (row.invoiceAmountExVat / row.quantity) : 0;\n });\n return sum;\n }\n function getTotalCustomerinvoiceTotalAmount() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n var sum = _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.invoiceAmountExVat;\n });\n return sum;\n }\n function getTotalCustomerinvoiceVat() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n var sum = _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.quantity > 0 ? (row.vatAmount / row.quantity) : 0;\n });\n return sum;\n }\n function getTotalCustomerinvoiceTotalVat() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n var sum = _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.vatAmount;\n });\n return sum;\n }\n function getTotalCustomerinvoiceWeight() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n return _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.quantity > 0 ? (row.weight / row.quantity) : 0;\n });\n }\n function getTotalCustomerinvoiceTotalWeight() {\n if (!vm.customerInvoice || !vm.customerInvoice.invoiceRows) { return 0; }\n return _.sumBy(vm.customerInvoice.invoiceRows, function(row) {\n return row.weight;\n });\n }\n\n function goToArticle(articleId) {\n $state.go('order.ordersearch.ordercontent.orderarticle', {orderArticleId: articleId});\n }\n}\n","var module = angular.module('main.customerinvoice');\n\nmodule.component('caCustomerInvoiceSearch',{\n templateUrl: 'main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicesearch.cmp.tpl.html',\n bindings: {\n searchTerm: '<',\n onCustomerInvoiceSelected: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($rootScope, $scope, $state, $stateParams, $translate, CustomerInvoiceApiService,\n loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.loadCustomerInvoices = loadCustomerInvoices;\n vm.searchTermChange = searchTermChange;\n vm.resetFilters = resetFilters;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getTypeTranslation = getTypeTranslation;\n vm.selectInvoice = selectInvoice;\n\n activate();\n\n function onInit() {\n vm.customerInvoices = [];\n vm.searchTerm = {};\n vm.searchTerm.term = ($stateParams.searchTerm) ? $stateParams.searchTerm : '';\n vm.searchTerm.dueDateMin = new Date();\n vm.searchTerm.dueDateMax = new Date();\n vm.searchTerm.invoiceDateMin = new Date();\n vm.searchTerm.invoiceDateMax = new Date();\n vm.searchTerm.invoiceTypes = [];\n\n vm.dueDate = '';\n vm.invoiceDate = '';\n vm.dueMinStartDate = new Date();\n vm.dueMinEndDate = new Date();\n vm.dueMinStartDate = new Date();\n vm.dueMinEndDate = new Date();\n vm.invoiceMinEndDate = new Date(2020, 1, 1);\n vm.invoiceMaxEndDate = new Date(2020, 1, 1);\n\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.itemsPerPage = 15;\n }\n function onChanges() {\n }\n\n function activate() {\n loadCustomerInvoices();\n $scope.$watch(function () {\n return vm.searchTerm.dueDateMin + vm.searchTerm.dueDateMax + vm.searchTerm.invoiceDateMin + vm.searchTerm.invoiceDateMax;\n }, function (oldValue, newValue) {\n if (oldValue !== newValue) {\n searchTermChange();\n }\n });\n }\n\n function loadCustomerInvoices() {\n loadSpinnerService.start('mainSpinner');\n CustomerInvoiceApiService.getAll(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function (response) {\n vm.customerInvoices = response.data;\n vm.totalItems = response.totalItems;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function selectInvoice(invoiceId) {\n vm.onCustomerInvoiceSelected({ invoiceId: invoiceId });\n }\n\n function getStatusTranslation(text) {\n return $translate.instant('customerinvoice.status' + text);\n }\n\n function getTypeTranslation(text) {\n return $translate.instant('customerinvoice.type' + text);\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadCustomerInvoices();\n }\n\n function resetFilters() {\n vm.searchTerm.dueDateMin = new Date();\n vm.searchTerm.dueDateMax = new Date();\n vm.searchTerm.invoiceDateMin = new Date();\n vm.searchTerm.invoiceDateMax = new Date();\n vm.searchTerm.term = '';\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('customerinvoice.customerinvoicerowsearch', {\n url: '/customerinvoicerowsearch',\n templateUrl: 'main/customerinvoice/customerinvoicesearch/customerinvoicerowsearch.tpl.html',\n controller: 'CustomerInvoiceRowSearchController as vm',\n params: {\n searchTerm: ''\n }\n });\n}\n\n// @ngInject\nfunction CustomerInvoiceRowSearchController($state, $stateParams, $window, $scope, $translate, CustomerInvoiceApiService, loadSpinnerService, ResourcesService, AuthService) {\n var vm = this;\n\n //Properties\n vm.customerInvoices = [];\n vm.searchTerm = {};\n vm.searchTerm.term = ($stateParams.searchTerm) ? $stateParams.searchTerm : '';\n vm.searchTerm.createdDateMin = new Date();\n vm.searchTerm.createdDateMax = new Date();\n\n vm.createdMinEndDate = new Date(2020, 1, 1);\n vm.createdMaxEndDate = new Date(2020, 1, 1);\n\n vm.searchTerm.invoiceTypes = [];\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.itemsPerPage = 15;\n vm.selectedInvoiceRow = {};\n vm.canAccess = AuthService.canAccess;\n vm.showSearchFields = true;\n vm.dueDate = '';\n vm.invoiceRowDate = '';\n\n //Public methods\n vm.loadCustomerInvoiceRows = loadCustomerInvoiceRows;\n vm.searchTermChange = searchTermChange;\n vm.selectInvoiceRow = selectInvoiceRow;\n vm.toggleSearchFields = toggleSearchFields;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getTypeTranslation = getTypeTranslation;\n vm.resetFilters = resetFilters;\n vm.goToCompleteInvoices = goToCompleteInvoices;\n\n activate();\n\n function activate() {\n loadCustomerInvoiceRows();\n $scope.$watch(function () {\n return vm.searchTerm.createdDateMin + vm.searchTerm.createdDateMax;\n }, function () {\n searchTermChange();\n });\n }\n\n function loadCustomerInvoiceRows() {\n loadSpinnerService.start('mainSpinner');\n CustomerInvoiceApiService.getAllUnboundInvoiceRow(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function (response) {\n vm.customerInvoiceRows = response;\n vm.totalItems = response.totalItems;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function searchTermChange() {\n $state.go('customerinvoice.customerinvoicerowsearch');\n vm.currentPage = 1;\n vm.showBackButton = false;\n loadCustomerInvoiceRows();\n }\n\n function selectInvoiceRow(invoiceRowId) {\n var invoiceRow = _.find(vm.customerInvoiceRows, function (invoiceRow) {\n return invoiceRow.id === invoiceRowId;\n });\n\n if (invoiceRow !== null) {\n vm.selectedInvoiceRow = invoiceRow;\n vm.totalItems = 1;\n vm.showSearchFields = false;\n }\n }\n\n function goToCompleteInvoices() {\n $state.go('customerinvoice.customerinvoicesearch');\n }\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function getStatusTranslation(text) {\n return $translate.instant('customerinvoice.status' + text);\n }\n\n function getTypeTranslation(text) {\n return $translate.instant('customerinvoice.type' + text);\n }\n\n function resetFilters() {\n vm.searchTerm.createdDateMin = new Date();\n vm.searchTerm.createdDateMax = new Date();\n vm.searchTerm.term = '';\n }\n}\n\nangular\n .module('customerinvoice.customerinvoicerowsearch', [])\n .config(stateConfig)\n .controller('CustomerInvoiceRowSearchController', CustomerInvoiceRowSearchController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('customerinvoice.customerinvoicesearch', {\n url: '/search',\n templateUrl: 'main/customerinvoice/customerinvoicesearch/customerinvoicesearch.tpl.html',\n controller: 'CustomerInvoiceSearchController as vm',\n resolve: {\n customerInvoice: function () {\n return {};\n }\n },\n params: {\n searchTerm: ''\n }\n });\n $stateProvider.state('customerinvoice.customerinvoice', {\n url: '/{invoiceId}',\n templateUrl: 'main/customerinvoice/customerinvoicesearch/customerinvoicesearch.tpl.html',\n controller: 'CustomerInvoiceSearchController as vm',\n resolve: {\n customerInvoice: customerInvoiceResolver\n },\n params: {\n searchTerm: ''\n }\n });\n}\n\n// @ngInject\nfunction customerInvoiceResolver($stateParams, CustomerInvoiceApiService) {\n return CustomerInvoiceApiService.getById($stateParams.invoiceId);\n}\n\n// @ngInject\nfunction CustomerInvoiceSearchController($rootScope, $state, $stateParams, $window, $scope, $translate, customerInvoice,\n CustomerInvoiceApiService, loadSpinnerService, ResourcesService) {\n var vm = this;\n\n //Properties\n vm.selectedInvoice = customerInvoice;\n vm.canAccess = $rootScope.canAccess;\n vm.showSearchFields = true;\n\n //Public methods\n vm.transitionToState = transitionToState;\n vm.toggleSearchFields = toggleSearchFields;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getTypeTranslation = getTypeTranslation;\n vm.goToUnboundInvoiceRows = goToUnboundInvoiceRows;\n\n activate();\n\n function activate() {\n vm.showSearchFields = true;\n if (vm.selectedInvoice && vm.selectedInvoice.id) {\n vm.showSearchFields = false;\n }\n }\n\n function transitionToState(invoiceId) {\n $state.go('customerinvoice.customerinvoice', { invoiceId: invoiceId });\n }\n\n function goToUnboundInvoiceRows() {\n $state.go('customerinvoice.customerinvoicerowsearch');\n }\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function getStatusTranslation(text) {\n return $translate.instant('customerinvoice.status' + text);\n }\n\n function getTypeTranslation(text) {\n return $translate.instant('customerinvoice.type' + text);\n }\n}\n\nangular\n .module('customerinvoice.customerinvoicesearch', [])\n .config(stateConfig)\n .controller('CustomerInvoiceSearchController', CustomerInvoiceSearchController);\n","// @ngInject\nfunction CustomerOrderApiService($q, $window, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'customerorders';\n\n return {\n getAll: getAll,\n getById: ResourcesService.apiFactory.get(endpoint),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n cancelById: ResourcesService.apiFactory.delete(endpoint),\n getDeliveryNotePdf: getDeliveryNotePdf\n };\n\n function getAll(page, searchTerm, pageSize) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (searchTerm && searchTerm.orderTypes && searchTerm.orderTypes.length > 0) {\n params.orderTypes = searchTerm.orderTypes;\n }\n\n if (searchTerm && searchTerm.selectedFromLocation && searchTerm.selectedFromLocation.id !== undefined) {\n params.fromLocation = searchTerm.selectedFromLocation.id;\n }\n\n if (searchTerm && !_.isEmpty(searchTerm.term)) {\n params.searchTerm = searchTerm.term;\n }\n\n if (searchTerm && searchTerm.onlyOrderNumber !== undefined) {\n params.onlyOrderNumber = searchTerm.onlyOrderNumber;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint, {params: params}).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getDeliveryNotePdf(orderId) \n {\n var deferred = $q.defer();\n\n var request = {};\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'customerorders/' + orderId + '/deliverynote', request, { responseType: 'arraybuffer' }).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('customerorders.api', [])\n .factory('CustomerOrderApiService', CustomerOrderApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('customerorder', {\n url: '/customerorder',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/customerorder/customerorder.tpl.html',\n controller: 'MainCustomerOrderController as vm'\n });\n}\n\n// @ngInject\nfunction MainCustomerOrderController() {\n var vm = this;\n}\n\nangular\n .module('main.customerorder', ['customerorders.api','customerorder.customerordersearch'])\n .config(stateConfig)\n .controller('MainCustomerOrderController', MainCustomerOrderController);\n","var module = angular.module('main.customerorder');\n\nmodule.component('caCustomerOrder',{\n templateUrl: 'main/customerorder/customerordersearch/customerordercontent/customerordercontent.cmp.tpl.html',\n bindings: {\n orderId: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($rootScope, $translate, CustomerOrderApiService, confirmationDialogService, loadSpinnerService, ToasterService, $window) {\n var vm = this;\n\n //Properties\n vm.customerOrder = {};\n vm.tabSelection = {\n orderRows: true,\n orderDeliveries: false\n };\n vm.showOrderHead = true;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.changeToOrderRowsTab = changeToOrderRowsTab;\n vm.changeToOrderPaymentsTab = changeToOrderPaymentsTab;\n vm.changeToOrderDeliveriesTab = changeToOrderDeliveriesTab;\n vm.changeToOrderRefundsTab = changeToOrderRefundsTab;\n vm.toggleOrderHead = toggleOrderHead;\n vm.cancelOrder = cancelOrder;\n vm.canAccess = $rootScope.canAccess;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getEllipsis = getEllipsis;\n vm.getOrderTypeTranslation = getOrderTypeTranslation;\n vm.canCancelOrder = canCancelOrder;\n vm.isCompanyOrder = isCompanyOrder;\n vm.printDeliveryNote = printDeliveryNote;\n vm.showDeliveryMethod = showDeliveryMethod;\n\n function onInit() {\n }\n function onChanges(change) {\n if (change.orderId && change.orderId.currentValue) {\n CustomerOrderApiService.getById(change.orderId.currentValue)\n .then(function(response) {\n vm.customerOrder = response;\n setUpGridData();\n loadGridData();\n });\n }\n }\n\n function showDeliveryMethod(){\n return vm.customerOrder.deliveryMethod !== undefined\n }\n\n function setUpGridData() {\n }\n\n function loadGridData() {\n }\n\n function changeToOrderRowsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.orderRows = true;\n }\n\n function changeToOrderPaymentsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.orderPayments = true;\n }\n\n function changeToOrderDeliveriesTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.orderDeliveries = true;\n }\n\n function isCompanyOrder() {\n return vm.customerOrder.customerKind === \"Company\";\n }\n\n function changeToOrderRefundsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.orderRefunds = true;\n }\n\n function setAllTabSelectionsToFalse() {\n var keys = Object.keys(vm.tabSelection);\n _.forEach(keys, function(key) {\n vm.tabSelection[key] = false;\n });\n }\n\n function toggleOrderHead() {\n vm.showOrderHead = !vm.showOrderHead;\n }\n\n function canCancelOrder() {\n var hasOrder = vm.customerOrder !== undefined;\n var hasOrderStatusCancelled = vm.customerOrder.status === 'cancelled';\n\n return hasOrder && !hasOrderStatusCancelled;\n }\n\n function printDeliveryNote() {\n loadSpinnerService.start('mainSpinner');\n CustomerOrderApiService.getDeliveryNotePdf(vm.orderId).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'order.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n ToasterService.showSuccess();\n }, function(error) {\n console.log(error);\n ToasterService.showError();\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36012-36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s-_]){1,}.(pdf|csv|xls|xlsx)/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function cancelOrder() {\n confirmationDialogService\n .showDialog($translate.instant('customerorder.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n CustomerOrderApiService.cancelById(vm.customerOrder.id).then(function(response) {\n vm.customerOrder.status = 'cancelled';\n _.forEach(vm.customerOrder.deliveries, function (o) {\n o.status = 'cancelled';\n });\n vm.isEditing = false;\n ToasterService.showSuccess($translate.instant('customerorder.orderCancelled'), $translate.instant('customerorder.customerorders'));\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getStatusTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('customerorder.status' + textCapital);\n }\n }\n\n function getOrderTypeTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('customerorder.type' + textCapital);\n }\n }\n\n function getEllipsis(text, len) {\n if (text && text.length > len) {\n return text.substr(0, len) + '...';\n } else {\n return text;\n }\n }\n}\n","var module = angular.module('main.customerorder');\n\nmodule.component('caCustomerOrderDeliveries',{\n templateUrl: 'main/customerorder/customerordersearch/customerordercontent/customerorderdeliveries.cmp.tpl.html',\n bindings: {\n customerOrder: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate, CustomerOrderApiService) {\n var vm = this;\n\n //Properties\n vm.customerOrder = {};\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.getDeliveryStatusTranslation = getDeliveryStatusTranslation;\n vm.getDeliveryTotal = getDeliveryTotal;\n vm.getOrderedQuantitySum = getOrderedQuantitySum;\n vm.getDeliveredQuantitySum = getDeliveredQuantitySum;\n\n function onInit() {\n\n }\n function onChanges() {\n _.forEach(vm.customerOrder.deliveries, function(delivery) {\n delivery.showRows = true;\n _.forEach(delivery.deliveryRows, function(deliveryRow) {\n _.forEach(vm.customerOrder.orderRows, function(orderRow) {\n if (orderRow.id === deliveryRow.orderRow.id) {\n deliveryRow.orderRow = angular.copy(orderRow);\n }\n });\n });\n });\n }\n\n function setUpGridData() {\n }\n\n function loadGridData() {\n }\n\n function getDeliveryStatusTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('customerorder.status' + textCapital);\n }\n }\n\n function getDeliveryTotal(delivery) {\n var sum = 0;\n _.forEach(delivery.deliveryRows, function(deliveryRow) {\n sum += (deliveryRow.orderRow.salesPrice * deliveryRow.deliveredQuantity) - (deliveryRow.orderRow.discount * deliveryRow.deliveredQuantity);\n });\n return sum;\n }\n\n function getOrderedQuantitySum(delivery) {\n var sum = 0;\n _.forEach(delivery.deliveryRows, function(deliveryRow) {\n sum += deliveryRow.orderedQuantity;\n });\n return sum;\n }\n\n function getDeliveredQuantitySum(delivery) {\n var sum = 0;\n _.forEach(delivery.deliveryRows, function(deliveryRow) {\n sum += deliveryRow.deliveredQuantity;\n });\n return sum;\n }\n}\n","var module = angular.module('main.customerorder');\n\nmodule.component('caCustomerOrderPayments',{\n templateUrl: 'main/customerorder/customerordersearch/customerordercontent/customerorderpayments.cmp.tpl.html',\n bindings: {\n customerOrder: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate) {\n var vm = this;\n\n //Properties\n vm.customerOrder = {};\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n function onInit() {\n }\n function onChanges() {\n }\n\n}\n","var module = angular.module('main.customerorder');\n\nmodule.component('caCustomerOrderRefunds',{\n templateUrl: 'main/customerorder/customerordersearch/customerordercontent/customerorderrefunds.cmp.tpl.html',\n bindings: {\n customerOrder: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate) {\n var vm = this;\n\n //Properties\n vm.customerOrder = {};\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.getTotalRefundQuantity = getTotalRefundQuantity;\n vm.getTotalRefundAmount = getTotalRefundAmount;\n vm.getTotalQuantityOfAllRefunds = getTotalQuantityOfAllRefunds;\n vm.getTotalAmountOfAllRefunds = getTotalAmountOfAllRefunds;\n\n function onInit() {\n }\n function onChanges() {\n }\n\n function getTotalRefundQuantity(refund) {\n var sum = _.sumBy(refund.rows, function(o) { return o.quantity; });\n return sum;\n }\n function getTotalRefundAmount(refund) {\n var sum = _.sumBy(refund.rows, function(o) { return o.amount; });\n return sum;\n }\n\n function getTotalQuantityOfAllRefunds() {\n var sum = _.sumBy(vm.customerOrder.refunds, function(o) {\n return _.sumBy(o.rows, function(o2) {\n return o2.quantity;\n });\n });\n return sum;\n }\n\n function getTotalAmountOfAllRefunds() {\n var sum = _.sumBy(vm.customerOrder.refunds, function(o) {\n return _.sumBy(o.rows, function(o2) {\n return o2.amount;\n });\n });\n return sum;\n }\n}\n","var module = angular.module('main.customerorder');\n\nmodule.component('caCustomerOrderRows',{\n templateUrl: 'main/customerorder/customerordersearch/customerordercontent/customerorderrows.cmp.tpl.html',\n bindings: {\n customerOrder: '<',\n navigated: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate, CustomerOrderApiService) {\n var vm = this;\n\n //Properties\n vm.hasResellerPrice = false;\n vm.currentCustomerOrderId = 0;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.getOrderRowTotalSum = getOrderRowTotalSum;\n vm.getOrderRowQuantitySum = getOrderRowQuantitySum;\n vm.showResellerPrice = vm.showResellerPrice;\n\n function onInit() {\n\n }\n function onChanges() {\n }\n\n function setUpGridData() {\n }\n\n function loadGridData() {\n }\n\n function getOrderRowTotalSum(orderRows) {\n var sum = 0;\n _.forEach(orderRows, function (row) {\n sum += (row.salesPrice * row.quantity);\n });\n return sum;\n }\n\n function getOrderRowQuantitySum(orderRows) {\n var sum = 0;\n _.forEach(orderRows, function (row) {\n sum += row.quantity;\n });\n return sum;\n }\n\n function showResellerPrice() {\n if (!vm.customerOrder) { return false; }\n if (vm.customerOrder.id === vm.currentCustomerOrderId && vm.hasResellerPrice) {\n return true;\n }\n\n vm.currentCustomerOrderId = vm.customerOrder.id;\n var hasResellerPrice = _.find(vm.customerOrder.orderRows, function(row) {\n return row.resellerSalesPrice !== 0 || row.resellerVatAmount !== 0;\n });\n vm.hasResellerPrice = hasResellerPrice !== undefined;\n\n return vm.hasResellerPrice;\n }\n}\n","var module = angular.module('main.customerorder');\n\nmodule.component('caCustomerOrderSearch',{\n templateUrl: 'main/customerorder/customerordersearch/customerordercontent/customerordersearch.cmp.tpl.html',\n bindings: {\n searchTerm: '<',\n onCustomerOrderSelected: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($rootScope, $scope, $state, $stateParams, $translate, CustomerOrderApiService,\n confirmationDialogService, loadSpinnerService) {\n var vm = this;\n\n //Properties\n vm.filterAll = true;\n vm.filterCreated = true;\n vm.filterPending = true;\n vm.filterDelivered = true;\n vm.filterRested = true;\n vm.filterPayed = true;\n vm.filterCancelled = true;\n\n //Functions\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.loadCustomerOrders = loadCustomerOrders;\n\n vm.searchTermChange = searchTermChange;\n vm.searchTermChangeDebounced = _.debounce(searchTermChange, 2000);\n vm.flushDebouncedIfEnterKey = flushDebouncedIfEnterKey;\n vm.filterAllChanged = filterAllChanged;\n\n vm.selectOrder = selectOrder;\n\n activate();\n\n function onInit() {\n vm.customerOrders = [];\n vm.searchTerm = {};\n vm.searchTerm.term = ($stateParams.searchTerm) ? $stateParams.searchTerm : '';\n vm.searchTerm.orderTypes = [];\n vm.searchTerm.locations = [];\n vm.searchTerm.selectedFromLocation = {};\n vm.searchTerm.onlyOrderNumber = true;\n\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.itemsPerPage = 15;\n }\n function onChanges() {\n }\n\n function activate() {\n loadLocations();\n }\n\n function loadCustomerOrders() {\n loadSpinnerService.start('mainSpinner');\n setSearchTermOrderTypes()\n CustomerOrderApiService.getAll(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function (response) {\n vm.customerOrders = response.data;\n vm.totalItems = response.totalItems;\n console.log(vm.customerOrders);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function filterAllChanged(){\n vm.filterCreated = vm.filterAll;\n vm.filterPending = vm.filterAll;\n vm.filterDelivered = vm.filterAll;\n vm.filterRested = vm.filterAll;\n vm.filterPayed = vm.filterAll;\n vm.filterCancelled = vm.filterAll;\n\n searchTermChange();\n }\n\n function setSearchTermOrderTypes(){\n vm.searchTerm.orderTypes = []\n vm.filterAll = true;\n\n if(vm.filterCreated)\n vm.searchTerm.orderTypes.push('Created');\n else\n vm.filterAll = false;\n\n if(vm.filterPending)\n vm.searchTerm.orderTypes.push('Pending');\n else\n vm.filterAll = false;\n \n if(vm.filterDelivered)\n vm.searchTerm.orderTypes.push('Delivered');\n else\n vm.filterAll = false;\n \n if(vm.filterRested)\n vm.searchTerm.orderTypes.push('Rested');\n else\n vm.filterAll = false;\n \n if(vm.filterPayed)\n vm.searchTerm.orderTypes.push('Payed');\n else\n vm.filterAll = false;\n \n if(vm.filterCancelled)\n vm.searchTerm.orderTypes.push('Cancelled');\n else\n vm.filterAll = false;\n\n }\n\n function loadLocations() {\n loadSpinnerService.start('mainSpinner');\n CustomerOrderApiService.getLocations().then(function (response) {\n vm.locations = response.data.results;\n var newEmptyLocation = {\n id: -1,\n locationName: $translate.instant('common.allLocations')\n };\n vm.locations.unshift(newEmptyLocation);\n vm.searchTerm.selectedFromLocation = vm.locations[0];\n\n $scope.$watch(function () {\n return vm.searchTerm.selectedFromLocation ? vm.searchTerm.selectedFromLocation.id : undefined;\n }, function(oldValue, newValue) {\n if (oldValue !== newValue || newValue === -1) {\n searchTermChange();\n }\n });\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadCustomerOrders();\n }\n\n function flushDebouncedIfEnterKey(keycode) {\n if (keycode === 13) {\n vm.searchTermChangeDebounced.flush();\n }\n }\n\n function selectOrder(orderId) {\n vm.onCustomerOrderSelected({ orderId: orderId });\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('customerorder.customerordersearch', {\n url: '/search',\n templateUrl: 'main/customerorder/customerordersearch/customerordersearch.tpl.html',\n controller: 'CustomerOrderSearchController as vm',\n resolve: {\n customerOrder: function() {\n return {};\n }\n },\n params: {\n searchTerm: ''\n }\n });\n $stateProvider.state('customerorder.customerorder', {\n url: '/{orderId}',\n templateUrl: 'main/customerorder/customerordersearch/customerordersearch.tpl.html',\n controller: 'CustomerOrderSearchController as vm',\n resolve: {\n customerOrder: customerOrderResolver\n },\n params: {\n searchTerm: ''\n }\n });\n}\n\n// @ngInject\nfunction customerOrderResolver($stateParams, CustomerOrderApiService) {\n return CustomerOrderApiService.getById($stateParams.orderId);\n}\n\n// @ngInject\nfunction CustomerOrderSearchController($rootScope, $state, $translate, customerOrder) {\n var vm = this;\n\n //Properties\n vm.selectedOrder = customerOrder;\n vm.canAccess = $rootScope.canAccess;\n vm.showSearchFields = true;\n\n //Public methods\n vm.transitionToState = transitionToState;\n vm.toggleSearchFields = toggleSearchFields;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getOrderTypeTranslation = getOrderTypeTranslation;\n vm.showSearchToggle = showSearchToggle;\n\n activate();\n\n function activate() {\n vm.showSearchFields = true;\n if (vm.selectedOrder && vm.selectedOrder.id) {\n vm.showSearchFields = false;\n }\n }\n\n function transitionToState(orderId) {\n $state.go('customerorder.customerorder', { orderId: orderId });\n }\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function showSearchToggle() {\n return vm.selectedOrder && vm.selectedOrder.id;\n }\n\n function getStatusTranslation(text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('customerorder.status' + textCapital);\n }\n\n function getOrderTypeTranslation(text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('customerorder.type' + textCapital);\n }\n}\n\nangular\n .module('customerorder.customerordersearch', [])\n .config(stateConfig)\n .controller('CustomerOrderSearchController', CustomerOrderSearchController);\n","angular.module('components.caDiscountMultiselect', [])\n .component('caDiscountMultiselect', {\n templateUrl: 'main/discountManagement/component/discountMultiselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n model: '=',\n choices: '<',\n placeholder: '<',\n filterBy: '<',\n orderBy: '<',\n disabledBy: '<',\n itemRenderer: '<'\n },\n controller: controller\n});\n\n// @ngInject\nfunction controller($scope) {\n var vm = this;\n \n vm.filter = '';\n vm.filteredChoices = [];\n\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n vm.filterChanged = filterChanged;\n vm.selectItem = selectItem;\n vm.deselectItem = deselectItem;\n vm.formatRenderer = formatRenderer;\n vm.hideSelected = false;\n\n vm.deselectSelection = deselectSelection;\n vm.selectFilterSelection = selectFilterSelection;\n vm.areThereItems = areThereItems;\n\n activate();\n\n\n function onInit() {\n }\n\n function activate(){\n $scope.$watch(function() {\n if(_.isUndefined(vm.model)){\n return vm.model;\n }\n \n return vm.model.length;\n },function(){\n filterChanged();\n }); \n }\n\n function areThereItems(){\n return vm.model.length > 0 || vm.filteredChoices.length > 0;\n }\n\n function onChanges(changes){\n if(vm.model === undefined){\n vm.model = [];\n }\n filterChanged();\n }\n\n function formatRenderer(value){\n var renderValue = '';\n _.forEach(vm.itemRenderer, function(item){\n renderValue += value[item] + ' ';\n })\n return renderValue;\n }\n\n function deselectItem(item){\n vm.filteredChoices.push(item);\n const index = vm.model.indexOf(item);\n vm.model.splice(index, 1);\n }\n\n function selectItem(item){\n vm.model.push(item);\n const index = vm.filteredChoices.indexOf(item);\n vm.filteredChoices.splice(index, 1);\n\n // Resets filter when we've selected an item and there are no more items after that.\n if(vm.filter !== '' && vm.filteredChoices.length === 0){\n vm.filter = '';\n filterChanged();\n }\n }\n\n function deselectSelection(){\n vm.model = [];\n vm.filter = \"\";\n filterChanged();\n }\n function selectFilterSelection(){\n vm.model = vm.model.concat(vm.filteredChoices)\n vm.filteredChoices = [];\n vm.filter = '';\n filterChanged();\n }\n\n function alreadyAdded(choice){\n var alreadyAdded = false;\n _.forEach(vm.model, function(item){\n var filterLength = vm.filterBy.length;\n _.forEach(vm.filterBy, function(by){\n if(item[by].toString().toLowerCase().includes(choice[by].toString().toLowerCase())){\n filterLength--;\n }\n });\n if(filterLength === 0){\n alreadyAdded = true;\n }\n });\n return alreadyAdded;\n }\n \n function filterChanged(){\n console.log('FilterChanged start');\n vm.filteredChoices = vm.choices.filter( function (choice){\n if(alreadyAdded(choice))\n return false;\n\n if(vm.filter === '')\n return true;\n\n var match = false;\n _.forEach(vm.filterBy, function(by){\n if(choice[by].toString().toLowerCase().includes(vm.filter.toLowerCase())){\n match = true;\n }\n });\n return match;\n });\n console.log('FilterChanged completed');\n }\n}","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('discountManagement', {\n url: '/discountManagement',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/discountManagement/discountManagement.tpl.html',\n controller: 'MainDiscountManagementController as vm'\n });\n}\n\n// @ngInject\nfunction MainDiscountManagementController(){\n var vm = this;\n}\n\nangular\n .module('main.discountManagement', ['discountManagement.discounts'])\n .config(stateConfig)\n .controller('MainDiscountManagementController', MainDiscountManagementController);","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('discountManagement.discounts.new', {\n url: '/new',\n views: {\n \"discountView@discountManagement\": {\n templateUrl: 'main/discountManagement/discounts/discount/discount.tpl.html',\n controller: 'DiscountController as vm'\n }\n },\n resolve: {\n discount: function () { return {}; },\n searchTerms: searchTermsResolver,\n discountTypes: discountTypesResolver,\n createNew: function () { return true; },\n createCopy: function () { return false; }\n }\n });\n\n $stateProvider.state('discountManagement.discounts.discount', {\n url: '/{discountId}',\n views: {\n \"discountView@discountManagement\": {\n templateUrl: 'main/discountManagement/discounts/discount/discount.tpl.html',\n controller: 'DiscountController as vm'\n }\n },\n resolve: {\n discount: discountResolver,\n searchTerms: searchTermsResolver,\n discountTypes: discountTypesResolver,\n createNew: function () { return false; },\n createCopy: function () { return false; }\n }\n });\n\n $stateProvider.state('discountManagement.discounts.copy', {\n url: '/copy/{discountId}',\n views: {\n \"discountView@discountManagement\": {\n templateUrl: 'main/discountManagement/discounts/discount/discount.tpl.html',\n controller: 'DiscountController as vm'\n }\n },\n resolve: {\n discount: discountCopyResolver,\n searchTerms: searchTermsResolver,\n discountTypes: discountTypesResolver,\n createNew: function () { return false; },\n createCopy: function () { return true; }\n }\n });\n}\n// @ngInject\nfunction discountCopyResolver($stateParams, DiscountsApiService) {\n return DiscountsApiService.getDiscountCopy($stateParams.discountId);\n}\n// @ngInject\nfunction discountTypesResolver(DiscountsApiService) {\n return DiscountsApiService.getDiscountTypes();\n}\n// @ngInject\nfunction discountResolver($stateParams, DiscountsApiService) {\n return DiscountsApiService.getDiscount($stateParams.discountId);\n}\n\n// @ngInject\nfunction searchTermsResolver($stateParams) {\n return {\n filter: $stateParams.filter ? $stateParams.filter : '',\n showCancelled: $stateParams.canc,\n showApproved: $stateParams.appr,\n showCompleted: $stateParams.comp\n };\n}\n\n// @ngInject\nfunction DiscountController($state, discount, discountTypes, loadSpinnerService, DiscountsApiService, createNew, createCopy, $scope, $translate, ToasterService, searchTerms, confirmationDialogService) {\n var vm = this;\n\n vm.descriptionMaxLength = descriptionMaxLength;\n vm.discount = discount.discount;\n vm.links = discount.links\n vm.discountTypes = discountTypes;\n vm.salesChannels = [];\n vm.mainGroups = [];\n vm.brands = [];\n vm.itemGroups = [];\n vm.isEditing = false;\n vm.isNew = false;\n vm.discountCopy = {};\n vm.step = 1;\n vm.maxSteps = 5;\n vm.itemGroupValidationErrors = [];\n vm.approveDiscount = false;\n vm.filter = '';\n vm.showCancelled = false;\n vm.showApproved= false;\n vm.showCompleted = false;\n\n vm.brandsChanged = false;\n vm.mainGroupsChanged = false;\n\n if(searchTerms){\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.showCancelled = searchTerms.showCancelled ? searchTerms.showCancelled == 'true' ? true : false : false;\n vm.showApproved = searchTerms.showApproved ? searchTerms.showApproved == 'true' ? true : false : false;\n vm.showCompleted = searchTerms.showCompleted ? searchTerms.showCompleted == 'true' ? true : false : false;\n }\n\n // functions\n vm.save = save;\n vm.enableEditing = enableEditing;\n vm.enableEditingFromCopy = enableEditingFromCopy;\n vm.cancelEditing = cancelEditing;\n vm.delete = deleteDiscount;\n \n vm.isApproveDiscountEnabled = isApproveDiscountEnabled;\n vm.approve = approve;\n vm.cancel = cancel;\n vm.itemGroupsEmpty = itemGroupsEmpty;\n vm.getSalesChannels = getSalesChannels;\n vm.timeSinceLastCall = 0;\n vm.setStepRotation = setStepRotation;\n vm.changeStep = changeStep;\n vm.setStep = setStep;\n vm.transformDiscountPercentToDecimal = transformDiscountPercentToDecimal\n vm.itemGroupStillBlocking = itemGroupStillBlocking;\n vm.validateItemGroups = validateItemGroups;\n vm.isSalesChannelSelected = isSalesChannelSelected;\n vm.endDateLessThanStartDate = endDateLessThanStartDate;\n vm.validatePercentRange = validatePercentRange;\n vm.removeErrorItemGroups = removeErrorItemGroups;\n vm.valueXandYValid = valueXandYValid;\n\n vm.formatDate = formatDate;\n\n // links\n vm.canEdit = canEdit;\n vm.canApprove = canApprove;\n vm.canCancel = canCancel;\n vm.canDelete = canDelete;\n vm.claimCanUpdate = claimCanUpdate;\n vm.claimCanCreate = claimCanCreate;\n vm.claimCanDelete = claimCanDelete;\n\n if (createNew || createCopy) {\n vm.isNew = true;\n vm.isEditing = true;\n \n if(createNew)\n vm.discount = {};\n\n getSalesChannels();\n }\n \n activate();\n\n\n\n function activate(){\n vm.discount.startDate = new Date(vm.discount.startDate);\n vm.discount.endDate = new Date(vm.discount.endDate);\n\n transformDiscountPercentToDisplayValue();\n\n $scope.$watch(function() { \n if(vm.discount.itemGroups !== undefined)\n {\n return vm.discount.itemGroups.length;\n }\n\n return vm.discount.itemGroups; \n \n }, function() {\n if(vm.step === 4){\n validateItemGroups();\n }\n });\n\n $scope.$watch(function() { \n if(!_.isUndefined(vm.discount.brands)){\n return vm.discount.brands.length;\n }\n\n return vm.discount.brands\n }, function() {\n vm.brandsChanged = true;\n });\n \n $scope.$watch(function() { \n if(!_.isUndefined(vm.discount.mainGroups)){\n return vm.discount.mainGroups.length;\n }\n\n return vm.discount.mainGroups\n }, function() {\n vm.mainGroupsChanged = true;\n });\n }\n\n function endDateLessThanStartDate(){\n return vm.discount.endDate <= vm.discount.startDate;\n \n }\n\n function isSalesChannelSelected(){\n if (vm.discount.salesChannel !== undefined){\n return vm.discount.salesChannel.id > 0\n }\n return false;\n }\n\n function itemGroupStillBlocking(error){\n var resp = _.findIndex(vm.discount.itemGroups, function(ig) { return ig.id === error.itemGroupId; });\n \n return resp >= 0;\n }\n\n function transformDiscountPercentToDisplayValue(){\n if(vm.discount.discountPercent !== undefined)\n vm.discount.discountPercent = vm.discount.discountPercent * 100\n }\n\n function transformDiscountPercentToDecimal(){\n if(vm.discount.discountPercent !== undefined)\n vm.discount.discountPercent = vm.discount.discountPercent * 0.01\n }\n\n function isApproveDiscountEnabled(){\n var response = true;\n \n response = !itemGroupsEmpty();\n\n return response;\n }\n\n function itemGroupsEmpty(){\n var response = false;\n\n if(_.isUndefined(vm.discount.itemGroups)){\n response = true;\n } else {\n if(vm.discount.itemGroups.length === 0){\n response = true;\n }\n }\n\n return response;\n }\n\n function changeStep(increase){\n if(vm.step < vm.maxSteps && increase){\n vm.step++;\n }\n else if(vm.step > 1 && !increase){\n vm.step--;\n }\n\n getNecessaryData();\n }\n\n function setStep(stepIndex){\n vm.step = stepIndex;\n\n if(vm.step > vm.maxSteps){\n vm.step = vm.maxSteps;\n }\n else if(vm.step < 1){\n vm.step = 1;\n }\n\n getNecessaryData();\n }\n\n function getNecessaryData(){\n if(vm.step === 2){ //MainGroups\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.getMainGroups().then(function(result){\n vm.mainGroups = result;\n }, function (error) {\n \n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n });\n }\n else if(vm.step === 3){ //Brands\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.getBrands(vm.discount.mainGroups).then(function(result){\n vm.brands = result;\n\n // To ensure that no \"old\" brand is left behind\n var brandIds = [];\n _.forEach(result, function(n){\n brandIds.push(n.id);\n });\n // Removes brands on the discount object that aren't on the list!\n vm.discount.brands = _.remove(vm.discount.brands, function(brand){\n return brandIds.includes(brand.id);\n });\n\n }, function (error) {\n \n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n });\n }\n else if(vm.step === 4){ //ItemGroups\n loadSpinnerService.start('mainSpinner');\n vm.itemGroups = [];\n DiscountsApiService.getItemGroups(vm.discount.brands, vm.discount.mainGroups).then(function(result){\n vm.itemGroups = angular.copy(result);\n if(_.isUndefined(vm.discount.itemGroups) || vm.discount.itemGroups.length === 0 || vm.brandsChanged || vm.mainGroupsChanged){\n vm.brandsChanged = false;\n vm.mainGroupsChanged = false;\n vm.discount.itemGroups = angular.copy(result);\n }\n }, function(error){\n\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n validateItemGroups();\n });\n }\n }\n\n function validateItemGroups(){\n loadSpinnerService.start('mainSpinner'); \n DiscountsApiService.validateItemGroups(vm.discount.id, vm.discount.itemGroups, vm.discount.startDate, vm.discount.endDate, vm.discount.salesChannel.id).then(function(result){\n vm.itemGroupValidationErrors = result;\n }, function(error){\n\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function removeErrorItemGroups(){\n var indexes = [];\n _.forEach(vm.itemGroupValidationErrors, function(error){\n _.forEach(vm.discount.itemGroups, function(itemGroup){\n if(itemGroup.id === error.itemGroupId){\n indexes.push(vm.discount.itemGroups.indexOf(itemGroup));\n }\n })\n });\n for(var i = indexes.length -1; i >= 0; i--){\n vm.discount.itemGroups.splice(indexes[i], 1);\n }\n\n validateItemGroups();\n }\n\n function setStepRotation(){\n var style = {};\n\n var degrees = 250 + (-35 * (vm.step - 1));\n\n style['transform'] = 'rotate(' + degrees + 'deg)';\n\n return style;\n }\n\n function descriptionMaxLength(maxLength){\n if(vm.discount.description.length > maxLength){\n vm.discount.description = vm.discount.description.substring(0, maxLength);\n }\n }\n\n function getSalesChannels(){\n DiscountsApiService.getSalesChannels().then(function(result){\n vm.salesChannels = result;\n if(vm.discount.salesChannel != undefined)\n vm.discount.salesChannel = _.find(vm.salesChannels, function(salesChannel){ return salesChannel.id === vm.discount.salesChannel.id});\n }, function (error) {\n \n });\n }\n\n function formatDate(date) {\n if(date === null)\n return date;\n if(angular.isNumber(date)){\n date = new Date(date);\n }\n const offset = date.getTimezoneOffset()\n date = new Date(date.getTime() - (offset*60*1000))\n return date.toISOString().split('T')[0]\n }\n\n function save() {\n transformDiscountPercentToDecimal();\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.saveDiscount(vm.discount).then(function (result) {\n vm.discount.id = result.id.id;\n vm.isEditing = false;\n vm.isNew = false;\n ToasterService.showSuccess('\"' + vm.discount.name + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"discount.discount\"));\n transformDiscountPercentToDisplayValue();\n vm.step = 1;\n if(vm.approveDiscount){\n approve();\n }\n else {\n }\n }, function (error) {\n ToasterService.showError(error.data.message, $translate.instant(\"discount.discount\"), 20000);\n loadSpinnerService.stop('mainSpinner');\n }).finally(function() {\n if(!vm.approveDiscount){\n $state.go('discountManagement.discounts.discount', { discountId: vm.discount.id }, {reload: 'discountManagement.discounts'});\n loadSpinnerService.stop('mainSpinner');\n }\n });\n }\n\n function approve() {\n confirmationDialogService.showDialog($translate.instant(\"discount.confirmApprove\")).then(function (approveConfirmed) {\n if(approveConfirmed === true) {\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.approveDiscount(vm.discount.id).then(function (result) {\n vm.approveDiscount = false;\n ToasterService.showSuccess($translate.instant(\"discount.status.approved\"), $translate.instant(\"discount.discount\"), 20000);\n }, function (error) {\n ToasterService.showError(error.data.message, $translate.instant(\"discount.discount\"), 20000);\n }).finally(function() {\n $state.go('discountManagement.discounts.discount', { discountId: vm.discount.id }, {reload: 'discountManagement.discounts'});\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function cancel(){\n confirmationDialogService.showDialog($translate.instant(\"discount.confirmCancel\"), 'danger').then(function (cancelConfirmed) {\n if(cancelConfirmed === true) {\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.cancelDiscount(vm.discount.id).then(function(response){\n ToasterService.showSuccess($translate.instant(\"discount.status.cancelled\"), $translate.instant(\"discount.discount\"), 20000);\n }, function (error) {\n ToasterService.showError(error.data.message, $translate.instant(\"discount.discount\"), 20000);\n }).finally(function() {\n $state.go('discountManagement.discounts.discount', { discountId: vm.discount.id }, {reload: 'discountManagement.discounts'});\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function enableEditing() {\n vm.discountCopy = angular.copy(vm.discount);\n vm.discount.startDate = new Date(vm.discount.startDate);\n vm.discount.endDate = new Date(vm.discount.endDate);\n vm.step = 1;\n vm.isEditing = true;\n getSalesChannels();\n }\n \n function enableEditingFromCopy() {\n getSalesChannels();\n $state.go('discountManagement.discounts.copy', {discountId: vm.discount.id});\n }\n\n function cancelEditing() {\n vm.discount = angular.copy(vm.discountCopy);\n vm.step = 1;\n vm.isEditing = false;\n }\n\n function deleteDiscount() {\n confirmationDialogService.showDialog($translate.instant(\"discount.confirmDelete\"), 'danger').then(function (deleteConfirmed) {\n if(deleteConfirmed === true) {\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.deleteDiscount(vm.discount.id).then(function() {\n ToasterService.showSuccess('\"' + vm.discount.name + '\" ' + $translate.instant(\"common.wasDeleted\"), $translate.instant(\"discount.discount\"));\n }, function (error) {\n ToasterService.showError($translate.instant(error.data.message), $translate.instant(\"discount.discount\"));\n }).finally(function () {\n vm.isEditing = false;\n vm.isNew = false;\n vm.step = 1;\n $state.go('discountManagement.discounts',{},{reload: 'discountManagement.discounts'});\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function validatePercentRange(minValue, maxValue) {\n if(vm.discount.discountPercent < minValue){\n vm.discount.discountPercent = minValue;\n }\n if(vm.discount.discountPercent > maxValue){\n vm.discount.discountPercent = maxValue;\n }\n\n }\n\n function valueXandYValid() {\n if(vm.discount.discriminator.value === 'BuyXgetYDiscount'){\n return vm.discount.valueX < vm.discount.valueY && vm.discount.valueX > 0 && vm.discount.valueY > 0\n }\n else if(vm.discount.discriminator.value === 'BuyXgetCheapestDiscount'){\n return vm.discount.valueX > 0\n }\n return true;\n }\n\n /* DISCOUNT LINKS */\n function canEdit() {\n return DiscountsApiService.canEditDiscount(vm.links);\n }\n function canApprove(){\n return DiscountsApiService.canApproveDiscount(vm.links);\n }\n function canCancel(){\n return DiscountsApiService.canCancelDiscount(vm.links);\n }\n function canDelete(){\n return DiscountsApiService.canDeleteDiscount(vm.links);\n }\n function claimCanUpdate(){\n return DiscountsApiService.claimCanUpdateDiscount(vm.links);\n }\n function claimCanCreate(){\n return DiscountsApiService.claimCanCreateDiscount(vm.links); \n }\n function claimCanDelete(){\n return DiscountsApiService.claimCanDeleteDiscount(vm.links); \n }\n\n}\n\nangular\n .module('discounts.discount', [])\n .config(stateConfig)\n .controller('DiscountController', DiscountController);","// @ngInject\nfunction DiscountsApiService($rootScope, $q, $window, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'discounts';\n \n return {\n getDiscounts: getDiscounts,\n getDiscount: getDiscount,\n getDiscountCopy: getDiscountCopy,\n saveDiscount: saveDiscount,\n validateItemGroups: validateItemGroups,\n deleteDiscount: ResourcesService.apiFactory.delete(endpoint, 'Discount'),\n getSalesChannels: ResourcesService.apiFactory.get(endpoint + '/saleschannels'),\n getMainGroups: ResourcesService.apiFactory.get(endpoint + '/maingroups'),\n getDiscountTypes: ResourcesService.apiFactory.get(endpoint + '/types'),\n getBrands: getBrands,\n getItemGroups: getItemGroups,\n approveDiscount: approveDiscount,\n cancelDiscount: cancelDiscount,\n\n // Links\n canEditDiscount: canEditDiscount,\n canApproveDiscount: canApproveDiscount,\n canCancelDiscount: canCancelDiscount,\n canDeleteDiscount: canDeleteDiscount,\n claimCanCreateDiscount: claimCanCreateDiscount,\n claimCanUpdateDiscount: claimCanUpdateDiscount,\n claimCanDeleteDiscount: claimCanDeleteDiscount\n };\n\n function hasLink(links, rel) {\n var link = _.find(links, function (o) {\n return o.rel === rel;\n });\n\n if (link) {\n return true;\n }\n\n return false;\n }\n\n function canEditDiscount(links) {\n return hasLink(links, 'can_edit');\n }\n \n function canApproveDiscount(links) {\n return hasLink(links, 'can_approve');\n }\n\n function canCancelDiscount(links) {\n return hasLink(links, 'can_cancel');\n }\n \n function canDeleteDiscount(links) {\n return hasLink(links, 'can_delete');\n }\n\n function claimCanUpdateDiscount(links) {\n return hasLink(links, 'claim_can_update');\n }\n function claimCanCreateDiscount(links) {\n return hasLink(links, 'claim_can_create');\n }\n function claimCanDeleteDiscount(links) {\n return hasLink(links, 'claim_can_delete');\n }\n\n function approveDiscount(discountId){\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + discountId + '/confirmation')\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n \n function cancelDiscount(discountId){\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + discountId + '/cancellation')\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function validateItemGroups(discountId, itemGroups, startDate, endDate, salesChannelId){\n var deferred = $q.defer();\n\n var tempStartDate = startDate;\n tempStartDate = new Date(tempStartDate);\n startDate = new Date(Date.UTC(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()));\n var tempEndDate = endDate;\n tempEndDate = new Date(tempEndDate);\n endDate = new Date(Date.UTC(tempEndDate.getFullYear(), tempEndDate.getMonth(), tempEndDate.getDate(), 23, 59, 59, 0));\n\n var request = {\n 'discountId': discountId,\n 'itemGroups' : itemGroups,\n 'startDate': startDate,\n 'endDate': endDate,\n 'salesChannelId': salesChannelId\n };\n\n var jsonRequest = JSON.stringify(request);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/validateitemgroups', jsonRequest).then(function(response){\n deferred.resolve(response.data);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getBrands(mainGroups) {\n var deferred = $q.defer();\n var request = [];\n\n _.forEach(mainGroups, function(mainGroup){\n request.push(mainGroup.id);\n });\n\n var jsonRequest = JSON.stringify(request);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/brands', jsonRequest).then(function (response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getItemGroups(brands, mainGroups) {\n var deferred = $q.defer();\n\n var request = {\n mainGroupIds: [],\n brandIds: []\n };\n\n _.forEach(mainGroups, function(mainGroup){\n request.mainGroupIds.push(mainGroup.id);\n });\n _.forEach(brands, function(brand){\n request.brandIds.push(brand.id);\n });\n\n var jsonRequest = JSON.stringify(request);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/itemgroups', jsonRequest).then(function (response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getDiscounts(filter, currentPage, pageSize, showCancelled, showApproved, showCompleted, monthsBack) {\n var deferred = $q.defer();\n\n var params = {};\n if(!_.isEmpty(filter)){\n params.filter = filter;\n }\n params.currentPage = currentPage;\n params.pageSize = pageSize;\n params.showCancelled = showCancelled;\n params.showApproved = showApproved;\n params.showCompleted = showCompleted;\n params.monthsBack = monthsBack;\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint, { params: params}).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function getDiscount(id) {\n var deferred = $q.defer();\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + id)\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function getDiscountCopy(id) {\n var deferred = $q.defer();\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + id + '/copy')\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function saveDiscount(discount) {\n \n var deferred = $q.defer();\n\n var discountData = discount;\n /*var discountData = {\n id : discount.id,\n name : discount.name,\n startDate : discount.startDate,\n endDate : discount.endDate,\n status : discount.status,\n salesChannel : discount.salesChannel,\n itemGroups : discount.itemGroups,\n description : discount.description\n }*/\n\n var sendDiscountData = angular.copy(discountData);\n\n var startDate = sendDiscountData.startDate;\n startDate = new Date(startDate);\n sendDiscountData.startDate = new Date(Date.UTC(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()));\n var endDate = sendDiscountData.endDate;\n endDate = new Date(endDate);\n sendDiscountData.endDate = new Date(Date.UTC(endDate.getFullYear(), endDate.getMonth(), endDate.getDate()));\n\n var jsonData = JSON.stringify(sendDiscountData);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/save', jsonData).then(function (response) {\n deferred.resolve(response.data);\n $rootScope.$emit('Discount.Updated', response.data);\n $rootScope.$emit('Discount.Changed', response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n}\n angular\n .module('discounts.api', [])\n .factory('DiscountsApiService', DiscountsApiService);\n ","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('discountManagement.discounts', {\n url: '/discounts?show&canc&appr&comp&months&filter&currPage&pageSize',\n views: {\n 'discountList@discountManagement': {\n templateUrl: 'main/discountManagement/discounts/discounts.tpl.html',\n controller: 'DiscountsController as vm'\n }\n },\n resolve: {\n searchTerms: searchTermsResolver,\n discounts: discountsResolver\n }\n });\n}\n\n// @ngInject\nfunction discountsResolver($stateParams, DiscountsApiService){\n return DiscountsApiService.getDiscounts($stateParams.filter, $stateParams.currPage, $stateParams.pageSize, $stateParams.canc, $stateParams.appr, $stateParams.comp, $stateParams.months);\n}\n\n// @ngInject\nfunction searchTermsResolver($stateParams) {\n return {\n showDropDown : $stateParams.show,\n filter: $stateParams.filter ? $stateParams.filter : '',\n currentPage: $stateParams.currPage,\n pageSize : $stateParams.pageSize,\n showCancelled: $stateParams.canc,\n showApproved: $stateParams.appr,\n showCompleted: $stateParams.comp,\n monthsBack: $stateParams.months\n };\n}\n\n// @ngInject\nfunction DiscountsController($scope ,$rootScope, $state, $stateParams, discounts, loadSpinnerService, DiscountsApiService, ToasterService, confirmationDialogService, $translate, searchTerms) {\n var vm = this;\n\n vm.filter = '';\n vm.discounts = discounts.data.results;\n vm.selectedDiscountId = 0;\n vm.filterDropdownIsVisisble = false;\n vm.showCancelled = false;\n vm.showCompleted = false;\n vm.showApproved = false;\n vm.monthsOptions = [0, 1, 2, 4, 6, 8, 12, 9999]\n vm.monthsBackOption = 0;\n vm.currentDate = new Date();\n vm.currentPage = discounts.data.page;\n vm.pageSize = discounts.data.limit;\n vm.totalDiscounts = discounts.data.total;\n\n vm.searchTermChanged = searchTermChanged;\n vm.forceReloadUrl = forceReloadUrl;\n vm.selectDiscount = selectDiscount;\n vm.selectedDiscountId = 0;\n vm.listBackgroundStyle = listBackgroundStyle\n vm.flipDropDownFilter = flipDropDownFilter;\n vm.flipCancelled = flipCancelled;\n vm.flipApproved = flipApproved;\n vm.flipCompleted = flipCompleted;\n vm.monthChanged = monthChanged;\n vm.claimCanCreate = claimCanCreate;\n\n //$scope.$watch(function() { return vm.showCancelled; }, function(oldValue, newValue) {\n // searchTermChanged(true);\n //});\n //$scope.$watch(function() { return vm.showCompleted; }, function(oldValue, newValue) {\n // searchTermChanged(true);\n //});\n//#region OldCalendarStuff\n // properties\n vm.discountsOld = [\n { \n 'name': \"Test Rabatt\",\n 'code': \"XHGY21\",\n 'startDate': new Date(2022, 1, 10),\n 'endDate': new Date(2022, 1, 16),\n 'description': \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sit amet tellus cras adipiscing enim eu turpis. Bibendum arcu vitae elementum curabitur vitae nunc sed velit. Risus nec feugiat in fermentum posuere.\"\n },\n { \n 'name': \"Test Rabatt 2\",\n 'code': \"XHGY22\",\n 'startDate': new Date(2022, 1, 1),\n 'endDate': new Date(2022, 1, 8),\n 'description': \"Nunc mi ipsum faucibus vitae aliquet nec ullamcorper. Nullam non nisi est sit amet. Nisi lacus sed viverra tellus in hac habitasse platea dictumst. Ullamcorper dignissim cras tincidunt lobortis feugiat.\"\n },\n { \n 'name': \"Test Rabatt 3\",\n 'code': \"XHGY23\",\n 'startDate': new Date(2022, 2, 2),\n 'endDate': new Date(2022, 2, 10),\n 'description': \"Quis vel eros donec ac odio tempor orci. Tempus urna et pharetra pharetra massa massa ultricies mi.\"\n },\n { \n 'name': \"Test Rabatt 4\",\n 'code': \"XHGY24\",\n 'startDate': new Date(2022, 1, 12),\n 'endDate': new Date(2022, 1, 18),\n 'description': \"Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Mus mauris vitae ultricies leo integer malesuada nunc vel risus. Consectetur libero id faucibus nisl tincidunt.\"\n },\n { \n 'name': \"Test Rabatt 5\",\n 'code': \"XHGY25\",\n 'startDate': new Date(2022, 4, 1),\n 'endDate': new Date(2022, 4, 31),\n 'description': \"Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Mus mauris vitae ultricies leo integer malesuada nunc vel risus. Consectetur libero id faucibus nisl tincidunt.\"\n }\n ];\n //vm.selectedDiscount = discount;\n vm.dates = [];\n vm.selectedMonth = new Date().getMonth();\n vm.selectedYear = new Date().getFullYear();\n\n vm.increaseMonth = increaseMonth;\n vm.decreaseMonth = decreaseMonth;\n vm.shouldDisplayDiscount = shouldDisplayDiscount;\n vm.getColspanForDiscount = getColspanForDiscount;\n vm.shouldSkipRepeat = shouldSkipRepeat;\n\n vm.months = [\n { 'name': \"jan\", 'days': [] },\n { 'name': \"feb\", 'days': [] },\n { 'name': \"mar\", 'days': [] },\n { 'name': \"apr\", 'days': [] },\n { 'name': \"may\", 'days': [] },\n { 'name': \"jun\", 'days': [] },\n { 'name': \"jul\", 'days': [] },\n { 'name': \"aug\", 'days': [] },\n { 'name': \"sep\", 'days': [] },\n { 'name': \"oct\", 'days': [] },\n { 'name': \"nov\", 'days': [] },\n { 'name': \"dec\", 'days': [] },\n ]\n\n var weekday = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];\n//#endregion\n activate();\n\n function activate() { \n vm.filterDropdownIsVisisble = searchTerms.showDropDown ? searchTerms.showDropDown == 'true' ? true : false : false;\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.showCancelled = searchTerms.showCancelled ? searchTerms.showCancelled == 'true' ? true : false : false;\n vm.showApproved = searchTerms.showApproved ? searchTerms.showApproved == 'true' ? true : false : false;\n vm.showCompleted = searchTerms.showCompleted ? searchTerms.showCompleted == 'true' ? true : false : false;\n vm.monthsBackOption = searchTerms.monthsBack ? searchTerms.monthsBack: 0;\n\n recalcDaysInMonths();\n\n console.log(vm.months);\n\n //$rootScope.$on('Discount.Changed', function () {\n // loadDiscounts();\n //});\n }\n\n function claimCanCreate(){\n return (!_.isUndefined($rootScope.currentUser.claims.discount) && !_.isUndefined($rootScope.currentUser.claims.discount.create)) || $rootScope.currentUser.claims.discount.create\n }\n\n function searchTermChanged(reloadUrl){\n \n if(reloadUrl){\n forceReloadUrl();\n }\n\n loadDiscounts();\n }\n\n function forceReloadUrl(){\n $state.go('discountManagement.discounts', \n {\n currPage: vm.currentPage,\n pageSize: vm.pageSize,\n show: vm.filterDropdownIsVisisble,\n filter: vm.filter,\n canc: vm.showCancelled,\n appr: vm.showApproved,\n comp: vm.showCompleted,\n months: vm.monthsBackOption\n },\n {notify: false}\n );\n }\n\n function loadDiscounts() {\n console.log(vm.filterDropdownIsVisisble, vm.filter, vm.showCompleted, vm.showApproved, vm.showCancelled, vm.monthsBackOption);\n loadSpinnerService.start('mainSpinner');\n DiscountsApiService.getDiscounts(vm.filter, vm.currentPage, vm.pageSize, vm.showCancelled, vm.showApproved, vm.showCompleted, vm.monthsBackOption).then(function (response) {\n console.log(response);\n vm.discounts = response.data.results;\n vm.currentPage = response.data.page;\n vm.pageSize = response.data.limit;\n vm.totalDiscounts = response.data.total;\n\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function selectDiscount(discount) {\n vm.selectedDiscountId = discount.id;\n $state.go('discountManagement.discounts.discount', \n {\n discountId: discount.id,\n currPage: vm.currentPage,\n pageSize: vm.pageSize,\n show: vm.filterDropdownIsVisisble,\n filter: vm.filter,\n canc: vm.showCancelled,\n appr: vm.showApproved,\n comp: vm.showCompleted,\n months: vm.monthsBackOption\n }\n );\n }\n\n function listBackgroundStyle(discount){\n var style = {};\n\n if(discount.status === 'discount.Approved')\n style['background-color'] = 'rgba(0,255,0,0.06)';\n else if(discount.status === 'discount.Cancelled')\n style['background-color'] = 'rgba(255,0,0,0.03)';\n \n return style;\n }\n\n function monthChanged() {\n if(vm.monthsBackOption < 0)\n vm.monthsBackOption = vm.monthsOptions[0];\n if(vm.monthsBackOption >= vm.monthsOptions.length)\n vm.monthsBackOption = vm.monthsOptions.length - 1;\n\n searchTermChanged(true);\n }\n function flipDropDownFilter() {\n vm.filterDropdownIsVisisble = !vm.filterDropdownIsVisisble;\n forceReloadUrl();\n }\n function flipCancelled() {\n vm.showCancelled = !vm.showCancelled;\n searchTermChanged(true);\n }\n function flipApproved() {\n vm.showApproved = !vm.showApproved;\n searchTermChanged(true);\n }\n function flipCompleted() {\n vm.showCompleted = !vm.showCompleted;\n searchTermChanged(true);\n }\n\n function recalcDaysInMonths(){\n _.forEach(vm.months, function(month){\n month.days = [];\n var daysInMonth = 0;\n if(month.name === 'jan' || month.name === 'mar' || month.name === 'may' || month.name === 'jul' || month.name === 'aug' || month.name === 'oct' || month.name === 'dec'){\n daysInMonth = 31;\n }\n else if(month.name === 'apr' || month.name === 'jun' || month.name === 'sep' || month.name === 'nov'){\n daysInMonth = 30\n }\n else if(month.name === 'feb'){\n daysInMonth = leapYear(vm.selectedYear) ? 29 : 28;\n }\n\n for(let i = 1; i <= daysInMonth; i++){\n var day = weekday[new Date(vm.selectedYear, vm.selectedMonth, i).getDay()];\n month.days.push({ 'index': i, 'name': day });\n }\n });\n }\n\n function increaseMonth(){\n vm.selectedMonth++;\n if(vm.selectedMonth >= 12){\n vm.selectedMonth = 0;\n vm.selectedYear++;\n recalcDaysInMonths();\n }\n }\n \n function decreaseMonth(){\n vm.selectedMonth--;\n if(vm.selectedMonth < 0){\n vm.selectedMonth = 11;\n vm.selectedYear--;\n recalcDaysInMonths();\n }\n }\n\n function shouldDisplayDiscount(discount, day){\n //console.log(vm.selectedYear + \" - \" + discount.startDate.getFullYear());\n if(vm.selectedYear === discount.startDate.getFullYear() || vm.selectedYear === discount.endDate.getFullYear()){\n //console.log(vm.selectedMonth + \" - \" + discount.startDate.getMonth());\n if(vm.selectedMonth === discount.startDate.getMonth() || vm.selectedMonth === discount.endDate.getMonth()){\n //console.log(day.index + \" - \" + discount.startDate.getDate());\n if(day.index >= discount.startDate.getDate() && day.index <= discount.endDate.getDate()){\n return true;\n }\n return false;\n }\n return false;\n }\n return false;\n }\n\n function daysBetween(startDate, endDate) {\n var millisecondsPerDay = 24 * 60 * 60 * 1000;\n return (endDate - startDate) / millisecondsPerDay;\n }\n\n \n function shouldSkipRepeat(discount, day){\n if(shouldDisplayDiscount(discount, day)){\n if(day.index > discount.startDate.getDate() && day.index <= discount.endDate.getDate()){\n return true;\n }\n }\n\n return false; \n }\n\n function getColspanForDiscount(discount, day){\n var colspan = 1;\n\n if(shouldDisplayDiscount(discount, day)){\n if(discount.startDate.getDate() === day.index){\n colspan += daysBetween(discount.startDate, discount.endDate);\n }\n }\n\n return colspan;\n }\n\n function leapYear(year)\n {\n return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n }\n}\n\nangular.module('discountManagement.discounts', ['discounts.api', 'discounts.discount'])\n .config(stateConfig)\n .controller('DiscountsController', DiscountsController);\n","// @ngInject\nfunction EconomyApiService($window, DS, DSHttpAdapter, ResourcesService, $q, $document) {\n\n var endpoint = 'economy';\n\n return {\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getAccountConfigMessages: ResourcesService.apiFactory.get(endpoint + '/missingaccountsettings'),\n downloadSIEFile: downloadSIEFile\n };\n\n function downloadSIEFile(fromDate, toDate, organizationNumber) {\n var deferred = $q.defer();\n var url = $window.URL || $window.webkitURL;\n\n var fromDateString = fromDate.getFullYear() + '-' + _.padStart(fromDate.getMonth() + 1 + '', 2, '0') + '-' + _.padStart(fromDate.getDate(), 2, '0');\n var toDateString = toDate.getFullYear() + '-' + _.padStart(toDate.getMonth() + 1 + '', 2, '0') + '-' + _.padStart(toDate.getDate(), 2, '0');\n\n var params = {\n startDate: fromDateString,\n endDate: toDateString,\n organizationNumber: organizationNumber\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/siefile', {params: params}).then(function (response) {\n var blob = new Blob([response.data], { type: 'text/plain' });\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, \"SIE.SI\");\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = \"SIE.SI\";\n a.click();\n a.remove();\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n}\n\nangular.module('economy.api', [])\n .factory('EconomyApiService', EconomyApiService);\n","angular\n .module('main.economy', ['economy.api','economy.siefileexport']);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('main.siefileexport', {\n url: '/sie',\n templateUrl: 'main/economy/siefileexport/siefileexport.tpl.html',\n controller: 'SieFileExportController as vm',\n resolve: {\n locations: locationsResolver,\n accountMessages: accountMessagesResolver\n }\n });\n}\n\n// @ngInject\nfunction locationsResolver(EconomyApiService) {\n return EconomyApiService.getLocations();\n}\n\n// @ngInject\nfunction accountMessagesResolver(EconomyApiService) {\n return EconomyApiService.getAccountConfigMessages();\n}\n\n// @ngInject\nfunction SieFileExportController($interval, EconomyApiService, loadSpinnerService, locations, accountMessages) {\n var vm = this;\n\n vm.fromDate = new Date();\n vm.toDate = new Date();\n vm.organizationNumbers = [];\n vm.organizationNumber = \"\";\n vm.accountMessages = accountMessages;\n\n vm.fetchSieFile = fetchSieFile;\n\n activate();\n\n function activate() {\n _.forEach(locations, function(location) {\n if (!_.find(vm.organizationNumbers, function (num) { return num === location.organizationNumber; })) {\n vm.organizationNumbers.push(location.organizationNumber);\n }\n });\n }\n\n function fetchSieFile() {\n loadSpinnerService.start('mainSpinner');\n var orgNr = (vm.organizationNumber !== \"\") ? vm.organizationNumber : \"\";\n EconomyApiService.downloadSIEFile(vm.fromDate, vm.toDate, vm.organizationNumber).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n}\n\nangular\n .module('economy.siefileexport', [])\n .config(stateConfig)\n .controller('SieFileExportController', SieFileExportController);\n\n\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('main', {\n parent: 'app',\n abstract: true,\n url: '',\n views: {\n \"app-content\": {\n templateUrl: 'main/main.tpl.html',\n controller: 'MainController as vm'\n }\n },\n data: { claims: ['user']}\n });\n}\n// @ngInject\nfunction MainController($rootScope, $state, $location, currentUser, AuthService, UserTimeStampingDialogService, TimeStampingApiService, $window, NavigationApiService, VersionService, TimedOutLoginDialogService, ToasterService) {\n var vm = this;\n\n $rootScope.currentUser = currentUser;\n\n vm.currentUserClaims = currentUser.claims;\n vm.currentLicense = currentUser.licenseConfig;\n vm.menuNodes = [];\n vm.latestTimeStamp = {};\n vm.loginDialog = false;\n vm.tenant = currentUser.tenant;\n\n vm.currentUser = currentUser;\n\n vm.logOut = AuthService.logOut;\n vm.openTimeStampingModal = openTimeStampingModal;\n vm.hasVersionChanged = VersionService.hasVersionChanged;\n vm.isReloading = false;\n vm.reload = reload;\n vm.currentTenantLogoPath = \"\";\n vm.supportViewOptionEnabled = cleverAppsLoggedIn();\n\n activate();\n\n function activate() {\n NavigationApiService.getNavigationNodes().then(function(nodes) {vm.menuNodes = nodes;});\n\n updateLatestTimeStamp();\n $(document).on('click', '[ui-toggle]', function (e) {\n e.preventDefault();\n var eventTarget = $(e.target);\n var result = eventTarget.attr('ui-toggle') || (eventTarget = eventTarget.closest('[ui-toggle]'));\n var $target = $(eventTarget.attr('target')) || eventTarget;\n $target.toggleClass(eventTarget.attr('ui-toggle'));\n });\n console.log($rootScope.currentUser.tenant.tenantStringIdentifier.toLowerCase());\n $rootScope.$on('Version.Changed', function() {\n vm.hasVersionChanged = true;\n });\n\n var tenantStringIdentifier = $rootScope.currentUser.tenant.tenantStringIdentifier.toLowerCase();\n\n if(isZalando(tenantStringIdentifier)) tenantStringIdentifier = \"zalando\";\n\n if(isFutureOfRetail(tenantStringIdentifier)) tenantStringIdentifier = \"for\";\n\n if(isYabie(tenantStringIdentifier)) tenantStringIdentifier = \"yabie\";\n\n vm.currentTenantLogoPath = \"./assets/images/\" + tenantStringIdentifier + \"_logo.png\";\n VersionService.start();\n\n queueRefreshSession();\n\n //var t=setInterval(checkToken, 20000);\n }\n\n function cleverAppsLoggedIn() {\n return $rootScope.currentUser.firstName === \"CleverApps\" &&\n ($rootScope.currentUser.lastName === \"Superuser\" ||\n $rootScope.currentUser.lastName === \"Support\" ||\n $rootScope.currentUser.lastName === \"Thomas Sverker\") &&\n ($rootScope.currentUser.username === \"superuser\" ||\n $rootScope.currentUser.username === \"support\" ||\n $rootScope.currentUser.username === \"thsv\");\n }\n\n // For our Zalando Customers\n function isZalando(tenantStringIdentifier) {\n var currentUrl = $location.$$absUrl.toLowerCase();\n return currentUrl.includes(\"zalando\");\n //return (tenantStringIdentifier === \"streetone\" ||\n // tenantStringIdentifier === \"amazing\" ||\n // tenantStringIdentifier === \"urbanmodern\" ||\n // tenantStringIdentifier === \"casualwoman\")\n }\n\n // For our FutureOfRetail Customers\n function isFutureOfRetail(tenantStringIdentifier) {\n var currentUrl = $location.$$absUrl.toLowerCase();\n return currentUrl.includes(\"for\");\n //return (tenantStringIdentifier === \"nordicoutlet\")\n }\n\n // For our Yabie customers\n function isYabie(tenantStringIdentifier) {\n var currentUrl = $location.$$absUrl.toLowerCase();\n return currentUrl.includes(\"yabie\");\n }\n\n function reload() {\n vm.isReloading = true;\n VersionService.reload();\n }\n\n function openTimeStampingModal() {\n UserTimeStampingDialogService.showDialog().finally(function() {\n updateLatestTimeStamp();\n });\n }\n\n function updateLatestTimeStamp() {\n TimeStampingApiService.getLatestTimeStamps(1).then(function(response) {\n if (response.data.length !== 0) {\n vm.latestTimeStamp = response.data[0];\n }\n }, function(error) {\n console.log(error);\n });\n }\n\n function queueRefreshSession() {\n if (vm.loginDialog) return;\n\n AuthService.getTokenExpired().then(function(response) {\n var expireDate = response.data.expireDate;\n\n if(expireDate !== null) {\n var timeUntillExpire = Date.parse(expireDate)-Date.parse(new Date());\n console.log('Token will expire in: ' + timeUntillExpire);\n // Displays Dialog 30 minutes before token expires\n var timeUntillShowDialog = timeUntillExpire-(1000 * 60 * 30); //30 minutes\n setTimeout(function() {\n showRefreshSessionDialog(expireDate);\n }, timeUntillShowDialog);\n }\n });\n }\n\n function showRefreshSessionDialog(tokenExpireDate) {\n vm.loginDialog = true;\n TimedOutLoginDialogService.showDialog(vm.currentUser.username, tokenExpireDate).then(function(sessionRefreshed) {\n if(sessionRefreshed) {\n vm.loginDialog = false;\n queueRefreshSession();\n }\n else {\n vm.logOut();\n $state.reload();\n }\n }, function(error) {\n ToasterService.showError(error.data.message);\n }).finally(function() {\n });\n }\n}\n\nangular\n .module('app.main', [\n 'main.base',\n 'main.contacts',\n 'main.product',\n 'main.order',\n 'main.customerorder',\n 'main.resellerorder',\n 'main.customerinvoice',\n 'main.stock',\n 'main.analysis',\n 'main.stocklogistics',\n 'main.budget',\n 'main.timestamp',\n 'main.economy',\n 'main.sales',\n 'main.support',\n 'timedOutLoginDialog.timedOutLoginDialog',\n 'main.discountManagement'\n ])\n .config(stateConfig)\n .controller('MainController', MainController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order', {\n url: '/order',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/order/order.tpl.html',\n controller: 'MainOrderController as vm'\n });\n}\n\n// @ngInject\nfunction MainOrderController() {\n var vm = this;\n}\n\nangular\n .module('main.order', [\n 'orderarticles.api',\n 'orders.api',\n 'orders.api2',\n 'reports.api2',\n 'order.ordersearch',\n 'order.orderdelivery',\n 'order.purchaseorder',\n 'order.purchaseordersearch',\n 'order.service',\n 'order.purchaseorderanalysis',\n 'purchaseorderanalysis.api',\n 'order.transitReports',\n 'order.intrastatReports',\n 'order.deliveryPlanning',\n 'order.deliveryPlanning.editDeliveryPlanningDialog',\n 'order.orderRowCommentDialog'\n ])\n .config(stateConfig)\n .controller('MainOrderController', MainOrderController);\n","// @ngInject\nfunction OrderRowCommentDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(orderArticle) {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: true,\n controller: 'OrderRowCommentDialogController as vm',\n templateUrl: 'main/order/orderDialogs/orderRowCommentDialog/orderRowCommentDialog.tpl.html',\n size: 'xs'\n };\n\n modalDefaults.resolve = {\n orderArticle: function () {\n return orderArticle;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction OrderRowCommentDialogController($uibModalInstance, orderArticle) {\n var vm = this;\n\n vm.orderArticle = orderArticle;\n vm.closeModal = closeModal;\n vm.comment = orderArticle.orderRows[0].comment;\n\n function closeModal(keepChanges) {\n if(keepChanges){\n _.forEach(orderArticle.orderRows, function(row){\n row.comment = vm.comment;\n });\n\n $uibModalInstance.close(orderArticle.orderRows);\n }\n else\n $uibModalInstance.close(false);\n }\n}\n\nangular\n .module('order.orderRowCommentDialog', [])\n .service('OrderRowCommentDialogService', OrderRowCommentDialogService)\n .controller('OrderRowCommentDialogController', OrderRowCommentDialogController);\n","// @ngInject\nfunction OrderService() {\n\n\n return {\n canShipOrder: canShipOrder,\n canDeleteOrder: canDeleteOrder,\n canCopyOrder: canCopyOrder,\n canEditOrder: canEditOrder,\n canDeliverOrder: canDeliverOrder,\n canApproveOrder : canApproveOrder,\n isDeliveryPlanningEnabled: isDeliveryPlanningEnabled,\n canPartDeliverOrder: canPartDeliverOrder,\n updateCurrencyOnOrderRows: updateCurrencyOnOrderRows,\n hasQuantity: hasQuantity,\n isInternalOrder: isInternalOrder,\n createOrderRowsFromArticleVariants: createOrderRowsFromArticleVariants,\n canConfirmDeliveryPlan: canConfirmDeliveryPlan,\n canUndoConfirmDeliveryPlan: canUndoConfirmDeliveryPlan,\n canChangePredictedDate: canChangePredictedDate,\n isLeadTimeDeliveryPlan: isLeadTimeDeliveryPlan,\n };\n\n function hasLink(links, rel) {\n var link = _.find(links, function (o) {\n return o.rel === rel;\n });\n\n if (link) {\n return true;\n }\n\n return false;\n }\n function isLeadTimeDeliveryPlan(links) {\n return hasLink(links, 'is_lead_time');\n }\n function canConfirmDeliveryPlan(links) {\n return hasLink(links, 'confirmed');\n }\n function canUndoConfirmDeliveryPlan(links) {\n return hasLink(links, 'undo_confirmed');\n }\n function canChangePredictedDate(links) {\n return hasLink(links, 'predicted_changeable');\n }\n\n function canDeliverOrder(links) {\n return hasLink(links, 'deliver');\n }\n\n function isDeliveryPlanningEnabled(links) {\n return hasLink(links, 'deliveryplan');\n }\n\n function canEditOrder(links) {\n return hasLink(links, 'update');\n }\n\n function canDeleteOrder(links) {\n return hasLink(links, 'delete');\n }\n\n function canApproveOrder(links) {\n return hasLink(links, 'approve');\n }\n\n function canCopyOrder(links) {\n return hasLink(links, 'copy');\n }\n\n function canPartDeliverOrder(links) {\n return hasLink(links, 'part_deliver');\n }\n\n function canShipOrder(links) {\n return hasLink(links, 'ship');\n }\n\n function isInternalOrder(order) {\n return order.orderType.orderSystemType === 'internal';\n }\n\n function updateCurrencyOnOrderRows(orderArticles, currency) {\n _.forEach(orderArticles, function (orderArticle) {\n _.forEach(orderArticle.orderRows, function (row) {\n row.purchaseCost = (row.originalPurchasePrice * (1 - row.discountPercent / 100)) * (1 + (row.standardCostAddPercent / 100)) * currency;\n });\n });\n }\n\n function hasQuantity(orderArticles) {\n var totalQuantity = 0;\n _.forEach(orderArticles, function (orderArticle) {\n _.forEach(orderArticle.orderRows, function (row) {\n totalQuantity += row.quantity;\n });\n });\n\n return (totalQuantity > 0);\n }\n\n function createOrderRowsFromArticleVariants(order, articleVariants, orderArticle, stocks) {\n var orderRows = [];\n\n var currencyRate = order.currencyRate;\n\n if (order.company && order.company.id) {\n var companyId = order.company.id;\n }\n\n var articleVariantIds = [];\n _.forEach(articleVariants, function(av) { articleVariantIds.push(av.id); });\n var locationIds = [];\n if (order.fromLocation) {\n locationIds.push(order.fromLocation.id);\n }\n\n var orderRowWithComment = _.find(orderArticle.orderRows, function(row){\n return row.comment !== \"\" || row.comment !== undefined || row.comment !== null;\n })\n var orderRowComment = orderRowWithComment ? orderRowWithComment.comment : undefined;\n\n _.forEach(articleVariants, function(articleVariant) {\n var supplierPrice;\n\n var orderRow = {\n id: 0,\n articleVariant: articleVariant,\n destination: (order.orderType.orderSystemType.toLowerCase() !== 'return') ? order.destination : order.fromLocation,\n quantity: 0,\n deliveryRows: [],\n summarizedDeliveredQuantity: 0,\n orderStatus: { orderSystemStatus: 'Created' },\n status: 'Created',\n comment: orderRowComment,\n };\n\n if (articleVariant.supplierPrices != null && articleVariant.supplierPrices.length > 0) {\n supplierPrice = _.find(articleVariant.supplierPrices, function(sp) { return sp.companyId === companyId; });\n }\n\n if (supplierPrice === undefined) {\n // we only have the price in SEK, convert it back to the order currency.\n //orderRow.purchaseCost = articleVariant.purchaseCost;\n orderRow.discountPercent = 0;\n orderRow.standardCostAddPercent = 0;\n orderRow.effectivePurchasePrice = articleVariant.purchaseCost / ((100 + orderRow.standardCostAddPercent) / 100);\n orderRow.originalPurchasePrice = orderRow.effectivePurchasePrice / ((100 - orderRow.discountPercent) / 100);\n orderRow.shippingCost = 0;\n orderRow.customsPercent = 0;\n orderRow.otherCosts = 0;\n // calculate the total row sum..\n orderRow.purchaseCost = getTotalRowSum(orderRow, currencyRate);\n } else if (supplierPrice.purchasePrice === 0) {\n // we only have the price in SEK, convert it back to the order currency.\n //orderRow.purchaseCost = articleVariant.purchaseCost;\n orderRow.discountPercent = 0;\n orderRow.standardCostAddPercent = 0;\n orderRow.effectivePurchasePrice = articleVariant.purchaseCost / ((100 + orderRow.standardCostAddPercent) / 100);\n orderRow.originalPurchasePrice = orderRow.effectivePurchasePrice / ((100 - orderRow.discountPercent) / 100);\n orderRow.shippingCost = 0;\n orderRow.customsPercent = 0;\n orderRow.otherCosts = 0;\n // calculate the total row sum..\n orderRow.purchaseCost = getTotalRowSum(orderRow, currencyRate);\n } else {\n // convert forwards to SEK\n orderRow.originalPurchasePrice = supplierPrice.purchasePrice;\n orderRow.standardCostAddPercent = supplierPrice.standardCostAddPercent;\n orderRow.discountPercent = supplierPrice.discountPercent;\n orderRow.effectivePurchasePrice = orderRow.originalPurchasePrice * ((100 - orderRow.discountPercent) / 100);\n // orderRow.purchaseCost = (orderRow.effectivePurchasePrice + ((orderRow.standardCostAddPercent) / 100) * orderRow.effectivePurchasePrice) * currencyRate;\n orderRow.shippingCost = supplierPrice.shippingCost;\n orderRow.customsPercent = supplierPrice.customsPercent;\n orderRow.otherCosts = supplierPrice.otherCosts;\n orderRow.purchaseCost = getTotalRowSum(orderRow, currencyRate);\n }\n\n if (order.destination && order.destination.resellerPriceList && order.destination.resellerPriceList.priceListItems) {\n //Prices on the reseller price list trumps all other prices\n var resellerPriceListCurrencyRate = order.destination.resellerPriceList.currencyRate;\n var resellerPriceListItem = _.find(order.destination.resellerPriceList.priceListItems, function(pli) {\n return pli.articleVariantId === articleVariant.id;\n });\n if (resellerPriceListItem) {\n orderRow.purchaseCost = resellerPriceListItem.price;\n orderRow.discountPercent = resellerPriceListItem.discountPercent;\n orderRow.standardCostAddPercent = resellerPriceListItem.standardCostAddPercent;\n orderRow.effectivePurchasePrice = (resellerPriceListItem.price) / ((100 + orderRow.standardCostAddPercent) / 100);\n orderRow.originalPurchasePrice = orderRow.effectivePurchasePrice / ((100 - orderRow.discountPercent) / 100);\n orderRow.shippingCost = resellerPriceListItem.shippingCost;\n orderRow.customsPercent = resellerPriceListItem.customsPercent;\n orderRow.otherCosts = resellerPriceListItem.otherCosts;\n }\n }\n\n // Stock purchase cost trumps even reseller prices for internal orders\n if (order.orderType.orderSystemType.toLowerCase() === 'internal') {\n var stock = _.find(stocks, function(st) { return st.articleVariant.id === articleVariant.id && st.location.id === order.fromLocation.id; });\n if (stock !== undefined) {\n orderRow.purchaseCost = stock.purchaseCost;\n orderRow.discountPercent = 0;\n orderRow.standardCostAddPercent = 0;\n orderRow.effectivePurchasePrice = stock.purchaseCost;\n orderRow.originalPurchasePrice = stock.purchaseCost;\n orderRow.shippingCost = 0;\n orderRow.customsPercent = 0;\n orderRow.otherCosts = 0;\n }\n }\n\n orderRows.push(orderRow);\n });\n\n return orderRows;\n\n function calculateEffectivePurchasePrice(originalPurchasePrice, discountPercent) {\n var discountAmount = (originalPurchasePrice * discountPercent / 100);\n return originalPurchasePrice - discountAmount;\n }\n \n function getTotalRowSum(rowItem, currencyRate) {\n var pp = calculateEffectivePurchasePrice(rowItem.originalPurchasePrice, rowItem.discountPercent);\n var ppCurrencyConverted = pp * currencyRate;\n var customsAmount = (ppCurrencyConverted + rowItem.shippingCost) * (rowItem.customsPercent / 100);\n var standardCostAddAmount = (ppCurrencyConverted + rowItem.shippingCost + customsAmount + rowItem.otherCosts) * (rowItem.standardCostAddPercent / 100);\n \n var result = ppCurrencyConverted + rowItem.shippingCost + customsAmount + rowItem.otherCosts + standardCostAddAmount;\n \n return result;\n }\n }\n}\n\nangular\n .module('order.service', [])\n .factory('OrderService', OrderService);\n","// @ngInject\nfunction OrderArticlesApiService($q, DS, ResourcesService) {\n\n return {\n getById: getById\n };\n\n function getById(id) {\n var deferred = $q.defer();\n\n DS.find('orderarticle', id, { bypassCache: true }).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('orderarticles.api', [])\n .factory('OrderArticlesApiService', OrderArticlesApiService);\n","angular.module('components.caBarcodeScanningInput', [])\n .component('caBarcodeScanningInput', {\n templateUrl: 'main/order/orderdelivery/components/barcodescanninginput.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n onOrderArticlesRetrieved: '&',\n order: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($translate, OrdersApiService, ToasterService, loadSpinnerService, BarcodeService, confirmationDialogService) {\n var vm = this;\n\n vm.scannedBarcodes = '';\n\n vm.getArticlesAndQuantites = getArticlesAndQuantites;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n function onInit() {\n var fileInputDomElement = $(\"#xlf\")[0];\n\n fileInputDomElement.addEventListener('change', handleFile, false);\n function handleFile(e) {\n var files = e.target.files;\n var i, f;\n for (i = 0, f = files[i]; i !== files.length; ++i) {\n var reader = new FileReader();\n\n reader.onload = onLoadFunction;\n loadSpinnerService.start('mainSpinner');\n reader.readAsArrayBuffer(f);\n }\n\n function onLoadFunction(e) {\n try {\n var data = \"\";\n var splitData = [];\n var bytes = new Uint8Array(e.target.result);\n var length = bytes.byteLength;\n for (var i = 0; i < length; i++) {\n data += String.fromCharCode(bytes[i]);\n }\n // // linebreak for Windows\n // var dos = data.split('\\r\\n');\n // // linebreak for Mac OS \n // var unix = data.split('\\n');\n // var unixNumOfItems = getNumberOfItemSets(unix);\n // var dosNumOfItems = getNumberOfItemSets(dos);\n\n // if (unix.length > 1) {\n // splitData = unix;\n // }\n // if (dos.length > 1) {\n // splitData = dos;\n // }\n\n var splitData = data.split(/\\r?\\n|\\r/g)\n _.forEach(splitData, function (textRow) {\n var splitRow = textRow.split(',');\n if (splitRow[0].toLowerCase() === 'inventering' || splitRow[0].toLowerCase() === 'internorder') {\n for (var i = 0; i < splitRow[2]; i++) {\n vm.scannedBarcodes += splitRow[1] + \"\\n\";\n }\n }\n });\n } catch (error) {\n console.log(error);\n } finally {\n loadSpinnerService.stop('mainSpinner');\n }\n }\n }\n }\n function onChanges() {\n\n }\n function onDestroy() {\n\n }\n function getNumberOfItemSets(splitData) {\n\n var lenInventory = splitData[0].toLowerCase().split('inventering').length;\n var lenInternOrder = splitData[0].toLowerCase.splitData(\"internorder\").length;\n if (lenInventory > 0) {\n return splitData.length;\n }\n else if (lenInternOrder > 0) {\n return splitData.length;\n }\n return 0;\n\n }\n function getArticlesAndQuantites() {\n var barcodesArray = [];\n\n vm.scannedBarcodes = BarcodeService.formatBarcodesString(vm.scannedBarcodes);\n\n _.forEach(vm.scannedBarcodes.split('\\n'), function (barcode) {\n barcodesArray.push(BarcodeService.cleanBarcode(barcode));\n });\n\n var companyId = (vm.order.company !== undefined && \n vm.order.orderType.orderSystemType !== 'internal') ? vm.order.company.id : 0;\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getOrderArticlesForBarcodes(barcodesArray, companyId, vm.order.currency.id, vm.order.currencyRate).then(function (response) {\n //If backend returns any unfound barcodes present them to the user to decide how to proceed\n if (response.notFoundBarcodes && response.notFoundBarcodes.length > 0) {\n var message = $translate.instant('order.scanNotAllBarcodesCouldBeAdded') + '.<br><br>' +\n '<table class=\"table\" style=\"width:100%\">' +\n '<thead><tr><th>' + $translate.instant('article.barcode') + '</th><th>' + $translate.instant('order.scanFailureReason') + '</th></tr>' +\n '<tbody>';\n _.forEach(response.notFoundBarcodes, function (nfb) {\n if (nfb.reasonCode === 'order.scanErrorBarcodeOnAnotherSupplier') {\n message += '<tr><td>' + nfb.barcode + '</td><td>' + $translate.instant(nfb.reasonCode) + ': ' + nfb.supplierName + '</td></tr>';\n } else {\n message += '<tr><td>' + nfb.barcode + '</td><td>' + $translate.instant(nfb.reasonCode) + '</td></tr>';\n }\n });\n message += '</tbody></table><br><br>' +\n $translate.instant('order.scanAreYouSureYouWantToContinue') + '? ' +\n response.articles.length + ' ' + $translate.instant('common.of') + ' ' +\n (response.articles.length + response.notFoundBarcodes.length) + ' ' +\n $translate.instant('order.scanWillBeAdded') + '.';\n\n confirmationDialogService.showDialog(message, undefined, 'lg').then(function (result) {\n if (result === true) {\n handleRetrievedOrderArticles(response.articles);\n }\n });\n } else {\n handleRetrievedOrderArticles(response.articles);\n }\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function handleRetrievedOrderArticles(articles) {\n if (vm.order.orderType.orderSystemType.toLowerCase() === 'internal' && vm.order.fromLocation && vm.order.fromLocation.id) {\n var orderRows = [];\n var articleVariantIds = [];\n var locationIds = [vm.order.fromLocation.id];\n _.forEach(articles, function (orderArticle) {\n _.forEach(orderArticle.orderRows, function (orderRow) {\n orderRows.push(orderRow);\n articleVariantIds.push(orderRow.articleVariant.id);\n });\n });\n OrdersApiService.getStocksForArticleVariants(articleVariantIds, locationIds).then(function (stocks) {\n _.forEach(stocks.data, function (stock) {\n var orderRow = _.find(orderRows, function (orderRow) {\n return orderRow.articleVariant.id === stock.articleVariant.id;\n });\n\n if (orderRow) {\n orderRow.originalPurchasePrice = stock.purchaseCost;\n orderRow.effectivePurchasePrice = stock.purchaseCost;\n orderRow.purchaseCost = stock.purchaseCost;\n }\n\n });\n vm.onOrderArticlesRetrieved({ orderArticles: articles });\n\n }, function (error) { ToasterService.showError(error.message); });\n } else {\n vm.onOrderArticlesRetrieved({ orderArticles: articles });\n }\n\n vm.scannedBarcodes = '';\n }\n}\n","angular.module('components.caOrderArticles', [])\n .component('caOrderArticles', {\n templateUrl: 'main/order/orderdelivery/components/orderarticles.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderChangeCount: '=',\n isModifying: '<',\n order: '=',\n disabled: '<',\n onArticleSelected: '&',\n links: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $rootScope, $window, OrderService, loadSpinnerService, OrdersApiService, Rms2OrdersApiService, OrderRowCommentDialogService, ToasterService, $translate) {\n var vm = this;\n\n var grid = {};\n var lastDeliveredOrderArticle = {};\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.filteredOrderArticles = [];\n vm.hiddenDeliveredRows = false;\n vm.haveOrderArticlePurchaseCostClaim = havePurchaseCostClaim();\n vm.displayPrices = true;\n vm.ongoingRequest = false;\n vm.sortContentBy = undefined;\n vm.sortContentReverse = undefined;\n\n vm.restCurrentOrderArticle = false;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.captureGrid = captureGrid;\n vm.hideDeliveredRows = hideDeliveredRows;\n vm.isRowDelivered = isRowDelivered;\n vm.updatedQuantity = updatedQuantity;\n vm.updatedQuantityToDeliver = updatedQuantityToDeliver;\n vm.canDeliverIn = canDeliverIn;\n vm.anyNonVariantArticles = anyNonVariantArticles;\n vm.getCurrentDeliveryQuantity = getCurrentDeliveryQuantity;\n vm.getTotalQuantityLeftToDeliver = getTotalQuantityLeftToDeliver;\n vm.deliverNonVariantArticles = deliverNonVariantArticles;\n vm.isSingleVariantArticle = isSingleVariantArticle;\n vm.isMultipleVariantArticle = isMultipleVariantArticle;\n vm.deliver = deliver;\n vm.isDelivered = isDelivered;\n vm.hasOnlyOneOrderRow = hasOnlyOneOrderRow;\n vm.isRowCreated = isRowCreated;\n vm.setRestFlag = setRestFlag;\n vm.isAllowedToChangeQuantity = isAllowedToChangeQuantity;\n\n vm.shouldBeTreatedAsNonVariant = shouldBeTreatedAsNonVariant;\n vm.shouldBeTreatedAsVariant = shouldBeTreatedAsVariant;\n\n vm.openOrderRowCommentDialog = openOrderRowCommentDialog;\n\n function isAllowedToChangeQuantity(){\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n return !hasOrderId || vm.order.systemStatus === \"created\"\n }\n\n function hasOnlyOneOrderRow(orderArticle) {\n return orderArticle.orderRows.length === 1;\n }\n\n function shouldBeTreatedAsNonVariant(orderArticle) {\n return vm.isSingleVariantArticle(orderArticle.article) || (!vm.isModifying && vm.hasOnlyOneOrderRow(orderArticle))\n }\n\n function shouldBeTreatedAsVariant(orderArticle) {\n return !shouldBeTreatedAsNonVariant(orderArticle);\n }\n\n function onInit() {\n vm.filteredOrderArticles = vm.order.orderArticles;\n\n if (vm.order.orderArticles.length === 1 && vm.order.orderArticles[0].article && vm.shouldBeTreatedAsVariant(vm.order.orderArticles[0])) {\n viewOrderArticle(vm.order.orderArticles[0].article);\n }\n\n $scope.$watch(function() { return vm.orderChangeCount; }, function() {\n recalculateAggregatedData();\n hideDeliveredRows();\n });\n\n setInitialPriceDisplayChoice();\n setInitialQuantitiesToDeliver();\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function isDelivered(orderArticle) {\n return _.every(orderArticle.orderRows, function (orderRow) {\n return orderRow.systemStatus === 'delivered';\n });\n }\n\n function setRestFlag(orderArticle) {\n if ((orderArticle.orderRows[0].quantityToDeliver + orderArticle.summarizedDeliveredQuantity) >= orderArticle.orderRows[0].quantity) {\n orderArticle.restOrderArticle = false;\n }\n }\n\n function setInitialQuantitiesToDeliver() {\n _.forEach(vm.order.orderArticles, function(orderArticle) {\n setNextQuantityToDeliver(orderArticle);\n });\n }\n\n function setNextQuantityToDeliver(orderArticle) {\n if (isMultipleVariantArticle(orderArticle)) {\n return true;\n }\n orderArticle.restOrderArticle = false;\n orderArticle.deliveredDate = Date.now();\n _.forEach(orderArticle.orderRows, function(orderRow) {\n var deliveredQuantity = _.sumBy(orderRow.deliveryRows, function(deliveryRow) {\n if (deliveryRow.systemStatus === \"delivered\" && deliveryRow.deliveryRowType === \"deliveryIn\") {\n return deliveryRow.quantity;\n }\n });\n if (deliveredQuantity === undefined) {\n deliveredQuantity = 0;\n }\n orderRow.quantityToDeliver = Math.max(orderRow.quantity - deliveredQuantity, 0);\n });\n }\n\n function getCurrentDeliveryQuantity() {\n var qty = _.sumBy(vm.order.orderArticles, function(orderArticle) {\n return _.sumBy(orderArticle.orderRows, function(orderRow) {\n return orderRow.quantityToDeliver;\n });\n });\n return qty;\n }\n\n function getTotalQuantityLeftToDeliver() {\n var sum = 0;\n _.forEach(vm.order.orderArticles, function (oa) {\n _.forEach(oa.orderRows, function (r) {\n sum += r.quantity;\n });\n })\n return sum;\n }\n\n function deliver(orderArticle)\n {\n if (vm.ongoingRequest) {\n console.log(\"vm.ongoingRequest: \" + vm.ongoingRequest);\n return;\n }\n\n vm.ongoingRequest = true;\n lastDeliveredOrderArticle = orderArticle;\n loadSpinnerService.start('mainSpinner');\n\n var request = {\n orderId: vm.order.id,\n deliveringUserId: $rootScope.currentUser.id,\n lineItems: []\n }\n\n request.lineItems.push({\n quantity: orderArticle.orderRows[0].quantityToDeliver,\n lineNumber: orderArticle.orderRows[0].orderLineNumber,\n date: parseDate(orderArticle.deliveredDate),\n restDelivery: orderArticle.restOrderArticle\n });\n\n var orderSystemType = vm.order.orderType.orderSystemType;\n \n switch(orderSystemType) {\n case 'store':\n deliverStoreOrder(request);\n break;\n case 'automatic':\n deliverAutoOrder(request);\n break;\n case 'internal':\n deliverInternalOrder(request);\n break;\n case 'automaticInternal':\n deliverAutoInternalOrder(request);\n break;\n case 'return':\n deliverReturnOrder(request);\n break;\n default:\n ToasterService.showError(\"Order type not recognized\")\n throw new Error(\"Order type not recognized\", orderSystemType);\n }\n\n function deliverStoreOrder(request) {\n Rms2OrdersApiService.deliverStoreOrder(request).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"common.done\"));\n reloadOrder();\n },function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deliverAutoOrder(request) {\n Rms2OrdersApiService.deliverAutoOrder(request).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"common.done\"));\n reloadOrder();\n },function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deliverInternalOrder(request) {\n Rms2OrdersApiService.deliverInternalOrder(request).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"common.done\"));\n reloadOrder();\n },function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deliverAutoInternalOrder(request) {\n Rms2OrdersApiService.deliverAutoInternalOrder(request).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"common.done\"));\n reloadOrder();\n },function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deliverReturnOrder(request) {\n Rms2OrdersApiService.deliverReturnOrder(request).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"common.done\"));\n reloadOrder();\n },function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function reloadOrder() {\n var orderId = vm.order.id;\n\n OrdersApiService.getById(orderId).then(function(response) {\n\n // Keep previous delivery input\n _.forEach(vm.order.orderArticles, function (oldOrderArticle) {\n var newOrderArticle = _.find(response.data.order.orderArticles, function(newOrderArticle) {\n return newOrderArticle.article.id === oldOrderArticle.article.id;\n });\n newOrderArticle.orderRows[0].quantityToDeliver = oldOrderArticle.orderRows[0].quantityToDeliver;\n });\n\n vm.order = response.data.order;\n vm.order.deliveredDate = new Date();\n vm.order.plannedDeliveryDate = parseDate(vm.order.plannedDeliveryDate);\n var orderArticle = _.find(vm.order.orderArticles, function(orderArticle) { return orderArticle.article.id === lastDeliveredOrderArticle.article.id });\n setNextQuantityToDeliver(orderArticle);\n\n vm.orderChangeCount += 1;\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n\n function deliverNonVariantArticles() {\n if (vm.ongoingRequest) {\n console.log(\"vm.ongoingRequest: \" + vm.ongoingRequest);\n return;\n }\n vm.ongoingRequest = true;\n\n var orderCopy = angular.copy(vm.order);\n\n var nonVariantOrderArticles = _.filter(orderCopy.orderArticles, function(orderArticle) {\n // return !orderArticle.article.isVariant;\n return isSingleVariantArticle(orderArticle.article)\n });\n\n _.forEach(nonVariantOrderArticles, function(orderArticle) {\n orderArticle.shouldDeliverThisArticle = true;\n orderArticle.orderRows[0].quantity = orderArticle.orderRows[0].quantityToDeliver;\n });\n\n zeroAllNonDeliveryQuantities(orderCopy);\n stripUnnecessaryOrderData(orderCopy);\n\n deliver();\n\n function deliver() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.deliverPartially(orderCopy).then(function(response) {\n vm.order = response.data;\n vm.order.deliveredDate = new Date();\n vm.order.plannedDeliveryDate = parseDate(vm.order.plannedDeliveryDate);\n setInitialQuantitiesToDeliver();\n\n vm.orderChangeCount += 1;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function parseDate(input) {\n\t\tif (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n\t\t} else {\n\t\t\treturn new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n\t\t}\n\t}\n\n function zeroAllNonDeliveryQuantities(order) {\n _.forEach(order.orderArticles, function(orderArticle) {\n if (!orderArticle.shouldDeliverThisArticle) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderRow.quantity = 0;\n });\n }\n });\n }\n\n function stripUnnecessaryOrderData(order) {\n order.orderArticles = _.filter(order.orderArticles, function(oa) { return oa.shouldDeliverThisArticle && oa.shouldDeliverThisArticle === true; });\n _.forEach(order.orderArticles, function(orderArticle) {\n orderArticle.article = undefined;\n _.forEach(orderArticle.orderRows, function (ordRow) {\n _.forEach(ordRow.deliveryRows, function(delRow) {\n if (delRow.location) { delRow.location = { id: delRow.location.id }; }\n if (delRow.deliveringUser) { delRow.deliveringUser = { id: delRow.deliveringUser.id }; }\n if (delRow.articleVariant) { delRow.articleVariant = { id: delRow.articleVariant.id }; }\n });\n });\n });\n if (order.purchaser) { order.purchaser = { id: order.purchaser.id }; }\n if (order.destination) { order.destination = { id: order.destination.id }; }\n if (order.company) { order.company = { id: order.company.id }; }\n if (order.user) { order.user = { id: order.user.id }; }\n if (order.collection) { order.collection = { id: order.collection.id }; }\n if (order.fromLocation) { order.fromLocation = { id: order.fromLocation.id }; }\n }\n\n function setInitialPriceDisplayChoice() {\n var windowWidthLimit = 1485;\n var windowTooNarrow = $window.innerWidth < windowWidthLimit;\n var isDelivering = !vm.isModifying;\n\n if (vm.isModifying) {\n vm.displayPrices = true;\n } else if (isDelivering && windowTooNarrow) {\n vm.displayPrices = false;\n }\n }\n\n function canDeliverIn() {\n return OrderService.canPartDeliverOrder(vm.links);\n }\n\n function isSingleVariantArticle(article) {\n return !article.isVariant || (article.articleVariants !== undefined && article.articleVariants.length < 2);\n }\n\n function isMultipleVariantArticle(article) {\n return !isSingleVariantArticle(article);\n }\n\n function anyNonVariantArticles() {\n // var value = vm.order.orderArticles.some(function(e) { return isSingleVariantArticle(e.article); });\n var value = vm.order.orderArticles.some(function(orderArticle) { return shouldBeTreatedAsNonVariant(orderArticle); });\n return value;\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n function captureGrid(s) {\n grid = s;\n }\n\n function viewOrderArticle(article, lowestStatusAmongRows) {\n if(isRowDelivered(lowestStatusAmongRows)){\n return\n }\n\n vm.onArticleSelected({article: article});\n }\n\n function isRowDelivered(lowestStatusAmongRows){\n if(lowestStatusAmongRows !== \"delivered\"){\n return false\n }\n\n return true\n }\n\n function isRowCreated(lowestStatusAmongRows) {\n if (lowestStatusAmongRows === \"created\") {\n return true;\n }\n\n return false;\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n\n function hideDeliveredRows() {\n if (vm.hiddenDeliveredRows) {\n vm.filteredOrderArticles = _.filter(vm.order.orderArticles, function(art) {\n return art.lowestSystemStatusAmongRows !== 'delivered';\n });\n } else {\n vm.filteredOrderArticles = vm.order.orderArticles;\n }\n }\n\n function recalculateAggregatedData() {\n _.forEach(vm.order.orderArticles, function(orderArticle) {\n orderArticle.summarizedPurchaseCost = 0;\n orderArticle.summarizedSalesPrice = 0;\n orderArticle.summarizedQuantity = 0;\n orderArticle.summarizedDeliveredQuantity = 0;\n\n var zeroQuantityAverageOrderRowPurchaseCost = 0;\n var zeroQuantityAverageOrderRowSalesPrice = 0;\n var nonZeroQuantityOrderRowPurchaseCost = 0;\n var nonZeroQuantityOrderRowSalesPrice = 0;\n var nonZeroQuantityOrderRowsCount = 0;\n\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderArticle.summarizedPurchaseCost += orderRow.quantity * orderRow.purchaseCost;\n if(orderRow.quantity > 0){\n nonZeroQuantityOrderRowPurchaseCost += orderRow.purchaseCost;\n nonZeroQuantityOrderRowSalesPrice += orderRow.articleVariant.salesPrice;\n nonZeroQuantityOrderRowsCount++;\n }\n orderArticle.summarizedSalesPrice += orderRow.articleVariant.salesPrice * orderRow.quantity;\n orderArticle.summarizedQuantity += orderRow.quantity;\n\n zeroQuantityAverageOrderRowPurchaseCost += orderRow.purchaseCost;\n zeroQuantityAverageOrderRowSalesPrice += orderRow.articleVariant.salesPrice;\n\n _.forEach(orderRow.deliveryRows, function(deliveryRow) {\n if (deliveryRow.systemStatus === 'delivered' && deliveryRow.deliveryRowType === 'deliveryIn') {\n orderArticle.summarizedDeliveredQuantity += deliveryRow.quantity;\n } else if (vm.order.orderType.orderSystemType == 'return' && deliveryRow.deliveryRowType === 'deliveryOut' && deliveryRow.systemStatus === 'delivered') {\n orderArticle.summarizedDeliveredQuantity += -deliveryRow.quantity;\n }\n });\n });\n\n orderArticle.averageOrderRowPurchaseCost = nonZeroQuantityOrderRowPurchaseCost / nonZeroQuantityOrderRowsCount;\n\n if (_.isNaN(orderArticle.averageOrderRowPurchaseCost)) {\n orderArticle.averageOrderRowPurchaseCost = zeroQuantityAverageOrderRowPurchaseCost / orderArticle.orderRows.length;\n if (_.isNaN(orderArticle.averageOrderRowPurchaseCost)) {\n orderArticle.averageOrderRowPurchaseCost = \"\";\n }\n }\n\n orderArticle.averageArticleVariantSalesPrice = nonZeroQuantityOrderRowSalesPrice / nonZeroQuantityOrderRowsCount;\n\n if(_.isNaN(orderArticle.averageArticleVariantSalesPrice)){\n orderArticle.averageArticleVariantSalesPrice = zeroQuantityAverageOrderRowSalesPrice / orderArticle.orderRows.length;\n if (_.isNaN(orderArticle.averageArticleVariantSalesPrice)) {\n orderArticle.averageArticleVariantSalesPrice = \"\";\n }\n }\n\n orderArticle.summarizedDeliveredCost = absolute(orderArticle.averageOrderRowPurchaseCost * orderArticle.summarizedDeliveredQuantity);\n if(shouldBeTreatedAsNonVariant(orderArticle)){\n orderArticle.nonVariantVariantDetail1Name = orderArticle.orderRows[0].articleVariant.variantDetail1.variantDetailName;\n orderArticle.nonVariantVariantDetail2Name = orderArticle.orderRows[0].articleVariant.variantDetail2.variantDetailName;\n orderArticle.nonVariantQuantityToDeliver = orderArticle.orderRows[0].quantityToDeliver;\n }\n else{\n orderArticle.nonVariantVariantDetail1Name = \"\";\n orderArticle.nonVariantVariantDetail2Name = \"\";\n orderArticle.nonVariantQuantityToDeliver = 0;\n }\n });\n }\n\n //Transform from string to Date, and make sure date has correct timezone and no time information\n\tfunction parseDate(input) {\n\t\tif (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n\t\t} else {\n\t\t\treturn new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n\t\t}\n\t}\n\n function updatedQuantity() {\n vm.orderChangeCount += 1;\n \n _.forEach(vm.filteredOrderArticles, function(orderArticle){\n if(shouldBeTreatedAsNonVariant(orderArticle)){\n orderArticle.orderRows[0].quantity = orderArticle.orderRows[0].quantity < 0 ? 0 : orderArticle.orderRows[0].quantity;\n }\n });\n }\n\n function updatedQuantityToDeliver(){\n vm.orderChangeCount += 1;\n \n _.forEach(vm.filteredOrderArticles, function(orderArticle){\n if(shouldBeTreatedAsNonVariant(orderArticle)){\n orderArticle.orderRows[0].quantityToDeliver = orderArticle.orderRows[0].quantityToDeliver < 0 ? 0 : orderArticle.orderRows[0].quantityToDeliver;\n }\n });\n }\n\n function refreshGrid() {\n if (grid.invalidate) {\n grid.invalidate();\n }\n if (grid.collectionView) {\n grid.collectionView.refresh();\n }\n }\n\n function openOrderRowCommentDialog(orderArticle) {\n console.log(vm.isModifying);\n OrderRowCommentDialogService.showDialog(orderArticle)\n .then(function (result){\n if(result){\n vm.orderChangeCount += 1;\n orderArticle.orderRows = result;\n\n if(!vm.isModifying){\n loadSpinnerService.start('mainSpinner');\n Rms2OrdersApiService.updateCommentOnOrderRows(orderArticle.orderRows).then(function(response) {\n ToasterService.showSuccess();\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n });\n }\n}\n","angular.module('components.caOrderMetaData', [])\n .component('caOrderMetaData', {\n templateUrl: 'main/order/orderdelivery/components/ordermetadata.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n disabled: '<',\n isHidden: '<',\n isCopying: '<',\n orderChangeCount: '=',\n order: '=',\n deliveryPlanningTemplate: '=',\n initOrderType: '<',\n initCompany: '<',\n setCollectionAutomatically: '<',\n setCurrencyRateAutomatically: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, ToasterService, OrdersApiService, OrderService, Rms2OrdersApiService, EditDeliveryPlanningDialogService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n var errorColor = '#ff0000';\n var noErrorColor = '#ffffff';\n vm.enableDeliveryPlanning = false;\n vm.orderTypes = [];\n vm.companies = [];\n vm.allLocations = [];\n vm.allUserLocations = [];\n vm.locations = [];\n vm.destinations = [];\n vm.collections = [];\n vm.deliveryTerms = [];\n vm.users = [];\n vm.isCreatedOrNew = isCreatedOrNew()\n vm.orderUpdated = orderUpdated;\n\n //vm.deliveryPlanningTemplate = [];\n\n vm.getOrderTypeRowStyle = getOrderTypeRowStyle;\n vm.getFromLocationRowStyle = getFromLocationRowStyle;\n vm.getDestinationRowStyle = getDestinationRowStyle;\n vm.getCompanyRowStyle = getCompanyRowStyle;\n vm.getCollectionRowStyle = getCollectionRowStyle;\n vm.getCurrencyStyle = getCurrencyStyle;\n vm.setCurrencyRate = setCurrencyRate;\n vm.canChangeCurrency = canChangeCurrency;\n vm.canChangeCompany = canChangeCompany;\n vm.canChangeFromLocation = canChangeFromLocation;\n vm.canChangeDestination = canChangeDestination;\n vm.canChangeCollection = canChangeCollection;\n vm.openEditDeliveryPlanning = openEditDeliveryPlanning;\n vm.isDeliveryPlanningDisabled = isDeliveryPlanningDisabled;\n vm.isDeliveryPlanningEnabled = isDeliveryPlanningEnabled;\n vm.dateChangeDeliveryPlanningDialog = dateChangeDeliveryPlanningDialog;\n vm.resetDeliveryPlanningTemplate = resetDeliveryPlanningTemplate;\n\n function onInit() {\n OrdersApiService.getOrderTypes().then(function(response) {\n vm.orderTypes = response;\n\n if (vm.initOrderType && vm.initOrderType !== null) {\n vm.order.orderType = _.find(vm.orderTypes, function(o) {\n return o.orderSystemType === vm.initOrderType;\n });\n }\n vm.orderChangeCount += 1;\n }, function(error) {\n ToasterService.showError();\n });\n OrdersApiService.getCompanies().then(function(response) {\n vm.companies = response;\n\n if (vm.initCompany && vm.initCompany !== null) {\n vm.order.company = _.find(vm.companies, function(c) {\n return c.id === vm.initCompany;\n });\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getCurrencyDefault().then(function(response) {\n vm.defaultCurrency = response;\n setCurrencyToDefault();\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getLocationsDependingOnUser({filterInactiveLocations: true}).then(function(response) {\n vm.allUserLocations = response;\n setLocationsDependingOnOrderType();\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getLocations({filterInactiveLocations: true}).then(function(response) {\n vm.allLocations = response;\n setLocationsDependingOnOrderType();\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getOrderCollections().then(function(response) {\n vm.collections = response;\n\n if (vm.setCollectionAutomatically) {\n changeOrderSeason();\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getDeliveryTerms().then(function(response) {\n vm.deliveryTerms = response;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getUsers().then(function(response) {\n vm.users = response;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n OrdersApiService.getCurrencies().then(function(response) {\n vm.currencies = response;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n Rms2OrdersApiService.getCountries().then(function(response) {\n vm.countries = response.countries;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n setOrderMetadataListeners();\n isDeliveryPlanningEnabled();\n }\n\n function onChanges() {\n }\n\n function onDestroy() {\n }\n\n function orderUpdated() {\n vm.orderChangeCount += 1;\n }\n\n function setOrderMetadataListeners() {\n // Watch order collection\n $scope.$watch(function() { return vm.order.currencyRate; }, function() {\n OrderService.updateCurrencyOnOrderRows(vm.order.orderArticles, vm.order.currencyRate);\n orderUpdated();\n });\n $scope.$watch(function() { return vm.order.collection.id; }, function() {\n if (vm.order.collection && vm.order.collection.id) {\n OrdersApiService.getOrderCollectionById(vm.order.collection.id).then(function(response) {\n vm.order.collection = response;\n\n //If collection currency doesn't contain all available currencies, add them\n _.forEach(vm.currencies, function(currency) {\n var existingCurrency = vm.order.collection.currencySettings.find(function(element) { return element.currency.code === currency.code; });\n if (existingCurrency === undefined) {\n var newCurrencySetting = {\n currency: currency,\n currencyRate: currency.currencyRate\n };\n vm.order.collection.currencySettings.push(newCurrencySetting);\n }\n });\n if (vm.setCurrencyRateAutomatically) {\n setCurrencyRate();\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n\n orderUpdated();\n });\n // Watch order type\n $scope.$watch(function() { return vm.order.orderType.id; }, function() {\n setLocationsDependingOnOrderType();\n orderUpdated();\n });\n // Watch order company\n $scope.$watch(function() { return (vm.order.company) ? vm.order.company.id : undefined; }, function(newValue, oldValue) {\n if (newValue === oldValue) { return; }\n if (vm.order.deliveryTerms === undefined || vm.order.deliveryTerms.id === undefined) {\n setDeliveryTermsToCompanyDefault(vm.order.company);\n }\n setCurrencyToCompanyDefault(vm.order.company);\n setPurchaserToCompanyDefault(vm.order.company);\n orderUpdated();\n });\n // Watch order destination\n $scope.$watch(function() {\n return vm.order.destination;\n }, function() {\n if (vm.order.destination && !vm.order.destination.resellerPriceList &&\n vm.order.destination.resellerPriceListId && vm.order.destination.resellerPriceListId !== -1) {\n //Load reseller price list\n OrdersApiService.getResellerPriceList(vm.order.destination.resellerPriceListId).then(function(response) {\n vm.order.destination.resellerPriceList = response;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n });\n //Watch fromLocation\n $scope.$watch(function() {\n return (vm.order.fromLocation === undefined) ? undefined : vm.order.fromLocation.id;\n }, function(oldValue, newValue) {\n if (oldValue !== newValue && vm.order.fromLocation) {\n vm.order.destination = undefined;\n vm.destinations = _.reject(vm.allLocations, function(location) {\n return location.id === vm.order.fromLocation.id;\n });\n orderUpdated();\n }\n });\n // Watch planned delivery date\n $scope.$watch(function() { return vm.order.plannedDeliveryDate; }, function() {\n orderUpdated();\n if (vm.order.id === undefined || vm.order.id === 0) {\n changeOrderSeason();\n }\n });\n // Watch order delivery terms\n $scope.$watch(function() { return vm.order.deliveryTerms; }, function () { orderUpdated(); });\n }\n\n function setLocationsDependingOnOrderType() {\n if (vm.order.orderType.orderSystemType === 'store') {\n vm.locations = vm.allLocations;\n vm.destinations = vm.allUserLocations;\n //Clear destination if new order\n if (!vm.order.id || vm.order.id === 0) {\n vm.order.destination = undefined;\n }\n } else if (vm.order.orderType.orderSystemType === 'internal') {\n vm.locations = vm.allUserLocations;\n //Clear destination if new order\n if (!vm.order.id || vm.order.id === 0) {\n vm.order.destination = undefined;\n }\n vm.destinations = _.reject(vm.allLocations, function(location) {\n return location.id === (vm.order.fromLocation !== undefined) ? vm.order.fromLocation.id : -1;\n });\n } else if (vm.order.orderType.orderSystemType === 'return') {\n vm.locations = vm.allUserLocations;\n //Clear fromLocation if new order\n if (!vm.order.id || vm.order.id === 0) {\n vm.order.fromLocation = undefined;\n }\n vm.destinations = vm.allLocations;\n }\n }\n\n \n function isDeliveryPlanningEnabled() {\n OrdersApiService.isDeliveryPlanningEnabled().then(function(response){\n vm.enableDeliveryPlanning = response;\n }, function(error){\n ToasterService.showError(error.message);\n });\n }\n\n function isDeliveryPlanningDisabled(){\n return ((!vm.order.orderType || !vm.order.orderType.id) || vm.order.orderType.deliveryPlanningTemplate === undefined)\n }\n\n function getOrderTypeRowStyle() {\n var style = {};\n if (!vm.order.orderType || !vm.order.orderType.id) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n function getFromLocationRowStyle() {\n var style = {};\n if (vm.order.fromLocation === undefined || !vm.order.fromLocation.id) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n function getDestinationRowStyle() {\n var style = {};\n if (vm.order.destination === undefined || !vm.order.destination.id) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n function getCompanyRowStyle() {\n var style = {};\n if (vm.order.company === undefined || !vm.order.company.id) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n function getCollectionRowStyle() {\n var style = {};\n if (vm.order.collection === undefined || !vm.order.collection.id) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n function getCurrencyStyle() {\n var style = {};\n if (vm.order.currency === undefined || !vm.order.currency.id) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n function changeOrderSeason() {\n var comparisonDate = parseDate(vm.order.plannedDeliveryDate);\n var collection = _.find(vm.collections, function(collection) {\n\t\t\tvar fromDate = parseDate(collection.fromDate);\n\t\t\tvar toDate = parseDate(collection.toDate);\n return fromDate <= comparisonDate && toDate >= comparisonDate;\n });\n\n if (!vm.order.id && vm.order.collection && collection) {\n vm.order.collection = collection;\n }\n }\n\n function setDeliveryTermsToCompanyDefault(company) {\n if (company === undefined || company.deliveryTerm === undefined) {\n return;\n }\n\n var deliveryTerm = _.find(vm.deliveryTerms, function(deliveryTerm) { return deliveryTerm.id === company.deliveryTerm.id; });\n\n if (deliveryTerm !== undefined) {\n vm.order.deliveryTerms = deliveryTerm;\n vm.orderChangeCount += 1;\n }\n }\n\n function canChangeCurrency() {\n // the currency is dependent on the supplier.\n return vm.isCopying;\n }\n\n function canChangeCompany() {\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n var hasNoOrderArticles = vm.order.orderArticles.length === 0;\n var isNotApproved = vm.order.approved === false;\n var hasInitCompany = vm.initCompany && vm.initCompany !== null;\n\n return (!hasOrderId || (hasNoOrderArticles && isNotApproved)) && !hasInitCompany;\n }\n\n function isCreatedOrNew(){\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n var hasPermittedStatus = vm.order.systemStatus === \"created\";\n return !hasOrderId || hasPermittedStatus\n }\n\n function canChangeFromLocation() {\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n var allowedByOrderType = vm.order.orderType.orderSystemType === 'return' || vm.order.orderType.orderSystemType === 'internal';\n var hasNoOrderArticles = vm.order.orderArticles.length === 0;\n var isNotApproved = vm.order.approved === false;\n var isOrderCopy = vm.isCopying === true;\n\n return !hasOrderId || (allowedByOrderType &&\n ((!isOrderCopy && hasNoOrderArticles) ||\n isNotApproved ||\n isOrderCopy));\n }\n\n function canChangeCollection() {\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n\n return !hasOrderId;\n }\n\n function canChangeDestination() {\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n var allowedByOrderType = vm.order.orderType.orderSystemType === 'store' || vm.order.orderType.orderSystemType === 'internal';\n var hasNoOrderArticles = vm.order.orderArticles.length === 0;\n var isNotApproved = vm.order.approved === false;\n var isOrderCopy = vm.isCopying === true;\n var hasPermittedStatus = vm.order.systemStatus === \"created\";\n\n return !hasOrderId || (allowedByOrderType && hasPermittedStatus &&\n ((!isOrderCopy && hasNoOrderArticles) ||\n isNotApproved ||\n isOrderCopy));\n }\n\n function setCurrencyToCompanyDefault(company) {\n if (!company || !company.purchasingCurrency) {\n return;\n }\n\n var currencyToSet = _.find(vm.currencies, function(currency) { return currency.id === company.purchasingCurrency.id; });\n\n if (currencyToSet !== undefined) {\n vm.order.currency = currencyToSet;\n }\n\n setCurrencyRate();\n }\n\n function setPurchaserToCompanyDefault(company) {\n if (!company || !company.primaryPurchaser) {\n return;\n }\n\n var purchaserToSet = _.find(vm.users, function(user) { return user.id === company.primaryPurchaser.id; });\n\n if (purchaserToSet !== undefined) {\n vm.order.purchaser = purchaserToSet;\n }\n }\n\n function setCurrencyToDefault() {\n if (!vm.order.currency) {\n vm.order.currency = vm.defaultCurrency;\n vm.order.currencyRate = vm.defaultCurrency.currencyRate;\n }\n }\n\n function setCurrencyRate() {\n if (vm.order.currency === undefined) {\n return;\n }\n\n if (vm.order.collection) {\n var currencySetting = vm.order.collection.currencySettings.find(function(element) { return element.currency.code === vm.order.currency.code; });\n if (currencySetting) {\n vm.order.currencyRate = currencySetting.currencyRate;\n } else {\n vm.order.currencyRate = vm.order.currency.currencyRate;\n }\n } else {\n vm.order.currencyRate = vm.order.currency.currencyRate;\n }\n }\n\n function showEditDeliveryplanDialog(firstEdit){\n EditDeliveryPlanningDialogService.showDialog(vm.deliveryPlanningTemplate.stages).then(function(response) {\n console.log(response);\n if(response !== false){\n vm.deliveryPlanningTemplate.stages = response; \n }\n else if(firstEdit){\n vm.deliveryPlanningTemplate = [];\n }\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n });\n }\n\n function openEditDeliveryPlanning(){\n if(vm.deliveryPlanningTemplate === undefined || vm.deliveryPlanningTemplate.length === 0){\n OrdersApiService.getDeliveryPlanningTemplate(vm.order.orderType.deliveryPlanningTemplate.id, vm.order.plannedDeliveryDate, vm.order.deliveryTerms.id).then(function(response){\n vm.deliveryPlanningTemplate = response.data;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n showEditDeliveryplanDialog(true);\n });\n }\n else{\n showEditDeliveryplanDialog(false);\n }\n }\n\n function resetDeliveryPlanningTemplate(){\n vm.deliveryPlanningTemplate = [];\n }\n\n function dateChangeDeliveryPlanningDialog(){\n if(vm.enableDeliveryPlanning){\n console.log('stuff');\n }\n }\n\n //Transform from string to Date, and make sure date has correct timezone and no time information\n\tfunction parseDate(input) {\n\t\tif (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n\t\t} else {\n\t\t\treturn new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n\t\t}\n\t}\n\n}\n","angular.module('components.caOrderRowsDelivery', [])\n .component('caOrderRowsDelivery', {\n templateUrl: 'main/order/orderdelivery/components/orderrowsdelivery.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderChangeCount: '=',\n order: '=',\n links: '<',\n disabled: '<',\n currentOrderArticle: '<'\n },\n controller: controller\n });\n\n// @ngInject \nfunction controller($scope, $translate, loadSpinnerService, OrdersApiService, ToasterService, OrderService) {\n var vm = this;\n\n //Properties\n var rowsGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n vm.ongoingRequest = false;\n vm.restCurrentOrderArticle = false;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.setWijmoInputDateLimits = setWijmoInputDateLimits;\n vm.captureRowsGrid = captureRowsGrid;\n vm.deliverOrderSection = deliverOrderSection;\n vm.transferQuantityDataToOrder = transferQuantityDataToOrder;\n vm.recalculateGridTotals = recalculateGridTotals;\n vm.orderArticleIsDelivered = orderArticleIsDelivered;\n vm.canDeliverIn = canDeliverIn;\n\n function onInit() {\n vm.order.deliveredDate = new Date();\n\n $scope.$watch(function() { return (vm.currentOrderArticle === undefined || vm.currentOrderArticle.article === undefined) ?\n undefined :\n vm.currentOrderArticle.article.id; }, function() {\n if (vm.currentOrderArticle !== undefined && vm.currentOrderArticle.article !== undefined) {\n initializeGridColumns();\n loadGridData();\n }\n });\n\n $scope.$watch(function() { return vm.orderChangeCount; }, function() {\n initializeGridColumns();\n loadGridData();\n\n if ($scope.$$phase) {\n $scope.$apply();\n }\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function canDeliverIn() {\n return OrderService.canPartDeliverOrder(vm.links);\n }\n\n function deliverOrderSection() {\n if (vm.ongoingRequest) {\n console.log(\"vm.ongoingRequest: \" + vm.ongoingRequest);\n return;\n }\n vm.ongoingRequest = true;\n\n vm.transferQuantityDataToOrder();\n var orderCopy = angular.copy(vm.order);\n\n var orderArticle = _.find(orderCopy.orderArticles, function(orderArticle) {\n return orderArticle.id === vm.currentOrderArticle.id;\n });\n orderArticle.shouldDeliverThisArticle = true;\n\n if (vm.restCurrentOrderArticle) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderRow.IsFinalDelivery = false;\n });\n } else {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderRow.IsFinalDelivery = true;\n });\n }\n\n zeroAllNonDeliveryQuantities(orderCopy);\n stripUnnecessaryOrderData(orderCopy);\n\n orderCopy.plannedDeliveryDate = parseDate(orderCopy.plannedDeliveryDate);\n\n deliver();\n\n function deliver() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.deliverPartially(orderCopy).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"common.done\"));\n vm.order = response.data;\n vm.order.deliveredDate = new Date();\n vm.order.plannedDeliveryDate = parseDate(vm.order.plannedDeliveryDate);\n vm.currentOrderArticle = _.find(vm.order.orderArticles, function(orderArticle) { return orderArticle.id === vm.currentOrderArticle.id; });\n\n resetOrderArticleFlags();\n\n vm.orderChangeCount += 1;\n setInitialQuantitiesToDeliver();\n setupGrid();\n loadGridData();\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n vm.ongoingRequest = false;\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function resetOrderArticleFlags() {\n _.forEach(vm.order.orderArticles, function(orderArticle) {\n orderArticle['shouldDeliverThisArticle'] = false;\n\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderRow['hasBeenModifiedSinceLoad'] = false;\n });\n });\n }\n\n function zeroAllNonDeliveryQuantities(order) {\n _.forEach(order.orderArticles, function(orderArticle) {\n if (!orderArticle.shouldDeliverThisArticle) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderRow.quantity = 0;\n });\n }\n });\n }\n\n function stripUnnecessaryOrderData(order) {\n order.orderArticles = _.filter(order.orderArticles, function(oa) { return oa.shouldDeliverThisArticle && oa.shouldDeliverThisArticle === true; });\n _.forEach(order.orderArticles, function(orderArticle) {\n orderArticle.article = undefined;\n _.forEach(orderArticle.orderRows, function (ordRow) {\n _.forEach(ordRow.deliveryRows, function(delRow) {\n if (delRow.location) { delRow.location = { id: delRow.location.id }; }\n if (delRow.deliveringUser) { delRow.deliveringUser = { id: delRow.deliveringUser.id }; }\n if (delRow.articleVariant) { delRow.articleVariant = { id: delRow.articleVariant.id }; }\n });\n });\n });\n if (order.purchaser) { order.purchaser = { id: order.purchaser.id }; }\n if (order.destination) { order.destination = { id: order.destination.id }; }\n if (order.company) { order.company = { id: order.company.id }; }\n if (order.user) { order.user = { id: order.user.id }; }\n if (order.collection) { order.collection = { id: order.collection.id }; }\n if (order.fromLocation) { order.fromLocation = { id: order.fromLocation.id }; }\n }\n\n //Transform from string to Date, and make sure date has correct timezone and no time information\n\tfunction parseDate(input) {\n\t\tif (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n\t\t} else {\n\t\t\treturn new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n\t\t}\n\t}\n\n function setWijmoInputDateLimits(s) {\n if (vm.order.earliestAllowedDeliveryDate) {\n s.min = parseDate(vm.order.earliestAllowedDeliveryDate);\n } else {\n s.min = new Date(2016, 1, 1, 0, 0, 0, 0);\n }\n s.max = parseDate(new Date());\n }\n\n function captureRowsGrid(grid) {\n rowsGrid = grid;\n rowsGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n frozenColumns: 2,\n itemsSource: rowCollection\n });\n\n setupGrid();\n\n if (vm.order.id !== undefined) {\n loadGridData();\n }\n }\n\n function setupGrid() {\n rowData.length = 0;\n rowsGrid.finishEditing(true);\n rowsGrid.columns.clear();\n rowsGrid.invalidate();\n rowCollection.refresh();\n initializeGridColumns();\n\n rowsGrid.beginningEdit.addHandler(function (s, e) {\n var col = rowsGrid.columns[e.col];\n var dataItem = rowsGrid.rows[e.row].dataItem;\n var deliveryItemExists = _.has(dataItem, col.header);\n\n if (!deliveryItemExists) { // enable editing for the cell with id 0 in column 1\n e.cancel = true;\n }\n });\n }\n\n function loadGridData() {\n rowData.length = 0;\n\n var currentOrderArticle = _.find(vm.order.orderArticles, function(orderArticle) {\n return orderArticle.articleId === vm.currentOrderArticle.articleId;\n });\n\n if (!currentOrderArticle) {\n return;\n }\n\n var variantRows = _.groupBy(currentOrderArticle.orderRows, function(orderRow) {\n return orderRow.articleVariant.variantDetail1.variantDetailName;\n });\n\n _.forEach(variantRows, function(variantRowValues) {\n var r = {};\n var sum = 0;\n _.forEach(variantRowValues, function(variantRowValue) {\n r.variantDetails1Name = variantRowValue.articleVariant.variantDetail1.variantDetailName;\n\n r.variantExternalId = variantRowValue.articleVariant.externalId;\n\n var summarizedDeliveredQuantity = 0;\n var summarizedUndeliveredQuantity = 0;\n _.forEach(variantRowValue.deliveryRows, function(deliveryRow) {\n if (deliveryRow.systemStatus !== 'delivered' && deliveryRow.deliveryRowType === 'deliveryIn') {\n summarizedUndeliveredQuantity += deliveryRow.quantity;\n } else if (deliveryRow.systemStatus !== 'delivered' && deliveryRow.deliveryRowType === 'deliveryOut' && vm.order.orderType.orderSystemType === \"return\") {\n summarizedUndeliveredQuantity += -deliveryRow.quantity;\n }\n });\n r[variantRowValue.articleVariant.variantDetail2.variantDetailName] = summarizedUndeliveredQuantity;\n\n // Instead of displaying a negative value as the amount to be delivered in.\n if (parseInt(r[variantRowValue.articleVariant.variantDetail2.variantDetailName]) < 0) {\n r[variantRowValue.articleVariant.variantDetail2.variantDetailName] = \"0\";\n }\n\n var someRowIsUndelivered = false;\n _.forEach(vm.currentOrderArticle.orderRows, function(orderRow) {\n if (orderRow.systemStatus.toLowerCase() !== 'delivered') {\n someRowIsUndelivered = true;\n }\n });\n\n // If the orderArticle is fully delivered, show the delivered quantities in the grid.\n if (!someRowIsUndelivered) {\n r[variantRowValue.articleVariant.variantDetail2.variantDetailName] =\n _.reduce(variantRowValue.deliveryRows, function(memo, dlvrRow) {\n if (dlvrRow.deliveryRowType === \"deliveryIn\") {\n return memo + dlvrRow.quantity;\n }\n return memo;\n }, 0);\n }\n\n sum += parseInt(r[variantRowValue.articleVariant.variantDetail2.variantDetailName]);\n });\n r['rowTotal'] = sum;\n rowData.push(r);\n });\n rowCollection.refresh();\n }\n\n function initializeGridColumns() {\n if (!rowsGrid.columns) {\n return;\n }\n\n rowsGrid.columns.length = 0;\n\n // Add first row header column\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"variantDetails1Name\";\n rowHeader.header = ' ';\n rowHeader.allowSorting = false;\n rowHeader.allowResizing = true;\n rowHeader.width = 200;\n rowHeader.minWidth = 100;\n rowHeader.isReadOnly = true;\n rowsGrid.columns.push(rowHeader);\n\n var columns = getDataColumns();\n\n if (columns.length > 1) {\n var rowTotalCol = new wijmo.grid.Column();\n rowTotalCol.header = $translate.instant('customerorder.totalquantity');\n rowTotalCol.allowSorting = false;\n rowTotalCol.width = 100;\n rowTotalCol.minWidth = 100;\n rowTotalCol.isReadOnly = true;\n rowTotalCol.binding = \"rowTotal\";\n rowTotalCol.align = \"right\";\n rowsGrid.columns.push(rowTotalCol);\n }\n\n // Add dynamic columns\n _.forEach(columns, function (variantDetail) {\n var c = new wijmo.grid.Column();\n c.binding = variantDetail.variantDetailName;\n c.header = variantDetail.variantDetailName;\n c.width = '*';\n c.minWidth = 100;\n c.allowSorting = false;\n c.allowResizing = true;\n c.inputType = 'text';\n c.isReadOnly = !canDeliverIn();\n c.align = \"right\";\n rowsGrid.columns.push(c);\n });\n }\n\n function getDataColumns() {\n var columns = [];\n\n var articleVariants = [];\n\n if (vm.currentOrderArticle !== undefined) {\n _.forEach(vm.currentOrderArticle.orderRows, function(orderRow) {\n articleVariants.push(orderRow.articleVariant);\n });\n }\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(articleVariants, function(variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function(newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function transferQuantityDataToOrder() {\n var currentOrderArticle = _.find(vm.order.orderArticles, function(orderArticle) {\n return vm.currentOrderArticle.article.id === orderArticle.article.id;\n });\n\n _.forEach(currentOrderArticle.orderRows, function(orderRow) {\n var row = _.find(rowData, function(row) {\n return row['variantDetails1Name'] === orderRow.articleVariant.variantDetail1.variantDetailName;\n });\n if (row !== undefined) {\n orderRow.quantity = parseInt(row[orderRow.articleVariant.variantDetail2.variantDetailName]);\n }\n });\n }\n\n function recalculateGridTotals() {\n var variant2Details = [];\n _.forEach(vm.currentOrderArticle.orderRows, function(orderRow) {\n if (!_.find(variant2Details, function(vd) { return vd.id === orderRow.articleVariant.variantDetail2.id; })) {\n variant2Details.push(orderRow.articleVariant.variantDetail2);\n }\n });\n\n var variant1Details = [];\n _.forEach(vm.currentOrderArticle.orderRows, function(orderRow) {\n if (!_.find(variant1Details, function(vd) { return vd.id === orderRow.articleVariant.variantDetail1.id; })) {\n variant1Details.push(orderRow.articleVariant.variantDetail1);\n }\n });\n\n _.forEach(variant1Details, function(vd1) {\n var quantitySum = 0;\n var row = _.find(rowData, function(row) { return row.variantDetails1Name === vd1.variantDetailName; });\n _.forEach(variant2Details, function(vd2) {\n var deliveryItemExists = _.has(row, vd2.variantDetailName);\n if (deliveryItemExists) {\n quantitySum += parseInt(row[vd2.variantDetailName]);\n }\n });\n row['rowTotal'] = quantitySum;\n });\n\n rowsGrid.invalidate();\n }\n\n function orderArticleIsDelivered() {\n var orderRowsToCheck = _.filter(vm.currentOrderArticle.orderRows, function(orderRow) { return orderRow.id !== 0; });\n\n var isDelivered = _.every(orderRowsToCheck, function(orderRow) {\n return orderRow.systemStatus.toLowerCase() === 'delivered';\n });\n\n return isDelivered;\n }\n\n\n //FUNCTIONS FROM \"orderarticles.components.js\"\n function setInitialQuantitiesToDeliver() {\n _.forEach(vm.order.orderArticles, function(orderArticle) {\n if (isMultipleVariantArticle(orderArticle)) {\n return true;\n }\n orderArticle.restOrderArticle = false;\n orderArticle.deliveredDate = Date.now();\n _.forEach(orderArticle.orderRows, function(orderRow) {\n var deliveredQuantity = _.sumBy(orderRow.deliveryRows, function(deliveryRow) {\n if (deliveryRow.systemStatus === \"delivered\" && deliveryRow.deliveryRowType === \"deliveryIn\") {\n return deliveryRow.quantity;\n }\n });\n if (deliveredQuantity === undefined) {\n deliveredQuantity = 0;\n }\n orderRow.quantityToDeliver = Math.max(orderRow.quantity - deliveredQuantity, 0);\n });\n });\n }\n\n function isSingleVariantArticle(article) {\n return !article.isVariant || (article.articleVariants !== undefined && article.articleVariants.length < 2);\n }\n\n function isMultipleVariantArticle(article) {\n return !isSingleVariantArticle(article);\n }\n}\n","angular.module('components.caOrderRowsEdit', [])\n .component('caOrderRowsEdit', {\n templateUrl: 'main/order/orderdelivery/components/orderrowsedit.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderChangeCount: '=',\n order: '=',\n disabled: '<',\n currentOrderArticle: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $rootScope, $translate, OrdersApiService, loadSpinnerService, ProductsApiService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim();\n vm.hasQuantities = false;\n vm.hasDifferentVariantPrices = false;\n vm.stocks = [];\n vm.colorRelatedPurchaseCosts = [];\n vm.colorVariantRelatedPurchaseCosts = [];\n vm.defaultCurrency = {};\n\n //Private variables\n var rowsGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n var originalCellValue = '';\n var pricesGrid = {};\n var variantPricesGrid = {};\n \n //Methods\n vm.captureRowsGrid = captureRowsGrid;\n vm.capturePricesGrid = capturePricesGrid;\n vm.captureVariantPricesGrid = captureVariantPricesGrid;\n vm.handleNonexistingArticleVariants = handleNonexistingArticleVariants;\n vm.transferQuantityGridDataToOrder = transferQuantityGridDataToOrder;\n vm.transferPurchaseCostDataToOrder = transferPurchaseCostDataToOrder;\n vm.transferVariantPurchaseCostDataToOrder = transferVariantPurchaseCostDataToOrder;\n vm.recalculateGridTotals = recalculateGridTotals;\n vm.recalculateVariantGridTotals = recalculateVariantGridTotals;\n vm.hasGridQuantities = hasGridQuantities;\n vm.hasGridDifferentVariantPrices = hasGridDifferentVariantPrices;\n vm.beginEditingOrderRow = beginEditingOrderRow;\n vm.orderRowEditEnded = orderRowEditEnded;\n vm.hasRetrievedStocks = hasRetrievedStocks;\n vm.getStockQuantitiesForCurrentArticle = getStockQuantitiesForCurrentArticle;\n vm.getCurrencyCodeString = getCurrencyCodeString;\n vm.getTotalRowSum = getTotalRowSum;\n vm.isAllowedToAddProduct = isAllowedToAddProduct();\n vm.isSingleVariantArticle = isSingleVariantArticle;\n\n function isAllowedToAddProduct(){\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n return !hasOrderId || vm.order.systemStatus === \"created\"\n }\n\n\n function onInit() {\n $scope.$watch(function () { return vm.orderChangeCount; }, function () {\n recalculateGridTotals();\n recalculateVariantGridTotals();\n\n vm.hasQuantities = hasGridQuantities();\n if (vm.currentOrderArticle) {\n if (vm.currentOrderArticle.hasDifferentVariantPrices) {\n constructVariantPurchaseCostData();\n } else {\n constructPurchaseCostData();\n }\n }\n \n });\n $scope.$watch(function () {\n return (vm.currentOrderArticle === undefined || vm.currentOrderArticle.article === undefined) ?\n undefined :\n vm.currentOrderArticle.article.id;\n }, function () {\n if (vm.currentOrderArticle !== undefined && vm.currentOrderArticle.article !== undefined) {\n resetCurrentOrderArticlePresentation();\n }\n });\n\n ProductsApiService.getDefaultCurrency().then(function(response) {\n vm.defaultCurrency = response;\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n \n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.update){\n return false\n }\n\n return true\n }\n\n function getCurrencyCodeString() {\n if (!vm.order || !vm.order.currency) { return ''; }\n if (vm.order.orderType.orderSystemType === 'return') { return ''; }\n return ' (' + vm.order.currency.code + ')';\n }\n\n function resetCurrentOrderArticlePresentation() {\n initializeGridColumns();\n loadGridData();\n constructSalesPriceData();\n vm.hasQuantities = hasGridQuantities();\n vm.currentOrderArticle.hasDifferentVariantPrices = hasGridDifferentVariantPrices();\n\n\n if (vm.currentOrderArticle.hasDifferentVariantPrices) {\n constructVariantPurchaseCostData();\n } else {\n constructPurchaseCostData();\n }\n }\n\n function beginEditingOrderRow(s, e) {\n vm.handleNonexistingArticleVariants(s, e);\n\n if (hasRetrievedStocks(vm.currentOrderArticle.article)) {\n var rowNumber = rowsGrid.selection.row;\n var columnNumber = rowsGrid.selection.col;\n\n var columnHeader = rowsGrid.columns[columnNumber].binding;\n\n originalCellValue = angular.copy(rowData[rowNumber][columnHeader]);\n\n rowData[rowNumber][columnHeader] = rowData[rowNumber][columnHeader].split('(')[0].trim();\n rowCollection.refresh();\n }\n }\n\n function handleNonexistingArticleVariants(sender, event) {\n var row = sender.rows[event.row];\n var col = sender.columns[event.col];\n var item = row.dataItem;\n var colBinding = col.binding;\n var cellValue = item[colBinding];\n\n if (cellValue === undefined) {\n event.cancel();\n }\n }\n\n function hasRetrievedStocks(article) {\n return vm.stocks.length > 0 &&\n vm.stocks[article.id] &&\n vm.stocks[article.id].variantStocks &&\n vm.stocks[article.id].variantStocks.length > 0;\n }\n\n function orderRowEditEnded(sender, event) {\n if (hasRetrievedStocks(vm.currentOrderArticle.article)) {\n var rowNumber = rowsGrid.selection.row;\n var columnNumber = rowsGrid.selection.col;\n\n var columnHeader = rowsGrid.columns[columnNumber].binding;\n\n // Reinserting the parenthesis value, but only if we have a retrieved article variant stock\n var valueSplit = originalCellValue.split('(');\n var stockStr = '';\n if (valueSplit.length > 1) {\n stockStr = ' (' + valueSplit[1];\n }\n rowData[rowNumber][columnHeader] += stockStr;\n rowCollection.refresh();\n }\n\n vm.transferQuantityGridDataToOrder();\n vm.recalculateGridTotals();\n }\n\n function getStockQuantitiesForCurrentArticle() {\n loadSpinnerService.start('mainSpinner');\n var articleId = vm.currentOrderArticle.article.id;\n var locationId = vm.order.fromLocation.id;\n\n // /article/{articleId}/location/{locationId}/stock\n OrdersApiService.getStockForArticle(articleId, locationId).then(function(response) {\n vm.stocks[articleId] = { variantStocks: response.stock };\n resetCurrentOrderArticlePresentation();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function captureRowsGrid(grid) {\n rowsGrid = grid;\n rowsGrid.initialize({ \n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n frozenColumns: 2,\n itemsSource: rowCollection \n });\n\n setupGrid();\n\n if (vm.order.id !== undefined) {\n loadGridData();\n }\n }\n\n function setupGrid() {\n rowData.length = 0;\n rowsGrid.finishEditing(true);\n rowsGrid.columns.clear();\n rowsGrid.invalidate();\n rowCollection.refresh();\n initializeGridColumns();\n }\n\n function initializeGridColumns() {\n if (rowsGrid.columns) {\n rowsGrid.columns.length = 0;\n\n // Add first row header column\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"variantDetails1Name\";\n rowHeader.header = \" \";\n rowHeader.allowSorting = false;\n rowHeader.allowResizing = true;\n rowHeader.width = 200;\n rowHeader.minWidth = 100;\n rowHeader.isReadOnly = true;\n rowsGrid.columns.push(rowHeader);\n\n var columns = getDataColumns();\n\n if (columns.length > 1) {\n var rowTotalCol = new wijmo.grid.Column();\n rowTotalCol.header = $translate.instant('customerorder.totalquantity');\n rowTotalCol.allowSorting = false;\n rowTotalCol.allowResizing = true;\n rowTotalCol.width = 100;\n rowTotalCol.minWidth = 100;\n rowTotalCol.isReadOnly = true;\n rowTotalCol.binding = \"rowTotal\";\n rowTotalCol.align = \"right\";\n rowsGrid.columns.push(rowTotalCol);\n }\n\n // Add dynamic columns\n _.forEach(columns, function (variantDetail) {\n var c = new wijmo.grid.Column();\n c.binding = variantDetail.variantDetailName;\n c.header = variantDetail.variantDetailName;\n c.width = \"*\";\n c.minWidth = 100;\n c.allowSorting = false;\n c.allowResizing = true;\n c.inputType = 'tel';\n c.dataType = \"Number\";\n c.isReadOnly = false;\n c.align = \"right\";\n rowsGrid.columns.push(c);\n });\n }\n }\n\n function getDataColumns() {\n var columns = [];\n\n var articleVariants = [];\n\n if (vm.currentOrderArticle !== undefined) {\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n articleVariants.push(orderRow.articleVariant);\n });\n }\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(articleVariants, function (variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function (newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function loadGridData() {\n rowData.length = 0;\n var variantRows = _.groupBy(vm.currentOrderArticle.orderRows, function (orderRow) {\n return orderRow.articleVariant.variantDetail1.variantDetailName;\n });\n\n _.forEach(variantRows, function (variantRowValues) {\n var r = {};\n var sum = 0;\n\n if (!variantRowValues.hasBeenModifiedSinceLoad) { variantRowValues.hasBeenModifiedSinceLoad = true; }\n\n _.forEach(variantRowValues, function (variantRowValue) {\n r.variantDetails1Name = variantRowValue.articleVariant.variantDetail1.variantDetailName;\n var variantRowQuantity = variantRowValue['quantity'];\n var delQuantity = (variantRowValue.hasBeenModifiedSinceLoad) ?\n variantRowQuantity :\n (variantRowQuantity - Math.abs((variantRowValue.summarizedDeliveredQuantity !== undefined) ?\n variantRowValue.summarizedDeliveredQuantity :\n 0));\n\n //Display stock in cell if already fetched from backend\n if (hasRetrievedStocks(vm.currentOrderArticle.article)) {\n var articleStocks = vm.stocks[vm.currentOrderArticle.article.id];\n var existingStock = articleStocks !== undefined && articleStocks.variantStocks.length > 0 ?\n _.find(articleStocks.variantStocks, function(o) { return o.articleVariantId === variantRowValue.articleVariant.id; }) :\n undefined;\n var existingStockStr = existingStock !== undefined ? ' (' + existingStock.quantity + ')' : '';\n\n r[variantRowValue.articleVariant.variantDetail2.variantDetailName] = delQuantity + existingStockStr;\n } else {\n r[variantRowValue.articleVariant.variantDetail2.variantDetailName] = delQuantity;\n }\n\n r.variantExternalId = variantRowValue.articleVariant.externalId;\n r.systemStatus = variantRowValue.systemStatus \n r.systemName = variantRowValue.statusName \n\n sum += delQuantity;\n });\n r['rowTotal'] = sum;\n rowData.push(r);\n });\n rowCollection.refresh();\n }\n\n function capturePricesGrid(sender) {\n pricesGrid = sender;\n isAllowedToEditRow(pricesGrid)\n pricesGrid.itemsSource = vm.colorRelatedPurchaseCosts;\n\n pricesGrid.itemFormatter = function (panel, r, c, cell) {\n var style = cell.style;\n var regularCellType = wijmo.grid.CellType.Cell;\n\n var greyedColumnNumbers = [4, 5, 6, 11, 12, 13];\n\n if (_.find(greyedColumnNumbers, function (e) { return e === c; }) && panel.cellType === regularCellType) {\n style.color = '#000000';\n style.backgroundColor = '#eeeeee';\n }\n };\n\n vm.recalculateGridTotals();\n vm.transferPurchaseCostDataToOrder();\n }\n\n function captureVariantPricesGrid(sender) {\n variantPricesGrid = sender;\n isAllowedToEditRow(variantPricesGrid)\n variantPricesGrid.itemsSource = vm.colorVariantRelatedPurchaseCosts;\n\n variantPricesGrid.itemFormatter = function (panel, r, c, cell) {\n var style = cell.style;\n var regularCellType = wijmo.grid.CellType.Cell;\n var greyedColumnNumbers = [5, 10, 11, 12, 13];\n\n if (_.find(greyedColumnNumbers, function (e) { return e === c; }) && panel.cellType === regularCellType) {\n style.color = '#000000';\n style.backgroundColor = '#eeeeee';\n }\n };\n\n vm.recalculateVariantGridTotals();\n vm.transferVariantPurchaseCostDataToOrder();\n }\n\n function isAllowedToEditRow(variantPricesGrid){\n variantPricesGrid.beginningEdit.addHandler((s, e) => {\n let item = s.rows[e.row].dataItem;\n\t\t\tif (item.systemStatus === \"delivered\") { // prevent editing if status on row dose not allow\n e.cancel = true; \n }\n })\n }\n\n function constructPurchaseCostData() {\n vm.colorRelatedPurchaseCosts = [];\n\n var grouped = _.groupBy(vm.currentOrderArticle.orderRows, function (row) {\n return row.articleVariant.variantDetail1.variantDetailName;\n });\n\n var keys = Object.keys(grouped);\n\n _.forEach(keys, function (key) {\n var representative = _.find(grouped[key], function (element) { return element.quantity > 0; });\n\n if (representative) {\n var item = {\n color: key,\n purchaseCost: representative.purchaseCost,\n originalPurchasePrice: representative.originalPurchasePrice,\n discountPercent: representative.discountPercent,\n standardCostAddPercent: representative.standardCostAddPercent,\n effectivePurchasePrice: representative.effectivePurchasePrice,\n shippingCost: representative.shippingCost,\n customsPercent: representative.customsPercent,\n otherCosts: representative.otherCosts,\n systemStatus: representative.systemStatus,\n statusName: representative.statusName,\n sumQuantity: 0,\n rows: grouped[key]\n };\n\n _.forEach(item.rows, function (row) {\n item.sumQuantity += parseInt(row.quantity);\n });\n\n vm.colorRelatedPurchaseCosts.push(item);\n }\n });\n\n pricesGrid.itemsSource = vm.colorRelatedPurchaseCosts;\n if (typeof pricesGrid.invalidate === 'function') { pricesGrid.invalidate(); }\n if (pricesGrid.collectionView && typeof pricesGrid.collectionView.refresh === 'function') { pricesGrid.collectionView.refresh(); }\n }\n\n function constructVariantPurchaseCostData() {\n vm.colorVariantRelatedPurchaseCosts = [];\n\n var rows = vm.currentOrderArticle.orderRows.filter(x => x.id !== 0)\n\n _.forEach(rows, function (row) {\n var item = {\n color: row.articleVariant.variantDetail1.variantDetailName,\n size: row.articleVariant.variantDetail2.variantDetailName,\n purchaseCost: row.purchaseCost,\n originalPurchasePrice: row.originalPurchasePrice,\n discountPercent: row.discountPercent,\n standardCostAddPercent: row.standardCostAddPercent,\n effectivePurchasePrice: row.effectivePurchasePrice,\n quantity: parseInt(row.quantity),\n shippingCost: row.shippingCost,\n customsPercent: row.customsPercent,\n otherCosts: row.otherCosts,\n systemStatus: row.systemStatus,\n statusName: row.statusName\n };\n vm.colorVariantRelatedPurchaseCosts.push(item);\n });\n\n variantPricesGrid.itemsSource = vm.colorVariantRelatedPurchaseCosts;\n if (typeof variantPricesGrid.invalidate === 'function') { variantPricesGrid.invalidate(); }\n if (variantPricesGrid.collectionView && typeof variantPricesGrid.collectionView.refresh === 'function') { variantPricesGrid.collectionView.refresh(); }\n }\n\n function constructSalesPriceData() {\n vm.colorVariantRelatedSalesPrices = [];\n\n var grouped = _.groupBy(vm.currentOrderArticle.orderRows, function (row) {\n return row.articleVariant.variantDetail1.variantDetailName;\n });\n\n var keys = Object.keys(grouped);\n\n _.forEach(keys, function (key) {\n var averageSalesPrice = (_.sumBy(grouped[key], function (element) { return element.salesPrice; })) / grouped[key].length;\n var averagePurchaseCost = (_.sumBy(grouped[key], function (element) { return element.purchaseCost; })) / grouped[key].length;\n\n var item = {\n color: key,\n averageSalesPrice: averageSalesPrice,\n averagePurchaseCost: averagePurchaseCost,\n rows: grouped[key]\n };\n\n vm.colorVariantRelatedSalesPrices.push(item);\n });\n }\n\n function transferQuantityGridDataToOrder() {\n var currentOrderArticle = _.find(vm.order.orderArticles, function (orderArticle) {\n return vm.currentOrderArticle.article.id === orderArticle.article.id;\n });\n\n _.forEach(currentOrderArticle.orderRows, function (orderRow) {\n var row = _.find(rowData, function (row) {\n return row['variantDetails1Name'] === orderRow.articleVariant.variantDetail1.variantDetailName;\n });\n if (row !== undefined) {\n var quantity = parseInt(row[orderRow.articleVariant.variantDetail2.variantDetailName]);\n if (quantity < 0) {\n var quantityCustomized = parseInt(quantity.toString().replace(\"-\",\"\"));\n row[orderRow.articleVariant.variantDetail2.variantDetailName] = quantityCustomized;\n orderRow.quantity = quantityCustomized;\n } else {\n orderRow.quantity = quantity;\n }\n }\n });\n\n vm.orderChangeCount += 1;\n }\n\n function transferPurchaseCostDataToOrder() {\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n var rows = _.filter(vm.colorRelatedPurchaseCosts, function (row) {\n return row['color'] === orderRow.articleVariant.variantDetail1.variantDetailName;\n });\n if (rows !== undefined) {\n _.forEach(rows, function (row) {\n orderRow.purchaseCost = parseFloat(row['purchaseCost']);\n orderRow.originalPurchasePrice = parseFloat(row['originalPurchasePrice']);\n orderRow.discountPercent = parseFloat(row['discountPercent']);\n orderRow.standardCostAddPercent = parseFloat(row['standardCostAddPercent']);\n orderRow.effectivePurchasePrice = parseFloat(row['effectivePurchasePrice']);\n orderRow.shippingCost = parseFloat(row['shippingCost']);\n orderRow.customsPercent = parseFloat(row['customsPercent']);\n orderRow.otherCosts = parseFloat(row['otherCosts']);\n });\n }\n });\n\n vm.orderChangeCount += 1;\n }\n\n function transferVariantPurchaseCostDataToOrder() {\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n var rows = _.filter(vm.colorVariantRelatedPurchaseCosts, function (row) {\n return row['color'] === orderRow.articleVariant.variantDetail1.variantDetailName &&\n row['size'] === orderRow.articleVariant.variantDetail2.variantDetailName;\n });\n if (rows !== undefined) {\n _.forEach(rows, function (row) {\n orderRow.purchaseCost = parseFloat(row['purchaseCost']);\n orderRow.originalPurchasePrice = parseFloat(row['originalPurchasePrice']);\n orderRow.discountPercent = parseFloat(row['discountPercent']);\n orderRow.standardCostAddPercent = parseFloat(row['standardCostAddPercent']);\n orderRow.effectivePurchasePrice = parseFloat(row['effectivePurchasePrice']);\n orderRow.shippingCost = parseFloat(row['shippingCost']);\n orderRow.customsPercent = parseFloat(row['customsPercent']);\n orderRow.otherCosts = parseFloat(row['otherCosts']);\n });\n }\n });\n\n vm.orderChangeCount += 1;\n }\n\n function hasGridQuantities() {\n var hasQuantities = false;\n\n if (vm.currentOrderArticle && vm.currentOrderArticle.orderRows) {\n _.forEach(vm.currentOrderArticle.orderRows, function (row) {\n if (row.quantity > 0) { hasQuantities = true; }\n });\n }\n\n return hasQuantities;\n }\n\n function hasGridDifferentVariantPrices() {\n if (vm.currentOrderArticle.orderRows.length === 0) {\n return false;\n }\n\n var firstRow = vm.currentOrderArticle.orderRows[0];\n\n var rows = vm.currentOrderArticle.orderRows.filter(x => x.id !== 0)\n\n var isAllEqual = _.every(rows, function(orderRow) {\n return orderRow.originalPurchasePrice === firstRow.originalPurchasePrice &&\n orderRow.discountPercent === firstRow.discountPercent &&\n orderRow.shippingCost === firstRow.shippingCost &&\n orderRow.customsPercent === firstRow.customsPercent &&\n orderRow.otherCosts === firstRow.otherCosts &&\n orderRow.standardCostAddPercent === firstRow.standardCostAddPercent &&\n orderRow.systemStatus === firstRow.systemStatus;\n });\n\n return !isAllEqual;\n }\n\n function recalculateGridTotals() {\n if (vm.currentOrderArticle === undefined) {\n return;\n }\n if (vm.colorRelatedPurchaseCosts && vm.colorRelatedPurchaseCosts.length > 0) {\n var variant2Details = [];\n var variant1Details = [];\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n if (!_.find(variant2Details, function (vd) { return vd.id === orderRow.articleVariant.variantDetail2.id; })) {\n variant2Details.push(orderRow.articleVariant.variantDetail2);\n }\n });\n\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n if (!_.find(variant1Details, function (vd) { return vd.id === orderRow.articleVariant.variantDetail1.id; })) {\n variant1Details.push(orderRow.articleVariant.variantDetail1);\n }\n });\n\n _.forEach(variant1Details, function (vd1) {\n var quantitySum = 0;\n var row = _.find(rowData, function (row) { return row.variantDetails1Name === vd1.variantDetailName; });\n _.forEach(variant2Details, function (vd2) {\n var parsed = parseInt(row[vd2.variantDetailName]);\n if (!_.isNaN(parsed)) {\n quantitySum += parsed;\n }\n });\n row['rowTotal'] = quantitySum;\n\n if (vm.colorRelatedPurchaseCosts && vm.colorRelatedPurchaseCosts.length > 0) {\n var purchaseCostRow = _.find(vm.colorRelatedPurchaseCosts, function (currentRow) { return currentRow.color === vd1.variantDetailName; });\n if (purchaseCostRow) {\n purchaseCostRow.sumQuantity = quantitySum;\n\n purchaseCostRow.effectivePurchasePrice = calculateEffectivePurchasePrice(purchaseCostRow.originalPurchasePrice, purchaseCostRow.discountPercent);\n purchaseCostRow.purchaseCost = getTotalRowSum(purchaseCostRow);\n }\n }\n });\n\n if (rowsGrid.invalidate) {\n rowsGrid.invalidate();\n }\n if (pricesGrid.invalidate) {\n pricesGrid.invalidate();\n }\n }\n }\n\n function calculateEffectivePurchasePrice(originalPurchasePrice, discountPercent) {\n var discountAmount = (originalPurchasePrice * discountPercent / 100);\n return originalPurchasePrice - discountAmount;\n }\n\n function getTotalRowSum(rowItem) {\n var pp = calculateEffectivePurchasePrice(rowItem.originalPurchasePrice, rowItem.discountPercent);\n var ppCurrencyConverted = pp * vm.order.currencyRate;\n var customsAmount = (ppCurrencyConverted + rowItem.shippingCost) * (rowItem.customsPercent / 100);\n var standardCostAddAmount = (ppCurrencyConverted + rowItem.shippingCost + customsAmount + rowItem.otherCosts) * (rowItem.standardCostAddPercent / 100);\n\n var result = ppCurrencyConverted + rowItem.shippingCost + customsAmount + rowItem.otherCosts + standardCostAddAmount;\n\n return result;\n }\n\n function isSingleVariantArticle(article) {\n if (article === undefined) { return }\n return !article.isVariant || article.articleVariants.length < 2;\n }\n\n function recalculateVariantGridTotals() {\n if (vm.currentOrderArticle === undefined) {\n return;\n }\n if (vm.colorVariantRelatedPurchaseCosts && vm.colorVariantRelatedPurchaseCosts.length > 0) {\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n var purchaseCostRow = _.find(vm.colorVariantRelatedPurchaseCosts, function (purchaseRow) {\n return purchaseRow.color === orderRow.articleVariant.variantDetail1.variantDetailName &&\n purchaseRow.size === orderRow.articleVariant.variantDetail2.variantDetailName;\n });\n\n if (purchaseCostRow) {\n purchaseCostRow.quantity = purchaseCostRow.quantity;\n purchaseCostRow.effectivePurchasePrice = calculateEffectivePurchasePrice(purchaseCostRow.originalPurchasePrice, purchaseCostRow.discountPercent);\n purchaseCostRow.purchaseCost = getTotalRowSum(purchaseCostRow);\n\n _.forEach(purchaseCostRow.rows, function (currentPurchaseCostRow) {\n currentPurchaseCostRow.quantity = orderRow.quantity;\n purchaseCostRow.effectivePurchasePrice = calculateEffectivePurchasePrice(purchaseCostRow.originalPurchasePrice, purchaseCostRow.discountPercent);\n purchaseCostRow.purchaseCost = getTotalRowSum(currentPurchaseCostRow);\n\n });\n }\n });\n\n if (rowsGrid.invalidate) {\n rowsGrid.invalidate();\n }\n if (variantPricesGrid.invalidate) {\n variantPricesGrid.invalidate();\n }\n }\n }\n}\n","angular.module('components.caOrderScannerNavigation', [])\n .component('caOrderScannerNavigation', {\n templateUrl: 'main/order/orderdelivery/components/orderscannernavigation.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderChangeCount: '<',\n order: '<',\n onArticleSelected: '&',\n deliverOrder: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller() {\n var vm = this;\n\n var deliverWholeOrderCode = \"444e45\";\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.navigationScannerInput = \"\";\n\n vm.scanInputKeyPress = scanInputKeyPress;\n\n function onInit() {\n focusScanningInputField();\n }\n function onChanges() {\n\n }\n function onDestroy() {\n\n }\n\n function focusScanningInputField() {\n var scanField = angular.element(\"#navScanInput\");\n scanField.focus();\n }\n\n function scanInputKeyPress(ev) {\n var enterKeyCode = 13;\n if (ev !== undefined && ev.keyCode === enterKeyCode) {\n processNavigationScannerInput(vm.navigationScannerInput);\n }\n }\n\n function processNavigationScannerInput(input) {\n // Determine whether the scanned code is a command or just a lookup\n switch (input) {\n case deliverWholeOrderCode:\n console.log(\"Delivering whole order\");\n vm.deliverOrder();\n break;\n default:\n\n var orderArticle = _.find(vm.order.orderArticles, function(ordArt) {\n var alternativeArticleNumber = ordArt.article.alternativeArticleNumber;\n alternativeArticleNumber = alternativeArticleNumber.normalize('NFD').replace(/[\\u0300-\\u036f]/g,\"\");\n return alternativeArticleNumber === input;\n });\n if (orderArticle !== undefined) {\n vm.onArticleSelected({article: orderArticle.article});\n } else {\n console.log(\"Unknown\");\n }\n break;\n }\n\n vm.navigationScannerInput = \"\";\n }\n}\n","angular.module('components.caOrderTotals', [])\n .component('caOrderTotals', {\n templateUrl: 'main/order/orderdelivery/components/ordertotals.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderChangeCount: '<',\n order: '='\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $rootScope) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n var grid = {};\n vm.orders = [];\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.haveOrderArticlePurchaseCostClaim = haveOrderArticlePurchaseCostClaim();\n\n //Methods\n vm.captureGrid = captureGrid;\n vm.shouldShowFromLocation = shouldShowFromLocation;\n vm.shouldShowSupplier = shouldShowSupplier;\n vm.shouldShowDestination = shouldShowDestination;\n\n function onInit() {\n $scope.$watch(function() { return vm.orderChangeCount; }, function() {\n recalculateAggregatedData();\n refreshGrid();\n });\n vm.orders = [vm.order];\n }\n\n function onChanges() {\n }\n\n function onDestroy() {\n }\n\n function captureGrid(s) {\n grid = s;\n }\n\n function shouldShowSupplier() {\n return vm.order.orderType.orderSystemType === 'store' || vm.order.orderType.orderSystemType === 'automatic' || vm.order.orderType.orderSystemType === 'return';\n }\n function shouldShowFromLocation() {\n return vm.order.orderType.orderSystemType === 'internal' || vm.order.orderType.orderSystemType === 'automaticInternal' || vm.order.orderType.orderSystemType === 'return';\n }\n function shouldShowDestination() {\n return vm.order.orderType.orderSystemType !== 'return';\n }\n\n function haveOrderArticlePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n function recalculateAggregatedData() {\n vm.order.summarizedPurchaseCost = 0;\n vm.order.summarizedSalesPrice = 0;\n vm.order.summarizedQuantity = 0;\n vm.order.summarizedDeliveredQuantity = 0;\n vm.order.deliveredValue = 0;\n\n _.forEach(vm.order.orderArticles, function(orderArticle) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n vm.order.summarizedPurchaseCost += orderRow.quantity * orderRow.purchaseCost;\n vm.order.summarizedSalesPrice += orderRow.articleVariant.salesPrice * orderRow.quantity;\n vm.order.summarizedQuantity += orderRow.quantity;\n _.forEach(orderRow.deliveryRows, function(deliveryRow) {\n if (deliveryRow.systemStatus.toLowerCase() === 'delivered' && deliveryRow.deliveryRowType === 'deliveryIn') {\n vm.order.summarizedDeliveredQuantity += deliveryRow.quantity;\n vm.order.deliveredValue += deliveryRow.quantity * orderRow.purchaseCost;\n }\n });\n });\n\n });\n }\n\n function refreshGrid() {\n if (grid.invalidate) {\n grid.invalidate();\n }\n if (grid.refresh) {\n grid.refresh();\n }\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.new', {\n url: '/new',\n templateUrl: 'main/order/orderdelivery/orderdelivery.tpl.html',\n controller: 'OrderDeliveryController as vm',\n resolve: {\n carrier: function () {\n return {\n data: {\n links: [],\n order: {\n orderNumber: 0,\n orderArticles: [],\n orderType: { orderSystemType: 'undefined' },\n // orderStatus: { orderSystemStatus: 'Created' },\n systemStatus: 'Created',\n statusName: 'system.orderSystemStatus.Created',\n // status: 'Created',\n orderNumberExternal: \"\",\n company: {},\n fromLocation: {},\n supplierReference: \"\",\n // Destination is kept in vm.selectedDestination\n plannedDeliveryDate: new Date(),\n collection: {},\n termsOfDelivery: \"\",\n ourReference: \"\",\n cashRegDiscount: \"\", // ???\n user: {},\n summarizedDeliveredQuantity: 0,\n summarizedPurchaseCost: 0,\n summarizedQuantity: 0,\n summarizedSalesPrice: 0,\n canApproveOrder:false\n },\n deliveryPlanningTemplate: []\n }\n };\n },\n isModifying: function () { return true; },\n isCopying: function () { return false; },\n closeHeaderOnOpen: function () { return false; }\n },\n params: {\n orderSystemType: null,\n articles: null,\n supplierId: null\n }\n });\n\n $stateProvider.state('order.copyorder', {\n url: '/copy/{orderId}',\n templateUrl: 'main/order/orderdelivery/orderdelivery.tpl.html',\n controller: 'OrderDeliveryController as vm',\n resolve: {\n carrier: orderResolver,\n isModifying: function () { return true; },\n isCopying: function () { return true; },\n closeHeaderOnOpen: function () { return false; }\n }\n });\n\n $stateProvider.state('order.modifyorder', {\n url: '/modify/{orderId}',\n templateUrl: 'main/order/orderdelivery/orderdelivery.tpl.html',\n controller: 'OrderDeliveryController as vm',\n resolve: {\n carrier: orderResolver,\n isModifying: function () { return true; },\n isCopying: function () { return false; },\n closeHeaderOnOpen: function () { return true; }\n }\n });\n\n $stateProvider.state('order.orderdelivery', {\n url: '/deliver/{orderId}',\n templateUrl: 'main/order/orderdelivery/orderdelivery.tpl.html',\n controller: 'OrderDeliveryController as vm',\n resolve: {\n carrier: orderResolver,\n isModifying: function () { return false; },\n isCopying: function () { return false; },\n closeHeaderOnOpen: function () { return true; }\n },\n params: {\n usingScannerNavigation: false\n }\n });\n}\n\n// @ngInject\nfunction orderResolver($stateParams, OrdersApiService) {\n return OrdersApiService.getById($stateParams.orderId);\n}\n\n// @ngInject\nfunction OrderDeliveryController($state, $stateParams, $scope, $translate, carrier, isModifying, isCopying,\n ResourcesService, loadSpinnerService, $q,\n OrdersApiService, ProductsApiService, ToasterService,\n confirmationDialogService, deliveryConfirmationDialogService, OrderService) {\n var vm = this;\n\n vm.usingScannerNavigation = $stateParams.usingScannerNavigation;\n vm.inputOrderSystemType = $stateParams.orderSystemType;\n vm.inputSupplierId = $stateParams.supplierId;\n vm.inputArticles = $stateParams.articles;\n\n //Properties\n vm.isModifying = isModifying;\n vm.isCopying = isCopying;\n vm.order = carrier.data.order;\n vm.links = carrier.data.links;\n vm.copiedOrderId = 0;\n vm.scannedBarcodes = \"\";\n vm.barcodesSendList = [];\n vm.deliveryDate = new Date();\n vm.currentOrderArticle = {};\n vm.orderArticleSwitchingLocked = false;\n vm.isShowingScanningForm = false;\n vm.showOrderMetadataPanel = isModifying;\n vm.orderChangeCount = 0;\n vm.navigationScannerInput = \"\";\n vm.visibility = {\n orderHeadInput: !vm.closeHeaderOnOpen,\n orderArticlesAddForm: !vm.isModifying\n };\n vm.articlesOnOrder = [];\n\n vm.deliveryPlanningTemplate = carrier.data.deliveryPlanningTemplate;\n //Methods\n vm.toggleScanningForm = toggleScanningForm;\n vm.downloadOrderLabels = downloadOrderLabels;\n vm.getOrderPrintout = getOrderPrintout;\n vm.toggleMetadataPanelVisibility = toggleMetadataPanelVisibility;\n vm.viewOrderArticle = viewOrderArticle;\n vm.disableOrderArticleSwitching = disableOrderArticleSwitching;\n vm.enableOrderArticleSwitching = enableOrderArticleSwitching;\n vm.isAllowedtoOutDeliverOrder = isAllowedtoOutDeliverOrder;\n vm.isAllowedToSave = isAllowedToSave;\n vm.isAllowedToUseScanningForm = isAllowedToUseScanningForm;\n vm.saveOrder = saveOrder;\n vm.showApproveButton = showApproveButton;\n vm.approveOrder = approveOrder;\n vm.outDeliverOrder = outDeliverOrder;\n vm.receiveArticles = receiveArticles;\n vm.deliverOrder = deliverOrder;\n vm.receiveOrderArticles = receiveOrderArticles;\n vm.finalizeDelivery = finalizeDelivery;\n vm.returnToState = returnToState;\n vm.canDeliverIn = canDeliverIn;\n vm.canDeliverEntireOrder = canDeliverEntireOrder;\n vm.isAllowedToAddProduct = canAddToOrderDuringEdit();\n\n\n activate();\n\n function activate() {\n vm.order.plannedDeliveryDate = parseDate(vm.order.plannedDeliveryDate);\n\n // Watch order destination\n $scope.$watch(function () { return vm.isModifying; }, function () {\n if (vm.isModifying) {\n if (vm.order.destination && vm.order.destination.resellerPriceList &&\n vm.order.destination.resellerPriceListId && vm.order.destination.resellerPriceListId !== -1) {\n //Load reseller price list\n OrdersApiService.getResellerPriceList(vm.order.destination.resellerPriceListId).then(function (response) {\n vm.order.destination.resellerPriceList = response;\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n }\n });\n\n //Must make sure order meta data has been loaded before populating order rows from inputArticles\n //In this case, currencyRate must be set before effectivePurchasePrice can be calculated\n $scope.$watch(function () { return vm.order.currencyRate; }, function (newValue, oldValue) {\n if (newValue && !oldValue) {\n if (vm.inputArticles && vm.inputArticles !== null) {\n addArticlesToOrder();\n }\n\n vm.articlesOnOrder = [];\n _.forEach(vm.order.orderArticles, function (orderArticle) {\n vm.articlesOnOrder.push({ id: orderArticle.article.id });\n });\n }\n });\n\n if (vm.isCopying) {\n resetOrderForCopying();\n }\n\n _.forEach(vm.order.orderArticles, function(orderArticle){\n fillOutOrderRows(orderArticle);\n });\n }\n\n function canAddToOrderDuringEdit(){\n var hasOrderId = vm.order.id !== undefined && vm.order.id > 0;\n return !hasOrderId || vm.order.systemStatus === \"created\"\n }\n\n function addArticlesToOrder() {\n //Get full article information\n var promises = [];\n var results = [];\n loadSpinnerService.start('mainSpinner');\n _.forEach(vm.inputArticles, function (article) {\n var articleFetchPromise = ProductsApiService.getProduct(article.id);\n promises.push(articleFetchPromise);\n });\n\n $q.all(promises).then(function (responses) {\n _.forEach(responses, function (response) {\n results.push(response);\n });\n\n //Add articles to order article and order rows\n receiveArticles(results);\n\n //Add quantityToOrder to order rows\n _.forEach(vm.inputArticles, function (article) {\n var orderArticle = _.find(vm.order.orderArticles, { articleId: article.id });\n if (orderArticle) {\n _.forEach(article.articleVariants, function (articleVariant) {\n var orderRow = _.find(orderArticle.orderRows, function (row) {\n return row.articleVariant.id === articleVariant.id;\n });\n if (orderRow && articleVariant.quantityToOrder > 0) {\n orderRow.quantity = articleVariant.quantityToOrder;\n }\n });\n }\n });\n\n vm.orderChangeCount += 1;\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n function resetOrderForCopying() {\n vm.copiedOrderId = vm.order.id;\n vm.order.id = 0;\n vm.order.orderNumber = 0;\n vm.order.orderNumberExternal = '';\n vm.order.systemStatus = 'created';\n vm.order.statusName = 'system.orderSystemStatus.Created';\n // vm.order.orderStatus = {\n // id: 1,\n // orderSystemStatus: \"created\",\n // isFinalState: false,\n // orderStatusName: \"Skapad\"\n // };\n\n vm.order.approved = false;\n vm.order.hasBeenPrinted = false;\n\n if (vm.order.orderType.orderSystemType === 'store' || vm.order.orderType.orderSystemType === 'internal') {\n vm.order.destination = undefined;\n }\n if (vm.order.orderType.orderSystemType === 'return' || vm.order.orderType.orderSystemType === 'internal') {\n vm.order.fromLocation = undefined;\n }\n vm.order.plannedDeliveryDate = new Date();\n vm.order.createdDate = new Date();\n\n _.forEach(vm.order.orderArticles, function (ordArt) {\n _.forEach(ordArt.orderRows, function (ordRow) {\n ordRow.deliveryRows = [];\n // ordRow.orderStatus = {\n // id: 1,\n // orderSystemStatus: \"created\",\n // isFinalState: false,\n // orderStatusName: \"Skapad\"\n // };\n ordRow.systemStatus = \"created\";\n ordRow.statusName = \"system.orderSystemStatus.Created\";\n });\n\n ordArt.lowestSystemStatusAmongRows = \"created\";\n ordArt.lowestStatusName = \"system.orderSystemStatus.Created\";\n\n // ordArt.lowestStatusAmongRows = {\n // id: 1,\n // orderSystemStatus: \"created\",\n // isFinalState: false,\n // orderStatusName: \"Skapad\"\n // };\n });\n }\n\n function finalizeDelivery() {\n confirmationDialogService.showDialog($translate.instant(\"order.confirmFinalizeDeliveryMessage\"), 'warning').then(function (result) {\n if (result === true) {\n OrdersApiService.markAsDelivered(vm.order.id).then(function (response) {\n ToasterService.showSuccess($translate.instant(\"order.deliveryFinalized\"), $translate.instant(\"common.deliver\"));\n $state.go('order.ordersearch', {\n orderId: vm.order.id,\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showOnlyUndeliveredOrders,\n orderTypes: vm.orderTypes\n });\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function returnToState() {\n if (vm.order && vm.order.id && vm.order.id > 0) {\n $state.go('order.ordersearch', {\n orderId: vm.order.id,\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showOnlyUndeliveredOrders,\n orderTypes: vm.orderTypes\n });\n } else if (vm.isCopying) {\n $state.go('order.ordersearch', {\n orderId: vm.copiedOrderId,\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showOnlyUndeliveredOrders,\n orderTypes: vm.orderTypes\n });\n } else {\n $state.go('order.ordersearch', {\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showOnlyUndeliveredOrders,\n orderTypes: vm.orderTypes\n });\n }\n }\n\n //Transform from string to Date, and make sure date has correct timezone and no time information\n function parseDate(input) {\n if (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n } else {\n return new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n }\n }\n\n function outDeliverOrder() {\n if ((vm.order.destination !== undefined && vm.order.destination.id !== undefined) &&\n (vm.order.fromLocation !== undefined && vm.order.fromLocation.id !== undefined) &&\n vm.order.destination.id === vm.order.fromLocation.id) {\n ToasterService.showError($translate.instant('order.error.sameLocationAsDestination'), $translate.instant('common.error'));\n return;\n }\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.markAsUndelivered(vm.order.id).then(function (response) {\n $state.go('order.ordersearch', {\n orderId: vm.order.id,\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showOnlyUndeliveredOrders,\n orderTypes: vm.orderTypes\n });\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function isAllowedtoOutDeliverOrder() {\n var isAllowed = vm.order && vm.order.id &&\n OrderService.canShipOrder(vm.links);\n return isAllowed;\n }\n\n function canDeliverIn() {\n return OrderService.canPartDeliverOrder(vm.links);\n }\n\n function canDeliverEntireOrder() {\n // var isOrderStatusOtherThanDelivered = !vm.order.orderStatus || vm.order.orderStatus.orderSystemStatus !== 'delivered';\n var isOrderStatusOtherThanDelivered = vm.order.systemStatus.toLowerCase() !== 'delivered';\n var canDeliverOrder = OrderService.canDeliverOrder(vm.links);\n return canDeliverOrder && isOrderStatusOtherThanDelivered;\n }\n\n function disableOrderArticleSwitching() {\n vm.orderArticleSwitchingLocked = true;\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n }\n\n function enableOrderArticleSwitching() {\n vm.orderArticleSwitchingLocked = false;\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n }\n\n Date.prototype.addDays = function(days) {\n var dat = new Date(this.valueOf());\n dat.setDate(dat.getDate() + days);\n return dat;\n };\n Date.prototype.getDatum = function() {\n var dat = new Date(this.valueOf());\n var month = dat.getMonth() + 1;\n if (month < 10) { month = '0' + month; }\n var date = dat.getDate();\n if (date < 10) { date = '0' + date; }\n var str = dat.getFullYear() + '-' + month + '-' + date;\n return str;\n };\n\n function deliverOrder() {\n var deliveryDate = new Date();\n var earliestAllowedDeliveryDate = vm.order.earliestAllowedDeliveryDate ?\n new Date(vm.order.earliestAllowedDeliveryDate).getDatum() :\n new Date(vm.order.plannedDeliveryDate.addDays(-30)).getDatum(); //Needs fetch the most recent date from stock table, LastInventoriedDate\n deliveryConfirmationDialogService.showDialog(\n $translate.instant(\"order.confirmDeliverWholeOrder\"),\n deliveryDate,\n earliestAllowedDeliveryDate\n ).then(function (result) {\n if (result.isCompleted === true) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.deliverOrderWithDate(vm.order.id, result.deliveryDate).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"order.delivered\"), $translate.instant(\"common.deliver\"));\n $state.go('order.ordersearch', {\n orderId: vm.order.id,\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showOnlyUndeliveredOrders,\n orderTypes: vm.orderTypes\n });\n },\n function(error) {\n handleError(error);\n }\n ).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleScanningForm() {\n if (!vm.isShowingScanningForm) {\n vm.isShowingScanningForm = true;\n } else {\n vm.isShowingScanningForm = false;\n vm.scannedBarcodes = \"\";\n }\n }\n\n function resetOrderArticleFlags() {\n _.forEach(vm.order.orderArticles, function (orderArticle) {\n orderArticle['shouldDeliverThisArticle'] = false;\n\n _.forEach(orderArticle.orderRows, function (orderRow) {\n orderRow['hasBeenModifiedSinceLoad'] = false;\n });\n });\n }\n\n function viewOrderArticle(article) {\n var orderArticle = _.find(vm.order.orderArticles, function (orderArticle) {\n return orderArticle.article.id === article.id;\n });\n\n fillOutOrderRows(orderArticle);\n\n vm.currentOrderArticle = orderArticle;\n vm.showOrderMetadataPanel = vm.isCopying ? true : false;\n }\n\n function createOrderRows(articleVariants, orderArticle, stocks) {\n return OrderService.createOrderRowsFromArticleVariants(vm.order, articleVariants, orderArticle, stocks);\n }\n\n function getVariant(variantDetails1Name, variantDetails2Name) {\n var orderRowArticleVariantIds = [];\n\n _.forEach(vm.currentOrderArticle.orderRows, function (orderRow) {\n orderRowArticleVariantIds.push(orderRow.articleVariant.id);\n });\n\n var orderRows = [];\n _.forEach(vm.order.orderArticles, function (orderArticle) {\n _.forEach(orderArticle.orderRows, function (orderRow) {\n if (_.find(orderRowArticleVariantIds, function (articleVariantId) { return articleVariantId === orderRow.articleVariant.id; })) {\n orderRows.push(orderRow);\n }\n });\n });\n\n var row = _.find(orderRows, {\n articleVariant: {\n variantDetail1: { variantDetailName: variantDetails1Name },\n variantDetail2: { variantDetailName: variantDetails2Name }\n }\n });\n\n return row;\n }\n\n function saveOrder() {\n // Prepare the list of barcodes.\n vm.barcodesSendList = [];\n _.forEach(vm.scannedBarcodes.split('\\n'), function (barcode) {\n vm.barcodesSendList.push(barcode.trim());\n });\n\n //Strip unnecessary data\n var orderToSave = angular.copy(vm.order);\n if (orderToSave.destination && orderToSave.destination.id > 0) {\n orderToSave.destination = { id: orderToSave.destination.id };\n }\n if (orderToSave.fromLocation && orderToSave.fromLocation.id > 0) {\n orderToSave.fromLocation = { id: orderToSave.fromLocation.id };\n }\n _.forEach(orderToSave.orderArticles, function (orderArticle) {\n orderArticle.article = { id: orderArticle.article.id };\n _.forEach(orderArticle.orderRows, function (orderRow) {\n orderRow.articleVariant = {\n id: orderRow.articleVariant.id,\n article: { id: orderRow.articleVariant.article.id }\n };\n if (orderRow.destination) { orderRow.destination = { id: orderRow.destination.id }; }\n _.forEach(orderRow.deliveryRows, function (deliveryRow) {\n deliveryRow.articleVariant = {\n id: deliveryRow.articleVariant.id,\n article: { id: deliveryRow.articleVariant.article.id }\n };\n deliveryRow.location = { id: deliveryRow.location.id };\n });\n });\n });\n\n // TODO: Fix the source of the problem instad of using this quick fix.\n // This should be fixed by wrinting a new API method that only returns a very bare bones list of locations, instead of the full location information.\n // Testing removing som superflous data.\n if (vm.isModifying && (orderToSave.id === undefined || orderToSave.id === 0)) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.createWholeOrder(orderToSave, vm.barcodesSendList, vm.deliveryPlanningTemplate).then(function (response) {\n var responseData = response.data;\n _.forEach(responseData.orderArticles, function (orderArticle) {\n fillOutOrderRows(orderArticle);\n });\n setOrder(responseData);\n vm.order.plannedDeliveryDate = parseDate(vm.order.plannedDeliveryDate);\n vm.scannedBarcodes = \"\";\n if (vm.isShowingScanningForm) {\n toggleScanningForm();\n }\n\n vm.orderChangeCount += 1;\n\n $state.go('order.modifyorder', { orderId: vm.order.id });\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.updateWholeOrder(orderToSave).then(function (response) {\n var responseData = response.data;\n _.forEach(responseData.orderArticles, function (orderArticle) {\n fillOutOrderRows(orderArticle);\n });\n setOrder(responseData);\n vm.order.plannedDeliveryDate = parseDate(vm.order.plannedDeliveryDate);\n vm.scannedBarcodes = \"\";\n if (vm.isShowingScanningForm) {\n toggleScanningForm();\n }\n vm.orderChangeCount += 1;\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function setOrder(orderToSet) {\n // check current state\n var currentArticleId;\n if (vm.currentOrderArticle && vm.currentOrderArticle.article) {\n currentArticleId = vm.currentOrderArticle.article.id;\n }\n\n vm.order = orderToSet;\n\n if (currentArticleId) {\n vm.currentOrderArticle = _.find(vm.order.orderArticles, function (orderArticle) {\n return currentArticleId === orderArticle.article.id;\n });\n }\n }\n\n function showApproveButton() {\n if (vm.order.canApproveOrder === true) {\n var orderIsSaved = vm.order.id !== undefined && vm.order.id > 0;\n\n return orderIsSaved && OrderService.canApproveOrder(vm.links);\n }\n return false;\n }\n\n function approveOrder() {\n if (!vm.order.approved && vm.isModifying && vm.order.id && vm.order.id > 0) {\n //Confirm approve order\n var approveMessage = $translate.instant('order.confirmApproveOrder').replace(/%1/g, '<br>');\n confirmationDialogService.showDialog(approveMessage).then(function (result) {\n if (result === false) {\n return;\n }\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.approveOrder(vm.order.id).then(function (response) {\n ToasterService.showSuccess($translate.instant(\"order.orderApproved\"), $translate.instant(\"common.order\"));\n vm.order.approved = true;\n vm.orderChangeCount += 1;\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant(\"order.unableApproveOrder\"), $translate.instant(\"common.error\"));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n });\n }\n }\n\n function isAllowedToSave() {\n var hasOrderType = vm.order.orderType !== undefined && vm.order.orderType.id !== undefined;\n var hasCurrency = vm.order.currency !== undefined && vm.order.currency.id !== undefined;\n var hasDestination = vm.order.destination !== undefined && vm.order.destination.id !== undefined;\n var hasFromLocation = vm.order.fromLocation !== undefined && vm.order.fromLocation.id !== undefined;\n var hasCompany = vm.order.company !== undefined && vm.order.company.id !== undefined;\n var hasCurrencyRate = vm.order.currencyRate !== undefined && vm.order.currencyRate !== \"\";\n\n if (hasOrderType && hasCurrency && hasCurrencyRate) {\n if (vm.order.orderType.orderSystemType.toLowerCase() === 'store' && hasCompany && hasDestination) {\n return true;\n } else if (vm.order.orderType.orderSystemType.toLowerCase() === 'internal' && hasFromLocation && hasDestination) {\n return true;\n } else if (vm.order.orderType.orderSystemType.toLowerCase() === 'return' && hasCompany && hasFromLocation) {\n return true;\n } else if (vm.order.orderType.orderSystemType.toLowerCase() === 'automatic' && hasCompany && hasDestination) {\n return true;\n } else if (vm.order.orderType.orderSystemType.toLowerCase() === 'automaticinternal' && hasFromLocation && hasDestination) {\n return true;\n }\n }\n\n return false;\n }\n\n function isAllowedToUseScanningForm() {\n if (vm.order.orderArticles.length > 0) {\n return false;\n }\n return true;\n }\n\n function receiveArticles(articles) {\n for (var i = 0; i < articles.length; i++) {\n var fakedOrderArticle = {\n id: 0,\n orderLineNumber: 0,\n orderId: 0,\n articleId: articles[i].id,\n article: articles[i],\n summarizedQuantity: 0,\n summarizedDeliveredQuantity: 0,\n summarizedPurchaseCost: 0,\n summarizedSalesPrice: 0,\n\n // lowestStatusAmongRows: {\n // orderSystemStatus: 'Created'\n // },\n lowestStatusName: 'system.OrderRowSystemStatus.Created',\n LowestSystemStatusAmongRows: 'Created',\n orderRows: []\n };\n\n vm.order.orderArticles.push(fakedOrderArticle);\n\n fillOutOrderRows(fakedOrderArticle);\n }\n\n vm.articlesOnOrder = [];\n _.forEach(vm.order.orderArticles, function (orderArticle) {\n vm.articlesOnOrder.push({ id: orderArticle.article.id });\n });\n\n vm.orderChangeCount += 1;\n }\n\n function fillOutOrderRows(orderArticle) {\n var missingArticleVariants = [];\n _.forEach(orderArticle.article.articleVariants, function (artVar) {\n if (!_.find(orderArticle.orderRows, function (orderRow) { return orderRow.articleVariant.id === artVar.id; })) {\n missingArticleVariants.push(artVar);\n }\n });\n\n var locationIds = [];\n if (vm.order.fromLocation !== undefined && vm.order.fromLocation !== undefined && vm.order.fromLocation.id !== undefined && vm.order.fromLocation.id !== 0) {\n locationIds.push(vm.order.fromLocation.id);\n }\n var articleVariantIds = [];\n _.forEach(missingArticleVariants, function (av) { articleVariantIds.push(av.id); });\n\n if (vm.order.orderType.orderSystemType.toLowerCase() === 'internal') {\n loadSpinnerService.start('main-spinner');\n OrdersApiService.getStocksForArticleVariants(articleVariantIds, locationIds).then(function (response) {\n var stocks = response.data;\n\n var missingOrderRows = createOrderRows(missingArticleVariants, orderArticle, stocks);\n\n // don't show non-order rows for delivery form since we are not able to\n // handle them in the back end.\n if (vm.isModifying) {\n _.forEach(missingOrderRows, function (orderRow) {\n orderArticle.orderRows.push(orderRow);\n });\n }\n\n }, function (error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('main-spinner');\n });\n } else {\n var missingOrderRows = createOrderRows(missingArticleVariants, orderArticle);\n\n if (orderArticle && orderArticle.orderRows.length > 0) {\n var orderRow = orderArticle.orderRows[0];\n _.forEach(missingOrderRows, function(missingOrderRow) {\n missingOrderRow.discountPercent = orderRow.discountPercent;\n missingOrderRow.standardCostAddPercent = orderRow.standardCostAddPercent;\n missingOrderRow.shippingCost = orderRow.shippingCost;\n missingOrderRow.customsPercent = orderRow.customsPercent;\n missingOrderRow.otherCosts = orderRow.otherCosts;\n });\n }\n\n if (vm.isModifying) {\n _.forEach(missingOrderRows, function (orderRow) {\n orderArticle.orderRows.push(orderRow);\n });\n }\n }\n\n }\n\n function downloadOrderLabels() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadLabels(vm.order.id, vm.order.orderNumber).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getOrderPrintout() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadAsPdf(vm.order.id).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n function toggleMetadataPanelVisibility() {\n vm.showOrderMetadataPanel = !vm.showOrderMetadataPanel;\n }\n\n function receiveOrderArticles(orderArticles) {\n var fakedOrderArticles = orderArticles;\n\n _.forEach(fakedOrderArticles, function (oa) {\n _.forEach(oa.orderRows, function (or) {\n or.destination = vm.order.destination;\n });\n });\n\n _.forEach(fakedOrderArticles, function (fakedOrderArticle) {\n var preExistingOrderArticle = _.find(vm.order.orderArticles, function (oa) { return oa.articleId === fakedOrderArticle.articleId; });\n if (preExistingOrderArticle !== undefined) {\n _.forEach(fakedOrderArticle.orderRows, function (fakedOrderRow) {\n var preExistingOrderRow = _.find(preExistingOrderArticle.orderRows, function (or) { return or.articleVariant.id === fakedOrderRow.articleVariant.id; });\n if (preExistingOrderRow !== undefined) {\n preExistingOrderRow.quantity += fakedOrderRow.quantity;\n } else {\n preExistingOrderArticle.orderRows.push(fakedOrderRow);\n }\n });\n } else {\n vm.order.orderArticles.push(fakedOrderArticle);\n }\n });\n\n vm.currentOrderArticle = undefined;\n vm.orderChangeCount += 1;\n }\n}\n\nangular\n .module('order.orderdelivery', [])\n .config(stateConfig)\n .controller('OrderDeliveryController', OrderDeliveryController);\n","// @ngInject\nfunction EditDeliveryPlanningDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(deliveryPlanTemplate) {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: true,\n controller: 'EditDeliveryPlanningDialogController as vm',\n templateUrl: 'main/order/orderdeliveryplanning/editDeliveryPlanningDialog/editDeliveryPlanningDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n deliveryPlanTemplate: function() {\n return deliveryPlanTemplate;\n },\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction EditDeliveryPlanningDialogController($uibModalInstance, deliveryPlanTemplate) {\n var vm = this;\n\n vm.deliveryPlanTemplate = deliveryPlanTemplate;\n vm.deliveryPlanTemplateCopy = angular.copy(vm.deliveryPlanTemplate);\n\n vm.closeModal = closeModal;\n vm.getRowStyle = getRowStyle;\n vm.formatDate = formatDate;\n vm.setLeadTime = setLeadTime;\n vm.recalcLeadTime = recalcLeadTime;\n vm.changeDateAfterLeadTime = changeDateAfterLeadTime;\n vm.errorLeadTime = errorLeadTime;\n\n recalcLeadTime();\n\n function closeModal(keepChanges) {\n if(keepChanges)\n $uibModalInstance.close(vm.deliveryPlanTemplate);\n else\n $uibModalInstance.close(false);\n }\n\n function errorLeadTime(leadTimeInDays){\n var style = {};\n \n if(leadTimeInDays < 0){\n style['background-color'] = 'lightpink';\n style['border-color'] = 'red';\n }\n else{\n style['background-color'] = 'whitesmoke';\n style['border-color'] = 'lightgray';\n }\n\n return style; \n }\n\n function getRowStyle(plan){\n var style = {};\n if(plan !== undefined){\n if(plan.disabled){\n style['background-color'] = 'lightgrey';\n style['color'] = 'gray';\n }\n }\n return style;\n }\n\n function changeDateAfterLeadTime(plan){\n if(plan.leadTimeInDays < 0)\n plan.leadTimeInDays = 0;\n\n var index = _.findIndex(vm.deliveryPlanTemplate, function(p){\n if(p.id === plan.nextPlanId){\n return true;\n }\n });\n\n if(index !== -1){\n var newDate = new Date(plan.plannedDate.valueOf());\n vm.deliveryPlanTemplate[index].plannedDate.setDate(newDate.getDate() + plan.leadTimeInDays);\n console.log(vm.deliveryPlanTemplate[index].plannedDate);\n changeDateAfterLeadTime(vm.deliveryPlanTemplate[index]);\n }\n }\n\n function setNextId(plan){\n if(plan.disabled)\n return null;\n\n var sortAdd = 1;\n var nextPlan = _.find(vm.deliveryPlanTemplate, function(p){\n if(p.sortOrder === plan.sortOrder + sortAdd){\n if(p.disabled)\n sortAdd++;\n else\n return true;\n }\n });\n\n if(nextPlan === undefined)\n return null;\n\n plan.leadTimeInDays = daysBetween(plan.plannedDate, nextPlan.plannedDate);\n return nextPlan.id;\n }\n\n function recalcLeadTime(){\n _.forEach(vm.deliveryPlanTemplate, function(plan){\n plan.nextPlanId = setNextId(plan);\n /*\n if(!plan.disabled && plan.nextPlanId !== null)\n {\n var nextPlan = _.find(vm.deliveryPlanTemplate, function(p){\n if(p.id === plan.nextPlanId){\n return true;\n }\n });\n plan.leadTime = daysBetween(plan.plannedDate, nextPlan.plannedDate);\n }*/\n });\n }\n\n function setLeadTime(plan){\n if(plan.disabled)\n return;\n\n var nextStage = _.find(vm.deliveryPlanTemplate, function(stage){\n if(stage.id === plan.nextPlanId)\n return true;\n });\n var prevStage =_.find(vm.deliveryPlanTemplate, function(stage){\n if(stage.nextPlanId === plan.id)\n return true;\n });\n\n if(nextStage !== undefined){\n if(nextStage.disabled)\n setLeadTime(nextStage); \n else\n plan.leadTime = daysBetween(plan.plannedDate, nextStage.plannedDate);\n }\n else{ \n plan.leadTime = 0;\n }\n\n if(prevStage !== undefined){\n prevStage.leadTime = daysBetween(prevStage.plannedDate, plan.plannedDate);\n if(prevStage.disabled)\n setLeadTime(prevStage);\n }\n }\n\n function treatAsUTC(date) {\n var result = new Date(date);\n result.setMinutes(result.getMinutes() - result.getTimezoneOffset());\n return result;\n }\n \n function daysBetween(startDate, endDate) {\n var millisecondsPerDay = 24 * 60 * 60 * 1000;\n return Math.round((treatAsUTC(endDate) - treatAsUTC(startDate)) / millisecondsPerDay);\n }\n\n function formatDate(date) {\n if(date === null)\n return date;\n if(angular.isNumber(date)){\n date = new Date(date);\n }\n const offset = date.getTimezoneOffset()\n date = new Date(date.getTime() - (offset*60*1000))\n return date.toISOString().split('T')[0]\n }\n}\n\nangular\n .module('order.deliveryPlanning.editDeliveryPlanningDialog', [])\n .service('EditDeliveryPlanningDialogService', EditDeliveryPlanningDialogService)\n .controller('EditDeliveryPlanningDialogController', EditDeliveryPlanningDialogController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.deliveryPlanning', {\n url: '/deliveryplanning/{orderId}',\n templateUrl: 'main/order/orderdeliveryplanning/orderdeliveryplanning.tpl.html',\n controller: 'OrderDeliveryPlanningController as vm'\n });\n}\n\nfunction OrderDeliveryPlanningController($filter, $state, $stateParams, OrdersApiService, loadSpinnerService, ToasterService, OrderService){\n var vm = this;\n\n //Properties\n vm.orderId = $stateParams.orderId;\n vm.deliveryPlans = [];\n vm.deliveryPlansCopy;\n vm.selectedDeliveryPlanCopy = {};\n vm.comment = \"\";\n vm.isEditingPredicted = false;\n vm.isEditingConfirmed = false;\n vm.recalculate = false;\n vm.recalculatedDifference = 0;\n vm.approve = false;\n vm.showPlanned = true;\n\n //Methods\n vm.goBackToOrderView = goBackToOrderView;\n vm.formatDate = formatDate;\n vm.savePlan = savePlan;\n vm.undoPlan = undoPlan;\n vm.editSavedPlan = editSavedPlan;\n vm.getBackgroundColor = getBackgroundColor;\n vm.getPredictedBackgroundColor = getPredictedBackgroundColor;\n vm.getPredictedButtonBackgroundColor = getPredictedButtonBackgroundColor;\n vm.getConfirmedBackgroundColor = getConfirmedBackgroundColor;\n vm.saveMainComment = saveMainComment;\n vm.editingAny = editingAny;\n vm.editPredicted = editPredicted;\n vm.editConfirmed = editConfirmed;\n vm.doRecalculateDiffrence = doRecalculateDiffrence;\n vm.selectRow = selectRow;\n vm.showDifferece = showDifferece;\n vm.isSelected = isSelected;\n\n //Links\n vm.canConfirm = canConfirm;\n vm.canUndoConfirm = canUndoConfirm;\n vm.canChangePredicted = canChangePredicted;\n vm.isLeadTime = isLeadTime;\n\n //initMainComment()\n activate();\n\n function activate(){\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getById(vm.orderId).then(function(response) {\n vm.order = response.data.order;\n vm.comment = vm.order.mainComment;\n initMainComment();\n console.log(vm.order);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n\n reloadDeliveryPlan();\n }\n function initMainComment(){\n if(vm.order.mainComment == undefined){\n vm.comment = \"\";\n }\n else{\n vm.comment = vm.order.mainComment;\n } \n }\n function saveMainComment(){\n var mainCommentData = {\n orderId: vm.orderId,\n mainComment: vm.comment\n };\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.saveMainComment(mainCommentData).then(function(response) {\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function reloadDeliveryPlan(){\n vm.recalculate = false;\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getOrderDeliveryPlan(vm.orderId).then(function(response) {\n vm.deliveryPlans = response.data.deliveryPlans;\n _.forEach(vm.deliveryPlans, function(plan){\n if(plan.confirmedDate === undefined)\n plan.confirmedDate = null;\n });\n vm.deliveryPlansCopy = angular.copy(vm.deliveryPlans);\n console.log(vm.deliveryPlans);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function doRecalculateDiffrence(plan){\n if(vm.recalculate){\n if(vm.isEditingPredicted)\n vm.recalculatedDifference = daysBetween(plan.predictedDate, vm.selectedDeliveryPlanCopy.predictedDate) * -1;\n else if(vm.isEditingConfirmed)\n vm.recalculatedDifference = daysBetween(plan.confirmedDate, vm.selectedDeliveryPlanCopy.predictedDate) * -1;\n }\n }\n\n function showDifferece(plan){\n return plan.index > vm.selectedDeliveryPlanCopy.index && vm.recalculate;\n }\n\n function treatAsUTC(date) {\n var result = new Date(date);\n result.setMinutes(result.getMinutes() - result.getTimezoneOffset());\n return result;\n }\n \n function daysBetween(startDate, endDate) {\n var millisecondsPerDay = 24 * 60 * 60 * 1000;\n return (treatAsUTC(endDate) - treatAsUTC(startDate)) / millisecondsPerDay;\n }\n\n function goBackToOrderView(){\n $state.go(\"order.ordersearch\", { orderId: vm.order.id });\n }\n\n function editingAny(){\n var isEdit = false;\n\n _.forEach(vm.deliveryPlansCopy, function(p){\n if(isSelected(p))\n isEdit = true;\n });\n\n return isEdit;\n }\n\n function isSelected(plan){\n if(vm.selectedDeliveryPlanCopy === {}) /// NO PLAN SELECTED\n return false;\n\n return vm.selectedDeliveryPlanCopy.id === plan.id;\n }\n\n function selectRow(plan){\n if(!isSelected(plan)){\n vm.selectedDeliveryPlanCopy = angular.copy(plan);\n }\n }\n\n function editPredicted(plan){\n console.log('succ');\n vm.selectedDeliveryPlanCopy = angular.copy(plan);\n vm.isEditingPredicted = true;\n plan.isEditing = true;\n }\n function editConfirmed(plan){\n console.log('succ');\n vm.selectedDeliveryPlanCopy = angular.copy(plan);\n vm.isEditingConfirmed = true;\n plan.isEditing = true;\n if(plan.confirmedDate === null)\n plan.confirmedDate = new Date();\n }\n function isLeadTime(plan){\n return OrderService.isLeadTimeDeliveryPlan(plan.links);\n } \n\n function canConfirm(plan){\n return OrderService.canConfirmDeliveryPlan(plan.links);\n }\n function canUndoConfirm(plan){\n return OrderService.canUndoConfirmDeliveryPlan(plan.links);\n }\n function canChangePredicted(plan){\n return OrderService.canChangePredictedDate(plan.links);\n }\n\n function savePlan(plan){\n console.log(plan.predictedDate);\n vm.isEditingPredicted = false;\n vm.isEditingConfirmed = false;\n plan.isEditing = false;\n vm.recalculatedDifference = 0;\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.saveOrderDeliveryPlan(plan, vm.orderId, vm.recalculate).then(function(response) {\n ToasterService.showSuccess(response.message);\n }, function(error){\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n\n reloadDeliveryPlan();\n vm.selectedDeliveryPlanCopy = {};\n });\n }\n function undoPlan(plan){\n vm.isEditingPredicted = false;\n vm.isEditingConfirmed = false;\n vm.recalculatedDifference = 0;\n\n reloadDeliveryPlan();\n vm.selectedDeliveryPlanCopy = {};\n }\n\n function editSavedPlan(plan){\n console.log(plan);\n selectRow(plan);\n plan.completed = false;\n }\n\n function formatDate(date) {\n if(date === null)\n return date;\n if(angular.isNumber(date)){\n date = new Date(date);\n }\n const offset = date.getTimezoneOffset()\n date = new Date(date.getTime() - (offset*60*1000))\n return date.toISOString().split('T')[0]\n }\n\n function getBackgroundColor(plan){\n var style = {};\n\n //if(plan.completed){\n // if(plan.index % 2 == 0)\n // style['background-color'] = 'rgb(235, 255, 235)';\n // else\n // style['background-color'] = 'rgb(225, 245, 225)';\n //}\n if(plan.index % 2 == 0)\n style['background-color'] = 'rgb(255, 255, 255)';\n else\n style['background-color'] = 'rgb(245, 245, 245)';\n\n if(isSelected(plan)){\n style['background-color'] = 'lightyellow';\n } \n return style;\n }\n\n function getPredictedBackgroundColor(plan){\n var style = {};\n\n if(vm.isLeadTime(plan)){\n if(daysBetween(plan.plannedDate, plan.predictedDate) > 0 && !isSelected(plan)){\n if(plan.index % 2 == 0)\n style['background-color'] = 'rgb(255, 225, 225)';\n else\n style['background-color'] = 'rgb(235, 215, 215)';\n }\n else if(daysBetween(plan.plannedDate, plan.predictedDate) < 0 && !isSelected(plan)){\n if(plan.index % 2 == 0)\n style['background-color'] = 'rgb(225, 255, 225)';\n else\n style['background-color'] = 'rgb(215, 235, 215)';\n }\n }\n\n return style;\n }\n function getPredictedButtonBackgroundColor(plan){\n var style = {};\n\n if(daysBetween(plan.plannedDate, plan.predictedDate) > 0 && !isSelected(plan)){\n style['background-color'] = 'rgb(255, 245, 245)';\n }\n\n return style;\n }\n function getConfirmedBackgroundColor(plan){\n var style = {};\n\n if(vm.isLeadTime(plan)){\n if(daysBetween(plan.predictedDate, plan.confirmedDate) > 0 && !isSelected(plan)){\n if(plan.index % 2 == 0)\n style['background-color'] = 'rgb(255, 225, 225)';\n else\n style['background-color'] = 'rgb(235, 215, 215)';\n }\n else if(daysBetween(plan.predictedDate, plan.confirmedDate) <= 0 && !isSelected(plan)){\n if(plan.index % 2 == 0)\n style['background-color'] = 'rgb(225, 255, 225)';\n else\n style['background-color'] = 'rgb(215, 235, 215)';\n }\n }\n else if(plan.completed){\n if(plan.index % 2 == 0)\n style['background-color'] = 'rgb(225, 255, 225)';\n else\n style['background-color'] = 'rgb(215, 235, 215)';\n }\n\n return style;\n }\n}\n\nangular\n.module('order.deliveryPlanning', [])\n.config(stateConfig)\n.controller('OrderDeliveryPlanningController', OrderDeliveryPlanningController);","// @ngInject\nfunction OrdersApiService($q, $window, $cookies, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'orders';\n\n return {\n approveOrder: approveOrder,\n createMultipleInternalOrders: ResourcesService.apiFactory.create(endpoint + '/multipleinternal', 'InternalOrder'),\n createPurchaseOrder: createPurchaseOrder,\n createWholeOrder: createWholeOrder,\n deleteOrder: ResourcesService.apiFactory.delete(endpoint, 'Order'),\n deleteOrders: deleteOrders,\n deliverOrder: deliverOrder,\n deliverOrderWithDate: deliverOrderWithDate,\n deliverPartially: deliverPartially,\n downloadAsPdf: downloadAsPdf,\n downloadAsCsv: downloadAsCsv,\n downloadDeliveryDocument: downloadDeliveryDocument,\n downloadLabels: downloadLabels,\n downloadLabelsForDate: downloadLabelsForDate,\n downloadPickingList: downloadPickingList,\n downloadTransitReport: downloadTransitReport,\n getAll: getAll,\n getArticleCollections: ResourcesService.apiFactory.get(endpoint + '/articlecollections'),\n getById: getById,\n getByOrderNumber: ResourcesService.apiFactory.get(endpoint + '/ordernumber/'),\n getCompanies: ResourcesService.apiFactory.get(endpoint + '/companies'),\n getCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies/'),\n getCurrencyDefault: ResourcesService.apiFactory.get(endpoint + '/currencies/default'),\n getDeliveryTerms: ResourcesService.apiFactory.get(endpoint + '/deliveryterms/'),\n getDeliveryDates: getDeliveryDates,\n getWholeDeliveryDates: getWholeDeliveryDates,\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getLocationsDependingOnUser: ResourcesService.apiFactory.get(endpoint + '/userlocations'),\n getMultipleOrderPdf: getMultipleOrderPdf,\n getMultipleOrderCsv: getMultipleOrderCsv,\n getMultipleOrderPickingListPdf: getMultipleOrderPickingListPdf,\n getOrderArticlesForBarcodes: getOrderArticlesForBarcodes,\n getOrderCollections: ResourcesService.apiFactory.get(endpoint + '/ordercollections'),\n getOrderCollectionById: ResourcesService.apiFactory.get(endpoint + '/ordercollection'),\n getOrderTypes: ResourcesService.apiFactory.get('/types/order'),\n getPacksForArticle: ResourcesService.apiFactory.get(endpoint + '/packsforarticle'),\n getPurchaseOrder: ResourcesService.apiFactory.get(endpoint + '/purchaseorders'),\n getPurchaseOrders: getPurchaseOrders,\n getResellerPriceList: ResourcesService.apiFactory.get(endpoint + '/resellerpricelist'),\n getStockForArticle: getStockForArticle,\n getStores: ResourcesService.apiFactory.get(endpoint + '/stores'),\n getUsers: ResourcesService.apiFactory.get(endpoint + '/users/'),\n markAsUndelivered: markAsUndelivered,\n markAsDelivered: markAsDelivered,\n updatePurchaseOrder: updatePurchaseOrder,\n updateOrderNote: updateOrderNote,\n updateWholeOrder: updateWholeOrder,\n getStocksForArticleVariants: getStocksForArticleVariants,\n getOrderDeliveryPlan: getOrderDeliveryPlan,\n saveOrderDeliveryPlan: saveOrderDeliveryPlan,\n getDeliveryPlanningTemplate: getDeliveryPlanningTemplate,\n saveMainComment: saveMainComment,\n isDeliveryPlanningEnabled: ResourcesService.apiFactory.get(endpoint + '/isdeliveryplanningenabled'),\n };\n\n function saveMainComment(mainCommentData) {\n var deferred = $q.defer();\n \n var sendMainCommentData = angular.copy(mainCommentData);\n\n var jsonData = JSON.stringify(sendMainCommentData);\n \n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'orders/savemaincomment',jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getDeliveryPlanningTemplate(templateId, orderPlannedDate, deliveryTermsId){\n var deferred = $q.defer();\n\n var params = {}\n params.orderPlannedDeliveryDate = orderPlannedDate;\n params.templateId = templateId;\n params.deliveryTermsId = deliveryTermsId;\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/getdeliveryplanningtemplate', {params : params}).then(function(response){\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function saveOrderDeliveryPlan(plan, orderId, doRecalculate){\n var deferred = $q.defer();\n\n var planData = {\n id : plan.id,\n confirmedDate : plan.confirmedDate,\n predictedDate : plan.predictedDate,\n user : plan.user,\n comment : plan.comment,\n recalculate : doRecalculate\n };\n\n var sendPlanData = angular.copy(planData);\n\n var confirmedDate = sendPlanData.confirmedDate;\n var predictedDate = sendPlanData.predictedDate;\n \n if(confirmedDate !== null){\n confirmedDate = new Date(confirmedDate);\n sendPlanData.confirmedDate = new Date(Date.UTC(confirmedDate.getFullYear(), confirmedDate.getMonth(), confirmedDate.getDate()));\n }\n predictedDate = new Date(predictedDate);\n sendPlanData.predictedDate = new Date(Date.UTC(predictedDate.getFullYear(), predictedDate.getMonth(), predictedDate.getDate()));\n\n var jsonData = JSON.stringify(sendPlanData);\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'orders/' + orderId + '/savedeliveryplanning', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getOrderDeliveryPlan(orderId){\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/deliveryplanning/' + orderId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise; \n }\n\n function getStockForArticle(articleId, locationId) {\n var deferred = $q.defer();\n var params = {\n articleId: articleId,\n locationId: locationId\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/article/' + articleId + '/location/' + locationId + '/stock', { params: params }).then(function getAllOrders(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createPurchaseOrder(purchaseOrder) {\n var deferred = $q.defer();\n\n console.log(\"Sending the following purchase order data:\");\n console.log(purchaseOrder);\n\n var jsonRequest = JSON.stringify(purchaseOrder);\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/purchaseorder', jsonRequest).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createWholeOrder(order, barcodesList, modifiedDeliveryPlanningTemplate) {\n var deferred = $q.defer();\n\n // To prevent the Json stringification from do any timezone conversion.\n var sendOrderData = angular.copy(order);\n var date = sendOrderData.plannedDeliveryDate;\n date = new Date(date);\n sendOrderData.plannedDeliveryDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n\n if((modifiedDeliveryPlanningTemplate !== undefined && modifiedDeliveryPlanningTemplate.stages !== undefined) ? modifiedDeliveryPlanningTemplate.stages.length : 0 > 0){\n _.forEach(modifiedDeliveryPlanningTemplate.stages, function(stage){\n var newStageDate = stage.plannedDate;\n newStageDate = new Date(newStageDate);\n stage.plannedDate = new Date(Date.UTC(newStageDate.getFullYear() ,newStageDate.getMonth() ,newStageDate.getDate()));\n })\n }\n\n var requestObject = {\n order: sendOrderData,\n barcodes: (barcodesList !== undefined) ? barcodesList : [],\n deliveryPlanningStages: (modifiedDeliveryPlanningTemplate !== undefined) ? modifiedDeliveryPlanningTemplate.stages : null\n };\n\n var jsonRequest = JSON.stringify(requestObject);\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/completeorder', jsonRequest).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteOrders(orderIds) {\n var deferred = $q.defer();\n\n console.log(\"OrderIds are:\");\n console.log(orderIds);\n\n var request = {\n orderIds: orderIds\n };\n\n var params = {\n orderIds: orderIds\n };\n\n DSHttpAdapter.DEL(DS.defaults.basePath + 'orders/', {params: params}).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverOrder(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + '/deliver').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getDeliveryDates(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + '/deliverydates').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function getWholeDeliveryDates(orderId, timeProximity, timeType) {\n var deferred = $q.defer();\n \n var params = {};\n\n if(timeProximity && timeProximity >= 0){\n params.timeProximity = timeProximity;\n }\n\n if(timeType && timeType >= 0){\n params.timeType = timeType;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + '/deliverydates/whole', {params: params}).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverOrderWithDate(orderId, date) {\n var deferred = $q.defer();\n\n var delivery = { deliveryDate: date };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/' + orderId + '/deliver', delivery).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.resolve(handleError);\n });\n\n return deferred.promise;\n }\n\n function deliverPartially(order) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/' + order.id + '/deliverpartially', order).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadAsPdf(id) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + id + '/aspdf', { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'order.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadAsCsv(id) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + id + '/ascsv', { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'text/csv'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'order.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMultipleOrderPdf(ids) {\n var deferred = $q.defer();\n\n var request = {\n orderIds: ids\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/aspdf', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'order.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMultipleOrderCsv(ids){\n var deferred = $q.defer();\n\n var request = {\n orderIds: ids\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/ascsv', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'text/csv'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'order.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMultipleOrderPickingListPdf(incomingRequest) {\n var deferred = $q.defer();\n\n var request = {\n orderIds: incomingRequest.orderIds,\n includeStorageLocation: incomingRequest.includeStorageLocation,\n includeIsPhotographed: incomingRequest.includeIsPhotographed,\n locale: incomingRequest.languageCode,\n grouping: incomingRequest.grouping\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/pickinglist/aspdf', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'pickinglist.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadDeliveryDocument(id, startDate, endDate) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + id + '/delivery/aspdf' + '?startDate=' + startDate + '&endDate=' + endDate, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, startDate !== undefined ? 'orderdelivery_' + startDate + '.pdf' : 'orderdelivery.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadTransitReport(reportParameters) {\n var url = $window.URL || $window.webkitURL;\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/transitReport', reportParameters, { responseType: 'arraybuffer' }).then(function (response) {\n //If 204 the call returned no result/empty list don't return a downloadable file\n if (response && response.status === 204) {\n deferred.resolve(response);\n return deferred.promise;\n }\n\n //\"attachment; filename=stockpickinglist20190110.pdf\"\n var blob = new Blob([response.data], { type: 'text/csv' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'TransitReport.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadPickingList(incomingRequest) {\n var deferred = $q.defer();\n\n var request = {\n orderId: incomingRequest.orderId,\n includeStorageLocation: incomingRequest.includeStorageLocation,\n includeIsPhotographed: incomingRequest.includeIsPhotographed,\n includePrices : incomingRequest.includePrices,\n locale: incomingRequest.languageCode,\n grouping: incomingRequest.grouping\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/' + incomingRequest.orderId + '/pickinglist/aspdf', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], { type: 'application/pdf' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'pickinglist.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36012-36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s-_]){1,}.(pdf|csv|xls|xlsx)/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function downloadLabels(orderId, orderNumber) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + '/labels', { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, orderNumber !== undefined ? 'label_' + orderNumber + '.pdf' : 'label.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadLabelsForDate(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/labels', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, request.orderNumber !== undefined ? 'label_' + request.orderNumber + '.pdf' : 'label.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getAll(searchTerms) {\n var deferred = $q.defer();\n var params = {};\n\n if (searchTerms.page && searchTerms.page < 0) {\n searchTerms.page = 1;\n }\n\n if (searchTerms.limit && searchTerms.limit > 0) {\n params.limit = searchTerms.limit;\n }\n\n if (!_.isEmpty(searchTerms.searchTerm)) {\n params.searchTerm = searchTerms.searchTerm;\n }\n\n params.page = searchTerms.page;\n params.orderTypes = searchTerms.orderTypes;\n params.onlyUndelivered = searchTerms.showUndeliveredOnly;\n params.onlyUnprinted = searchTerms.showUnprintedOnly;\n params.onlyUnapproved = searchTerms.showUnapprovedOnly;\n params.onlyOrderNumber = searchTerms.onlyOrderNumber;\n params.monthBack = searchTerms.monthBack;\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders', { params: params }).then(function getAllOrders(response) {\n deferred.resolve(response.data.data);\n }, function getAllOrdersError(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getById(id) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + id + \"/new\").then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getPurchaseOrders(page, filter, pageSize, wantedTypes, onlyUndelivered) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n params.orderTypes = wantedTypes;\n params.onlyUndelivered = onlyUndelivered;\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/purchaseorders', {params: params}).then(function getAllOrders(response) {\n deferred.resolve(response);\n }, function getAllOrdersError(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function markAsUndelivered(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + \"/markasundelivered\").then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateOrderNote(orderId, note, externalOrderReference) {\n var deferred = $q.defer();\n\n var request = {\n note: note,\n externalOrderReference: externalOrderReference\n };\n\n var jsonData = JSON.stringify(request);\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'orders/' + orderId + \"/notes\", jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function markAsDelivered(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + \"/markasdelivered\").then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n \n function approveOrder(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'orders/' + orderId + \"/approve\").then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updatePurchaseOrder(purchaseOrder) {\n var deferred = $q.defer();\n\n var jsonData = JSON.stringify(purchaseOrder);\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'orders/purchaseorder/', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateWholeOrder(orderData) {\n var deferred = $q.defer();\n\n // To prevent the Json stringification from do any timezone conversion.\n var sendOrderData = angular.copy(orderData);\n var date = sendOrderData.plannedDeliveryDate;\n\n date = new Date(date);\n\n sendOrderData.plannedDeliveryDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n\n var jsonorder = JSON.stringify(sendOrderData);\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'orders/', jsonorder).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getStocksForArticleVariants(articleVariantIds, locationIds) {\n var deferred = $q.defer();\n\n var request = {\n articleVariantIds: articleVariantIds,\n locationIds: locationIds\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/stock', request).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getOrderArticlesForBarcodes(barcodes, companyId, currencyId, currencyRate) {\n var deferred = $q.defer();\n\n var request = {\n barcodes: barcodes,\n companyId: companyId,\n currencyId: currencyId,\n currencyRate: currencyRate\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'orders/getorderarticlesforbarcodes', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('orders.api', [])\n .factory('OrdersApiService', OrdersApiService);\n","angular.module('components.caOrderArticleDeliveries', [])\n .component('caOrderArticleDeliveries', {\n templateUrl: 'main/order/ordersearch/components/orderarticledeliveries.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderArticle: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($translate) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.toggleDisplay = toggleDisplay;\n\n vm.deliveryRows = [];\n vm.displayComponent = false;\n vm.translateDeliveryRowType = translateDeliveryRowType;\n\n function onInit() {\n }\n function onChanges(changes) {\n if (changes.orderArticle &&\n changes.orderArticle.currentValue) {\n vm.deliveryRows = [];\n _.forEach(vm.orderArticle.orderRows, function(orderRow) {\n _.forEach(orderRow.deliveryRows, function(deliveryRow) {\n if (deliveryRow.stockTransaction) { //} && deliveryRow.deliveryRowType === \"deliveryIn\") {\n vm.deliveryRows.push(deliveryRow);\n deliveryRow.articleVariant = orderRow.articleVariant;\n }\n\n });\n });\n vm.deliveryRows = _.orderBy(vm.deliveryRows, function(deliveryRow) {\n var orderBy = deliveryRow.articleVariant.variantDetail1.variantDetailName + '-' + deliveryRow.articleVariant.variantDetail2.sortOrder.toString();\n\n if (deliveryRow.stockTransaction) {\n orderBy = deliveryRow.stockTransaction.accountingDate.split('T')[0] + '-' + orderBy;\n }\n\n return orderBy;\n });\n }\n }\n function onDestroy() {\n\n }\n\n function toggleDisplay() {\n vm.displayComponent = !vm.displayComponent;\n }\n\n function translateDeliveryRowType(rowType) {\n switch (rowType.toLowerCase()) {\n case 'deliveryout':\n return $translate.instant('order.deliveryTypeOut');\n case 'deliveryin':\n return $translate.instant('order.deliveryTypeIn');\n case 'transit':\n return $translate.instant('order.deliveryTypeTransit');\n }\n }\n}\n","angular.module('components.caOrderArticleRows', [])\n .component('caOrderArticleRows', {\n templateUrl: 'main/order/ordersearch/components/orderarticlerows.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderArticle: '<',\n order: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($translate) {\n var vm = this;\n\n //Properties\n var flexGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n var articleVariants = [];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.gridPostInitialization = gridPostInitialization;\n\n function onInit() {\n }\n function onChanges(changes) {\n if (changes.orderArticle &&\n changes.orderArticle.currentValue &&\n changes.orderArticle.currentValue !== changes.orderArticle.previousValue) {\n if (!changes.orderArticle.previousValue ||\n changes.orderArticle.currentValue.id !== changes.orderArticle.previousValue.id) {\n flexGrid = {};\n rowData = [];\n rowCollection = new wijmo.collections.CollectionView(rowData);\n articleVariants = [];\n\n vm.flexGridData = { destinations: [{locationName: (vm.order.destination) ? vm.order.destination.locationName : vm.order.fromLocation.locationName}] };\n\n _.forEach(vm.orderArticle.orderRows, function(orderRow) {\n if (!orderRow.summarizedDeliveredQuantity) { orderRow.summarizedDeliveredQuantity = 0; }\n orderRow.summarizedDeliveredQuantity = orderRow.deliveryRows && orderRow.deliveryRows.length > 0 ? _.sumBy(orderRow.deliveryRows, function(dr) {\n return dr.systemStatus.toLowerCase() === 'delivered' && dr.deliveryRowType === 'deliveryIn' ? dr.quantity : 0;\n }) : 0;\n orderRow.articleVariant.summarizedDeliveredQuantity = orderRow.summarizedDeliveredQuantity;\n\n if (!orderRow.summarizedOutdeliveredQuantity) { orderRow.summarizedOutdeliveredQuantity = 0; }\n orderRow.summarizedOutdeliveredQuantity = orderRow.deliveryRows && orderRow.deliveryRows.length > 0 ? _.sumBy(orderRow.deliveryRows, function(dr) {\n return dr.systemStatus.toLowerCase() === 'delivered' && dr.deliveryRowType === 'deliveryOut' ? dr.quantity : 0;\n }) : 0;\n orderRow.articleVariant.summarizedOutdeliveredQuantity = orderRow.summarizedOutdeliveredQuantity;\n\n orderRow.articleVariant.quantity = orderRow.quantity;\n articleVariants.push(orderRow.articleVariant);\n });\n }\n }\n }\n function onDestroy() {\n\n }\n\n function gridPostInitialization(sender, e, locationName) {\n flexGrid = sender;\n flexGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n frozenColumns: 2,\n itemsSource: rowCollection\n });\n\n setupGrid();\n loadGridData('Quantity');\n }\n\n function setupGrid() {\n rowData.length = 0;\n flexGrid.finishEditing(true);\n flexGrid.columns.clear();\n flexGrid.invalidate();\n rowCollection.refresh();\n initializeGridColumns();\n }\n\n function initializeGridColumns() {\n // Add first row header column\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"variantDetails1Name\";\n rowHeader.header = ' ';\n rowHeader.allowSorting = false;\n rowHeader.allowResizing = true;\n rowHeader.width = 200;\n rowHeader.minWidth = 100;\n rowHeader.isReadOnly = true;\n flexGrid.columns.push(rowHeader);\n\n var columns = getDataColumns();\n\n if (columns.length > 1) {\n var rowTotal = new wijmo.grid.Column();\n rowTotal.binding = \"rowTotalString\";\n rowTotal.header = $translate.instant('customerorder.totalquantity');\n rowTotal.allowSorting = false;\n rowTotal.allowResizing = true;\n rowTotal.width = 100;\n rowTotal.minWidth = 100;\n rowTotal.isReadOnly = true;\n rowTotal.align = \"right\";\n flexGrid.columns.push(rowTotal);\n }\n\n // Add dynamic columns\n _.forEach(columns, function (variantDetail) {\n var c = new wijmo.grid.Column();\n c.binding = variantDetail.variantDetailName;\n c.header = variantDetail.variantDetailName;\n c.width = '*';\n c.minWidth = 100;\n c.allowSorting = false;\n c.allowResizing = true;\n c.inputType = 'text';\n c.isReadOnly = true;\n c.align = \"right\";\n flexGrid.columns.push(c);\n });\n }\n\n function getDataColumns() {\n var columns = [];\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(articleVariants, function(variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function(newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function loadGridData(type) {\n var variantRows = _.groupBy(articleVariants, function(variant) {\n return variant.variantDetail1.id;\n });\n _.forEach(variantRows, function(variantRowValues) {\n var r = {\n rowTotal: 0,\n rowTotalDeliveredQuantity: 0,\n rowTotalString: ''\n };\n _.forEach(variantRowValues, function(variantRowValue) {\n r.variantDetails1Name = variantRowValue.variantDetail1.variantDetailName;\n\n r.variantExternalId = variantRowValue.externalId;\n\n var deliveredQuantity = variantRowValue.summarizedDeliveredQuantity;\n if (vm.order.orderType.orderSystemType === 'return') { deliveredQuantity = Math.abs(variantRowValue.summarizedOutdeliveredQuantity); }\n r.rowTotalDeliveredQuantity += deliveredQuantity;\n\n r[variantRowValue.variantDetail2.variantDetailName] =\n variantRowValue['quantity'].toString() + \" (\" + deliveredQuantity + \")\";\n\n r.rowTotal += variantRowValue['quantity'];\n });\n r.rowTotalString = r.rowTotal.toString() + ' (' + r.rowTotalDeliveredQuantity.toString() + ')';\n rowData.push(r);\n });\n rowCollection.refresh();\n }\n}\n","angular.module('components.caOrderContent', [])\n .component('caOrderContent', {\n templateUrl: 'main/order/ordersearch/components/ordercontent.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n order: '<',\n links: '<'\n },\n controller: controller\n })\n\n// @ngInject\nfunction controller(OrdersApiService, OrderService, AuthService, deliveryDocumentDownloadDialogService, ToasterService, loadSpinnerService, $translate, $state, confirmationDialogService, labelPrintingDialogService, updateOrderNoteDialogService, printPickingListDialogService, $rootScope) {\n var vm = this;\n vm.canAccess = AuthService.canAccess;\n\n //Properties\n vm.abs = Math.abs;\n vm.labelPrintingDialogVisible = false;\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim();\n vm.sortContentBy = undefined;\n vm.sortContentReverse = undefined;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.scrollToSection = scroll;\n vm.goToOrderDelivery = goToOrderDelivery;\n vm.goToDeliveryPlanning = goToDeliveryPlanning;\n vm.getOrderAsPdf = getOrderAsPdf;\n vm.getOrderAsCsv = getOrderAsCsv;\n vm.canDeliverIn = canDeliverIn;\n vm.canEditOrder = canEditOrder;\n vm.isDeliveryPlanningEnabled = isDeliveryPlanningEnabled;\n vm.getOrderLabels = getOrderLabels;\n vm.deleteOrder = deleteOrder;\n vm.canDeleteOrder = canDeleteOrder;\n vm.canCopyOrder = canCopyOrder;\n vm.downloadDeliveryDocument = downloadDeliveryDocument;\n vm.showLabelPrintingDialog = showLabelPrintingDialog;\n vm.showPrintPickingListDialog = showPrintPickingListDialog;\n vm.selectOrderArticle = selectOrderArticle;\n vm.goToModifyOrder = goToModifyOrder;\n vm.goToCopyOrder = goToCopyOrder;\n vm.shouldShowFromLocation = shouldShowFromLocation;\n vm.shouldShowSupplier = shouldShowSupplier;\n vm.shouldShowDestination = shouldShowDestination;\n vm.updateOrderNote = updateOrderNote;\n vm.calculateDeliveredCost = calculateDeliveredCost;\n\n\n function onInit() {\n // Default to the only orderArticle if there's only one in the order.\n if (vm.order.orderArticles.length === 1) {\n vm.selectOrderArticle(vm.order.orderArticles[0]);\n }\n }\n function onChanges(changes) {\n\n }\n function onDestroy() {\n\n }\n\n function shouldShowSupplier() {\n return vm.order.orderType.orderSystemType === 'store' || vm.order.orderType.orderSystemType === 'automatic' || vm.order.orderType.orderSystemType === 'return';\n }\n function shouldShowFromLocation() {\n return vm.order.orderType.orderSystemType === 'internal' || vm.order.orderType.orderSystemType === 'automaticInternal' || vm.order.orderType.orderSystemType === 'return';\n }\n function shouldShowDestination() {\n return vm.order.orderType.orderSystemType !== 'return';\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n function updateOrderNote() {\n var order = vm.order;\n updateOrderNoteDialogService.showDialog(order.id, order.orderNote, order.orderNumberExternal).then(function (response) {\n if (response.success === true) {\n vm.order.orderNote = response.note;\n vm.order.orderNumberExternal = response.orderNumberExternal;\n }\n });\n }\n\n function goToModifyOrder() {\n $state.go('order.modifyorder', { orderId: vm.order.id });\n }\n\n function goToCopyOrder() {\n $state.go('order.copyorder', { orderId: vm.order.id });\n }\n\n function selectOrderArticle(article) {\n vm.selectedOrderArticle = article;\n }\n\n function goToOrderDelivery() {\n $state.go(\"order.orderdelivery\", { orderId: vm.order.id });\n }\n\n function goToDeliveryPlanning() {\n $state.go(\"order.deliveryPlanning\", { orderId: vm.order.id });\n }\n\n function canDeliverIn() {\n return OrderService.canDeliverOrder(vm.links);\n }\n\n function isDeliveryPlanningEnabled() {\n return OrderService.isDeliveryPlanningEnabled(vm.links);\n }\n\n function canEditOrder() {\n return OrderService.canEditOrder(vm.links);\n }\n\n function canDeleteOrder() {\n return OrderService.canDeleteOrder(vm.links);\n }\n\n function canCopyOrder() {\n return OrderService.canCopyOrder(vm.links);\n }\n\n function getOrderAsPdf() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadAsPdf(vm.order.id).then(function (response) {\n }, function (error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getOrderAsCsv(){\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadAsCsv(vm.order.id).then(function (response) {\n }, function (error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getOrderLabels() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadLabels(vm.order.id, vm.order.orderNumber).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteOrder() {\n confirmationDialogService.showDialog($translate.instant('order.confirmDeleteOrder')).then(function (result) {\n if (result === true) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.deleteOrder(vm.order.id).then(function (response) {\n ToasterService.showSuccess($translate.instant('order.orderDeleted'), $translate.instant('order.order'));\n $state.go('order.ordersearch', null, { reload: true });\n }, function (error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function downloadDeliveryDocument() {\n deliveryDocumentDownloadDialogService.showDialog(vm.order.id).then(function (result) {\n });\n }\n\n function showLabelPrintingDialog() {\n labelPrintingDialogService.showDialog(vm.order);\n }\n\n function showPrintPickingListDialog() {\n printPickingListDialogService.showDialog().then(function (result) {\n if (result.result === true) {\n var request = {\n orderId: vm.order.id,\n includeStorageLocation: result.includeStorageLocation,\n includeIsPhotographed: result.includeIsPhotographed,\n includePrices: result.includePrices,\n languageCode: result.languageCode,\n grouping: result.grouping\n };\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadPickingList(request).then(function (response) {\n }, function (error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function calculateDeliveredCost(item) {\n var deliveredCost = 0;\n _.forEach(item.orderRows, function (oRow) {\n if (oRow.deliveryRows) {\n _.forEach(oRow.deliveryRows, function (dRow) {\n if (dRow.systemStatus.toLowerCase() === 'delivered') {\n deliveredCost += dRow.quantity * oRow.purchaseCost;\n }\n });\n }\n });\n item.summarizedDeliveredCost = deliveredCost;\n return deliveredCost;\n }\n}\n","angular.module('components.caOrderSearchResult', [])\n .component('caOrderSearchResult', {\n templateUrl: 'main/order/ordersearch/components/ordersearchresult.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orders: '=',\n searchTerm: '=',\n currentPage: '=',\n totalItems: '=',\n limit: '=',\n orderTypes: '=',\n showUndeliveredOnly: '=',\n showUnprintedOnly: '=',\n showUnapprovedOnly: '=',\n useScannerNavigation: '=',\n onSearchTermChanged: '&',\n onOrderSelected: '&'\n },\n controller: ['OrdersApiService', 'ToasterService', 'loadSpinnerService', '$translate', '$scope', '$state', '$window', 'confirmationDialogService', '$rootScope', 'printPickingListDialogService', controller]\n });\n\n// @ngInject\nfunction controller(OrdersApiService, ToasterService, loadSpinnerService, $translate, $scope, $state, $window, confirmationDialogService, $rootScope, printPickingListDialogService) {\n var vm = this;\n\n //Properties\n var flexGridCurrentlySelectedItem = {};\n var orderSearchGrid = {};\n var wijmo = $window.wijmo;\n var showAllOrderTypes = false;\n vm.scannerInput = '';\n vm.contextMenuVisibility = {};\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim();\n\n //vm.monthsBack = null;\n vm.useMonthsBack = false;\n vm.monthsOptions = [1, 2, 4, 12, 18, 24, 36, 48];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.searchTermChanged = searchTermChanged;\n vm.transitionToState = transitionToState;\n vm.gridInitialization = gridInitialization;\n vm.gridSelectionChanged = gridSelectionChanged;\n vm.shouldShowInventoryReasonHeader = shouldShowInventoryReasonHeader;\n vm.shouldShowFromLocation = shouldShowFromLocation;\n vm.shouldShowSupplier = shouldShowSupplier;\n vm.shouldShowDestination = shouldShowDestination;\n vm.changeToStoreOrderSearch = changeToStoreOrderSearch;\n vm.changeToInternalOrderSearch = changeToInternalOrderSearch;\n vm.changeToAutoOrderSearch = changeToAutoOrderSearch;\n vm.changeToAutoOrderNormalSearch = changeToAutoOrderNormalSearch;\n vm.changeToAutoOrderInternalSearch = changeToAutoOrderInternalSearch;\n vm.changeToInventoryOrderSearch = changeToInventoryOrderSearch;\n vm.changeToReturnOrderSearch = changeToReturnOrderSearch;\n vm.changeToAllOrderSearch = changeToAllOrderSearch;\n vm.contextMenuEdit = contextMenuEdit;\n vm.contextMenuDeliver = contextMenuDeliver;\n vm.contextMenuCopy = contextMenuCopy;\n vm.contextMenuGetAsPdf = contextMenuGetAsPdf;\n vm.contextMenuGetAsCsv = contextMenuGetAsCsv;\n vm.contextMenuPrintLabel = contextMenuPrintLabel;\n vm.contextMenuDelete = contextMenuDelete;\n vm.contextMenuUndo = contextMenuUndo;\n vm.absolute = absolute;\n vm.togglePrintMode = togglePrintMode;\n vm.printSelectedOrders = printSelectedOrders;\n vm.printSelectedOrdersCsv = printSelectedOrdersCsv;\n vm.printSelectedOrderPickingLists = printSelectedOrderPickingLists;\n vm.deleteSelectedOrders = deleteSelectedOrders;\n vm.isAllowedToDeleteSelected = isAllowedToDeleteSelected;\n\n function onInit() {\n $window.addEventListener('click', hideContextMenuListener); // Cancel the context menu by clicking outside of it.\n setContextMenuShowAll();\n\n if (vm.useScannerNavigation) {\n angular.element(\"#scannerField\").focus();\n }\n\n $(\"#scannerField\").keydown(function (e) {\n var enterKeyCode = 13;\n if (e !== undefined && e.keyCode === enterKeyCode) {\n enterOrderByScannedBarcode(vm.scannerInput);\n }\n });\n activate();\n }\n function onChanges(changes) {\n\n }\n function onDestroy() {\n\n }\n function activate() {\n setInitialOrderTypes();\n\n $scope.$watch(function () { return vm.showUndeliveredOnly; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n searchTermChanged();\n }\n });\n\n $scope.$watch(function () { return vm.onlyOrderNumber; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if(newValue){vm.onlyScan = false;}\n }\n });\n\n $scope.$watch(function () { return vm.onlyScan; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if(newValue){vm.onlyOrderNumber = false;}\n }\n });\n\n $scope.$watch(function () { return vm.monthsBack; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (vm.useMonthsBack)\n searchTermChanged();\n }\n });\n\n $scope.$watch(function () { return vm.useMonthsBack; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (!vm.useMonthsBack)\n vm.monthsBack = null;\n else\n vm.monthsBack = 12; // Default to 12 months\n\n searchTermChanged();\n }\n });\n $scope.$watch(function () { return vm.showUnprintedOnly; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n searchTermChanged();\n }\n });\n\n $scope.$watch(function () { return vm.showUnapprovedOnly; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n searchTermChanged();\n }\n });\n }\n\n function setInitialOrderTypes() {\n if (_.differenceWith(['Store', 'Internal', 'Automatic', 'AutomaticInternal', 'Inventory', 'Return'], vm.orderTypes, _.isEqual).length === 0) {\n showAllOrderTypes = true;\n vm.currentOrderListing = 'all';\n } else if (_.differenceWith(['Automatic'], vm.orderTypes, _.isEqual).length === 0) {\n showAllOrderTypes = false;\n vm.currentOrderListing = 'auto';\n } else if (_.differenceWith(['AutomaticInternal'], vm.orderTypes, _.isEqual).length === 0) {\n showAllOrderTypes = false;\n vm.currentOrderListing = 'autointernal';\n } else if (_.differenceWith(['Inventory'], vm.orderTypes, _.isEqual).length === 0) {\n showAllOrderTypes = false;\n } else if (_.differenceWith(['Return'], vm.orderTypes, _.isEqual).length === 0) {\n showAllOrderTypes = false;\n vm.currentOrderListing = 'return';\n } else if (_.differenceWith(vm.orderTypes, ['Internal'], _.isEqual).length === 0) {\n showAllOrderTypes = false;\n vm.currentOrderListing = 'internal';\n } else {\n //['Store']\n showAllOrderTypes = false;\n vm.currentOrderListing = 'store';\n }\n }\n\n function searchTermChanged() {\n if (vm.searchTerm !== undefined) {\n vm.onSearchTermChanged({\n searchTerms: {\n searchTerm: vm.searchTerm,\n currentPage: vm.currentPage,\n totalItems: vm.totalItems,\n limit: vm.limit,\n orderTypes: vm.orderTypes,\n showUndeliveredOnly: vm.showUndeliveredOnly,\n showUnprintedOnly: vm.showUnprintedOnly,\n showUnapprovedOnly: vm.showUnapprovedOnly,\n onlyOrderNumber: vm.onlyOrderNumber,\n monthsBack: vm.monthsBack\n }\n });\n }\n }\n\n function havePurchaseCostClaim() {\n if (vm.currentUserClaims.seepurchasecost === undefined) {\n return false\n }\n\n if (!vm.currentUserClaims.seepurchasecost.read) {\n return false\n }\n\n return true\n }\n\n function togglePrintMode(printModeType) {\n vm.showSelection = !vm.showSelection;\n if (printModeType !== undefined) {\n vm.printModeType = printModeType;\n } else {\n vm.printModeType = \"none\";\n }\n }\n\n function disablePrintMode() {\n vm.showSelection = false;\n vm.printModeType = \"none\";\n }\n\n function getSelectedOrderIds() {\n var ids = [];\n _.forEach(vm.orders, function (order) {\n if (order.isSelected) {\n ids.push(order.id);\n }\n });\n return ids;\n }\n\n function printSelectedOrders() {\n var ids = getSelectedOrderIds();\n if (ids.length !== 0) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getMultipleOrderPdf(ids).then(function (response) {\n }, function (error) {\n console.log(error);\n }).finally(function () {\n disablePrintMode();\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n disablePrintMode();\n }\n }\n\n function printSelectedOrdersCsv() {\n var ids = getSelectedOrderIds();\n if (ids.length !== 0) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getMultipleOrderCsv(ids).then(function (response) {\n }, function (error) {\n console.log(error);\n }).finally(function () {\n disablePrintMode();\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n disablePrintMode();\n }\n }\n\n function deleteSelectedOrders() {\n var ids = getSelectedOrderIds();\n var allowedToDelete = isAllowedToDeleteSelected();\n\n if (ids.length !== 0 && allowedToDelete) {\n\n confirmationDialogService.showDialog($translate.instant('order.confirmDeleteOrders')).then(function (result) {\n if (result === true) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.deleteOrders(ids).then(function (response) {\n vm.orders = _.reject(vm.orders, function (order) {\n if (_.find(ids, function (id) { return order.id === id; })) {\n return true;\n }\n });\n orderSearchGrid.itemsSource = vm.orders;\n orderSearchGrid.invalidate();\n orderSearchGrid.collecitonView.refresh();\n }, function (error) {\n console.log(error);\n }).finally(function () {\n disablePrintMode();\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n\n } else if (!allowedToDelete) {\n ToasterService.showError('order.cannotDeleteOrders');\n } else {\n disablePrintMode();\n }\n }\n\n function isAllowedToDeleteSelected() {\n var orderIds = getSelectedOrderIds();\n var allowedToDelete = areAllOrdersDeleteable(orderIds);\n return allowedToDelete;\n }\n\n function areAllOrdersDeleteable(orderIds) {\n var isDeleteable = true;\n if (orderIds.length === 0) { return false; }\n\n var orders = _.filter(vm.orders, function (order) {\n return _.some(orderIds, function (orderId) { return order.id === orderId; });\n });\n\n _.forEach(orders, function (order) {\n if (order.systemStatus.toLowerCase() !== 'created') {\n isDeleteable = false;\n }\n });\n\n return isDeleteable;\n }\n\n function printSelectedOrderPickingLists() {\n var ids = getSelectedOrderIds();\n\n if (ids.length !== 0) {\n printPickingListDialogService.showDialog().then(function (result) {\n if (result.result === true) {\n var request = {\n orderIds: ids,\n includeStorageLocation: result.includeStorageLocation,\n includeIsPhotographed: result.includeIsPhotographed,\n languageCode: result.languageCode,\n grouping: result.grouping\n };\n\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getMultipleOrderPickingListPdf(request).then(function (response) {\n }, function (error) {\n console.log(error);\n }).finally(function () {\n disablePrintMode();\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n\n } else {\n disablePrintMode();\n }\n }\n\n function transitionToState(id) {\n vm.onOrderSelected({ orderId: id });\n }\n\n function shouldShowInventoryReasonHeader () {\n return showAllOrderTypes && (_.includes(vm.orderTypes, 'Inventory'));\n }\n\n function shouldShowSupplier() {\n return showAllOrderTypes ||\n (_.includes(vm.orderTypes, 'Store') || _.includes(vm.orderTypes, 'Automatic') || _.includes(vm.orderTypes, 'Return'));\n }\n function shouldShowFromLocation() {\n return showAllOrderTypes ||\n (_.includes(vm.orderTypes, 'Internal') || _.includes(vm.orderTypes, 'AutomaticInternal') || _.includes(vm.orderTypes, 'Return'));\n }\n function shouldShowDestination() {\n return showAllOrderTypes ||\n (!_.includes(vm.orderTypes, 'Return'));\n }\n function changeToStoreOrderSearch() {\n vm.orderTypes = ['Store'];\n showAllOrderTypes = false;\n vm.currentOrderListing = 'store';\n searchTermChanged();\n }\n function changeToInternalOrderSearch() {\n vm.orderTypes = ['Internal'];\n showAllOrderTypes = false;\n vm.currentOrderListing = 'internal';\n searchTermChanged();\n }\n function changeToAutoOrderSearch() {\n vm.orderTypes = ['Automatic', 'AutomaticInternal'];\n showAllOrderTypes = false;\n searchTermChanged();\n }\n function changeToAutoOrderNormalSearch() {\n vm.orderTypes = ['Automatic'];\n showAllOrderTypes = false;\n vm.currentOrderListing = 'auto';\n searchTermChanged();\n }\n function changeToAutoOrderInternalSearch() {\n vm.orderTypes = ['AutomaticInternal'];\n showAllOrderTypes = false;\n vm.currentOrderListing = 'autointernal';\n searchTermChanged();\n }\n function changeToInventoryOrderSearch() {\n vm.orderTypes = ['Inventory'];\n showAllOrderTypes = false;\n searchTermChanged();\n }\n function changeToReturnOrderSearch() {\n vm.orderTypes = ['Return'];\n showAllOrderTypes = false;\n vm.currentOrderListing = 'return';\n searchTermChanged();\n }\n function changeToAllOrderSearch() {\n vm.orderTypes = ['Store', 'Internal', 'Automatic', 'AutomaticInternal', 'Inventory', 'Return'];\n showAllOrderTypes = true;\n vm.currentOrderListing = 'all';\n searchTermChanged();\n }\n\n function gridInitialization(flex) {\n orderSearchGrid = flex;\n var host = flex.hostElement;\n host.addEventListener('contextmenu', contextMenuListener);\n\n function contextMenuListener(event) {\n var jqContextMenu = $(\"#orderContextMenu\");\n\n // Update selected row.\n var ht = flex.hitTest(event.pageX, event.pageY);\n flex.selection = new wijmo.grid.CellRange(ht.row, ht.col, ht.row, ht.col);\n\n flexGridCurrentlySelectedItem = flex.itemsSource[flex.selection.row];\n event.preventDefault();\n\n jqContextMenu.css(\"left\", event.clientX);\n jqContextMenu.css(\"top\", event.clientY);\n jqContextMenu.css(\"visibility\", \"visible\");\n\n if (flexGridCurrentlySelectedItem.systemStatus.toLowerCase() === 'delivered') {\n vm.contextMenuVisibility.deliver = false;\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n }\n\n }\n }\n\n function gridSelectionChanged(e) {\n if (orderSearchGrid.itemsSource) {\n var clickedRowNumber = e.row;\n flexGridCurrentlySelectedItem = orderSearchGrid.itemsSource[clickedRowNumber];\n\n if (flexGridCurrentlySelectedItem.systemStatus.toLowerCase() === 'delivered') {\n vm.contextMenuVisibility.deliver = false;\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n }\n }\n }\n\n function contextMenuEdit() {\n console.log(\"[contextMenuEdit]: Not implemented.\");\n }\n function contextMenuDeliver() {\n $state.go(\"order.orderdelivery\", { orderId: flexGridCurrentlySelectedItem.id });\n }\n function contextMenuCopy() {\n $state.go(\"order.orderdelivery\", { orderId: flexGridCurrentlySelectedItem.id });\n }\n function contextMenuGetAsPdf() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadAsPdf(flexGridCurrentlySelectedItem.id).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n function contextMenuGetAsCsv() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadAsCsv(flexGridCurrentlySelectedItem.id).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n function contextMenuPrintLabel() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadLabels(flexGridCurrentlySelectedItem.id, flexGridCurrentlySelectedItem.orderNumber).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n function contextMenuDelete() {\n console.log(\"[contextMenuDelete]: Not implemented\");\n }\n function contextMenuUndo() {\n console.log(\"[contextMenuUndo]: Not implemented\");\n }\n function hideContextMenuListener(e) {\n var jqContextMenu = $(\"#orderContextMenu\");\n jqContextMenu.css(\"visibility\", \"hidden\");\n setContextMenuShowAll();\n }\n function setContextMenuShowAll() {\n vm.contextMenuVisibility = {\n edit: false,\n deliver: true,\n getAsPdf: true,\n getAsCsv: true,\n printLabel: true,\n delete: false,\n undo: false\n };\n }\n\n function enterOrderByScannedBarcode(scannedCode) {\n OrdersApiService.getByOrderNumber(scannedCode).then(function (response) {\n if (!response) {\n ToasterService.showError($translate.instant('salestotal.noRows'), $translate.instant('common.error'));\n return;\n }\n\n var destinationIsOk, fromLocationIsOk;\n var locationIds = _.map($rootScope.currentUser.locations, function (location) {\n return location.id;\n });\n if (response.destination) {\n destinationIsOk = _.find(locationIds, function (id) { return id === response.destination.id; });\n }\n if (response.fromLocation) {\n fromLocationIsOk = _.find(locationIds, function (id) { return id === response.fromLocation.id; });\n }\n if (!destinationIsOk && !fromLocationIsOk) {\n ToasterService.showError($translate.instant('order.mayNotAccessOrderLocation'), $translate.instant('common.error'));\n return;\n }\n\n if (response.systemStatus.toLowerCase() !== 'delivered') {\n $state.go('order.orderdelivery', { orderId: response.id, usingScannerNavigation: true });\n } else {\n vm.scannerInput = '';\n transitionToState(response.id);\n }\n }, function (error) {\n console.log(error);\n });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.ordersearch', {\n url: '/search/{orderId}',\n templateUrl: 'main/order/ordersearch/ordersearch.tpl.html',\n controller: 'MainOrderSearchController as vm',\n params: {\n useScannerNavigation: false,\n searchTerm: '',\n showOnlyUndeliveredOrders: true,\n orderTypes: ['Store']\n }\n });\n}\n\n// @ngInject\nfunction MainOrderSearchController($rootScope, $state, $stateParams, OrdersApiService, Rms2OrdersApiService, loadSpinnerService, AuthService) {\n var vm = this;\n vm.canAccess = AuthService.canAccess;\n\n //Properties\n vm.orderId = ($stateParams.orderId) ? $stateParams.orderId : undefined;\n vm.orderTypes = ($stateParams.orderTypes) ? $stateParams.orderTypes : ['Store'];\n vm.searchTerm = ($stateParams.searchTerm) ? $stateParams.searchTerm : \"\";\n vm.useScannerNavigation = $stateParams.useScannerNavigation;\n vm.selectedOrder = {};\n vm.orders = [];\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.limit = 15;\n vm.showBackButton = false;\n vm.showSearchFields = true;\n var showUndeliveredOnlyInit = true;\n var showUnprintedOnlyInit = false;\n var showUnapprovedOnlyInit = false;\n var onlyOrderNumber = false;\n vm.monthsBack = null;\n vm.showUndeliveredOnly = ($stateParams.showOnlyUndeliveredOrders !== undefined) ? $stateParams.showOnlyUndeliveredOrders : showUndeliveredOnlyInit;\n vm.showUnprintedOnly = showUnprintedOnlyInit;\n vm.showUnapprovedOnly = showUnapprovedOnlyInit;\n vm.onlyOrderNumber = onlyOrderNumber;\n vm.printModeType = 'none';\n vm.isLoading = false;\n\n //Methods\n vm.loadOrders = loadOrders;\n vm.selectOrder = selectOrder;\n vm.toggleSearchFields = toggleSearchFields;\n vm.searchTermChanged = searchTermChanged;\n\n activate();\n\n function activate() {\n if (vm.orderId) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getById(vm.orderId).then(function(response) {\n vm.order = response.data.order;\n vm.links = response.data.links;\n vm.showSearchFields = false;\n }).finally(function afterGetAllOrders() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n } else {\n vm.showSearchFields = true;\n loadOrders();\n }\n\n }\n\n function searchTermChanged(searchTerms) {\n if(vm.isLoading) return;\n vm.isLoading = true;\n\n if (searchTerms) {\n if (searchTerms.currentPage && vm.currentPage !== searchTerms.currentPage) { vm.currentPage = searchTerms.currentPage; }\n if (searchTerms.searchTerm && vm.searchTerm !== searchTerms.searchTerm) { vm.searchTerm = searchTerms.searchTerm; }\n if (searchTerms.limit && vm.limit !== searchTerms.limit) { vm.limit = searchTerms.limit; }\n if (searchTerms.orderTypes && vm.orderTypes !== searchTerms.orderTypes) { vm.orderTypes = searchTerms.orderTypes; }\n vm.showUndeliveredOnly = searchTerms.showUndeliveredOnly;\n vm.showUnprintedOnly = searchTerms.showUnprintedOnly;\n vm.showUnapprovedOnly = searchTerms.showUnapprovedOnly;\n console.log(searchTerms.onlyOrderNumber);\n vm.onlyOrderNumber = searchTerms.onlyOrderNumber;\n vm.monthsBack = searchTerms.monthsBack;\n\n loadOrders();\n }\n }\n\n function selectOrder(orderId) {\n $state.go('order.ordersearch', {\n orderId: orderId,\n searchTerm: vm.searchTerm,\n useScannerNavigation: vm.useScannerNavigation,\n showOnlyUndeliveredOrders: vm.showUndeliveredOnly,\n orderTypes: vm.orderTypes\n });\n }\n\n function loadOrders() {\n loadSpinnerService.start('mainSpinner');\n var searchTerms = {\n page: vm.currentPage,\n searchTerm: vm.searchTerm,\n limit: vm.limit,\n orderTypes: vm.orderTypes,\n onlyOrderNumber: vm.onlyOrderNumber,\n monthBack: vm.monthsBack,\n showUndeliveredOnly: vm.showUndeliveredOnly,\n showUnprintedOnly: vm.showUnprintedOnly,\n showUnapprovedOnly: vm.showUnapprovedOnly\n };\n var tenantStringIdentifier = $rootScope.currentUser.tenant.tenantStringIdentifier.toLowerCase();\n console.log(tenantStringIdentifier);\n\n if (isElasticSearchEnabledTenant(tenantStringIdentifier)) {\n Rms2OrdersApiService.getAll(searchTerms).then(function(response) {\n vm.orders = response.results;\n\n _.forEach(vm.orders, function (o) {\n o.isSelected = false;\n });\n\n vm.totalItems = response.total;\n vm.currentPage = response.page;\n vm.searchTerm = vm.searchTerm ? vm.searchTerm : '';\n formatPlannedDeliveryDate(vm.orders);\n }, function(error) {\n console.log(error);\n vm.isLoading = false;\n }).finally(function afterGetAllOrders() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n vm.isLoading = false;\n });\n } else {\n OrdersApiService.getAll(searchTerms).then(function(response) {\n vm.orders = response.results;\n\n _.forEach(vm.orders, function (o) {\n o.isSelected = false;\n });\n\n vm.totalItems = response.total;\n vm.currentPage = response.page;\n vm.searchTerm = vm.searchTerm ? vm.searchTerm : '';\n formatPlannedDeliveryDate(vm.orders);\n }, function(error) {\n console.log(error);\n vm.isLoading = false; \n }).finally(function afterGetAllOrders() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n vm.isLoading = false;\n });\n }\n }\n\n function isElasticSearchEnabledTenant(tenantStringIdentifier) {\n return (tenantStringIdentifier != \"pondus\")\n }\n\n // Formats the delivery dates to YYYY-MM-DD instead of YYYY-MM-DDTHH:MM:SS\n function formatPlannedDeliveryDate(orders) {\n for (var i = 0; i < orders.length; i++) {\n var order = orders[i];\n order.plannedDeliveryDate = order.plannedDeliveryDate.split('T')[0];\n }\n }\n\n function toggleSearchFields() {\n if (!vm.order || !vm.order.id) { return; }\n if (vm.showSearchFields === false && (!vm.orders || vm.orders.length === 0)) {\n loadOrders();\n }\n vm.showSearchFields = !vm.showSearchFields;\n }\n}\n\nangular\n .module('order.ordersearch', [])\n .config(stateConfig)\n .controller('MainOrderSearchController', MainOrderSearchController);\n","angular.module('components.caPurchaseOrderArticlesSummaryGrid', [])\n .component('caPurchaseOrderArticlesSummaryGrid', {\n templateUrl: 'main/order/purchaseorder/components/articlessummarygrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n articleIds: '=',\n purchaseOrder: '<',\n disabled: '<',\n orderChangeCount: '<',\n onArticleSelected: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $rootScope) {\n var vm = this;\n\n var articlesGrid = {};\n vm.articles = [];\n vm.articleIds = [];\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim();\n vm.captureArticlesGrid = captureArticlesGrid;\n vm.selectArticle = selectArticle;\n\n function onInit() {\n loadPurchaseOrderData();\n\n // To force the grid to redraw when the source items collection changes.\n // $scope.$watch(function() { return vm.articles.length; },\n // function() {\n // refreshArticlesGrid();\n // });\n\n // _.forEach(vm.purchaseOrder.orders, function(order) {\n // // Put a listener on all orders' orderArticles\n // $scope.$watch(function() { return order.orderArticles.length; },\n // function() {\n // updateAddedArticlesCollection();\n // refreshArticlesGrid();\n // });\n // });\n\n $scope.$watch(function() { return vm.orderChangeCount; }, function() {\n // updateAddedArticlesCollection();\n // refreshArticlesGrid();\n loadPurchaseOrderData();\n });\n\n }\n\n function onChanges() {\n }\n\n function onDestroy() {\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n // Short hand for creating the grid data, calculate quantities and forcing the grid to redraw.\n function loadPurchaseOrderData() {\n updateAddedArticlesCollection();\n recalculateArticleTotals();\n refreshArticlesGrid();\n }\n\n // Create a single list of articles for the grid to display.\n function updateAddedArticlesCollection() {\n vm.articles.length = 0;\n _.forEach(vm.purchaseOrder.orders, function(order) {\n _.forEach(order.orderArticles, function(orderArticle) {\n if (!_.find(vm.articles, function(article) { return article.id === orderArticle.article.id; })) {\n vm.articles.push(orderArticle.article);\n vm.articleIds.push({ articleId: orderArticle.article.id });\n }\n });\n });\n }\n\n function recalculateArticleTotals() {\n // Reset quantities\n _.forEach(vm.articles, function(addedArticle) {\n addedArticle['summarizedPurchaseCost'] = 0;\n addedArticle['summarizedSalesPrice'] = 0;\n addedArticle['summarizedQuantity'] = 0;\n });\n\n // Calculate article totals\n _.forEach(vm.articles, function(addedArticle) {\n _.forEach(vm.purchaseOrder.orders, function(order) {\n _.forEach(order.orderArticles, function(orderArticle) {\n if (addedArticle.id === orderArticle.article.id) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n addedArticle['summarizedQuantity'] += orderRow.quantity;\n addedArticle['summarizedPurchaseCost'] += orderRow.quantity * orderRow.purchaseCost;\n addedArticle['summarizedSalesPrice'] += orderRow.quantity * orderRow.articleVariant.salesPrice;\n });\n }\n });\n });\n });\n }\n\n // Helper function. Calls refresh and invalidate on the grid if they have been defined (grid initialized)\n function refreshArticlesGrid() {\n if (articlesGrid.invalidate) {\n articlesGrid.invalidate();\n }\n if (articlesGrid.collectionView && articlesGrid.collectionView.refresh) {\n articlesGrid.collectionView.refresh();\n }\n }\n\n function captureArticlesGrid(s) {\n articlesGrid = s;\n refreshArticlesGrid();\n }\n\n function selectArticle(ar) {\n vm.onArticleSelected({article: ar});\n }\n}\n","angular.module('components.caOpenToBuyGrid', [])\n .component('caOpenToBuyGrid', {\n templateUrl: 'main/order/purchaseorder/components/opentobuygrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n purchaseOrder: '<',\n disabled: '<',\n orderChangeCount: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, BudgetsApiService, ToasterService, $rootScope) {\n var vm = this;\n\n var otbGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.companyBudgets = [];\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim();\n\n vm.captureOtbGrid = captureOtbGrid;\n\n function onInit() {\n $scope.$watch(function() { return vm.orderChangeCount; }, function() {\n recalculateBudgetData();\n });\n\n $scope.$watch(function () { return vm.purchaseOrder.company.id; }, function () {\n if (vm.purchaseOrder.company && vm.purchaseOrder.articleCollection) {\n getBudgetsForCompany(vm.purchaseOrder.company);\n recalculateBudgetData();\n }\n });\n\n $scope.$watch(function() { return vm.purchaseOrder.articleCollection.id; }, function() {\n if (vm.purchaseOrder.company && vm.purchaseOrder.articleCollection) {\n getBudgetsForCompany(vm.purchaseOrder.company);\n recalculateBudgetData();\n }\n });\n }\n\n function onChanges() {\n }\n\n function onDestroy() {\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n function captureOtbGrid(s) {\n otbGrid = s;\n otbGrid.itemsSource = rowCollection;\n }\n\n function getBudgetsForCompany(company) {\n if (company.id) {\n BudgetsApiService.getBudgetsForCompany(company.id).then(function(response) {\n rowData.length = 0;\n\n vm.companyBudgets = response.data;\n\n var collectionFiltered = _.filter(vm.companyBudgets, function(budget) {\n return budget.collection.id === vm.purchaseOrder.articleCollection.id;\n });\n\n var locationGrouped = _.groupBy(collectionFiltered, function(budget) {\n return budget.location.id;\n });\n\n _.forEach(Object.keys(locationGrouped), function(key) {\n var group = locationGrouped[key];\n var groupLocation = group[0].location;\n\n var element = {\n location: groupLocation,\n totalOrderedQuantity: _.sumBy(group, function(obj) { return obj.orderedQuantity; }),\n totalOrderedCost: Math.round(_.sumBy(group, function(obj) { return obj.orderedCost; })),\n costPriceThisOrder: 0,\n quantityThisOrder: 0,\n totalQuantity: 0,\n totalCost: 0,\n budgetQuantity: _.sumBy(group, function(obj) { return obj.quantity; }),\n budgetCost: _.sumBy(group, function(obj) { return obj.purchaseCost; }),\n openToBuyQuantity: 0,\n openToBuyCost: 0,\n openToBuyPercentage: 0\n };\n\n // Totals\n element.totalQuantity = element.totalOrderedQuantity + element.quantityThisOrder;\n element.totalCost = Math.round(element.totalOrderedCost + element.costPriceThisOrder);\n\n // Open to buy values\n element.openToBuyQuantity = element.budgetQuantity - element.totalQuantity;\n element.openToBuyCost = Math.round(element.budgetCost - element.totalCost);\n element.openToBuyPercentage = Math.round(element.openToBuyCost / element.budgetCost * 100);\n\n rowData.push(element);\n });\n\n var totalsElement = {\n totalOrderedQuantity: 0,\n totalOrderedCost: 0,\n costPriceThisOrder: 0,\n quantityThisOrder: 0,\n totalQuantity: 0,\n totalCost: 0,\n budgetQuantity: 0,\n budgetCost: 0,\n openToBuyQuantity: 0,\n openToBuyCost: 0,\n isTotalsRowElement: true\n };\n\n rowData.push(totalsElement);\n\n var isNewPurchaseOrder = vm.purchaseOrder.id === undefined || vm.purchaseOrder.id === 0;\n\n if (!isNewPurchaseOrder) {\n recalculateBudgetData();\n _.forEach(rowData, function(row) {\n row.totalOrderedQuantity -= row.quantityThisOrder;\n row.totalOrderedCost -= row.costPriceThisOrder;\n });\n }\n\n if (otbGrid.invalidate) {\n otbGrid.invalidate();\n rowCollection.refresh();\n }\n\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n }\n\n function recalculateBudgetData() {\n var locations = [];\n _.forEach(rowData, function(row) {\n if (row.location) {\n locations.push(row.location);\n }\n });\n\n _.forEach(rowData, function(row) {\n row.quantityThisOrder = 0;\n row.costPriceThisOrder = 0;\n });\n\n var totalsRow = _.find(rowData, function(row) {\n return row.isTotalsRowElement;\n });\n\n if (totalsRow === undefined) {\n return;\n }\n\n totalsRow.totalOrderedQuantity = 0;\n totalsRow.totalOrderedCost = 0;\n totalsRow.costPriceThisOrder = 0;\n totalsRow.quantityThisOrder = 0;\n totalsRow.totalQuantity = 0;\n totalsRow.totalCost = 0;\n totalsRow.budgetQuantity = 0;\n totalsRow.budgetCost = 0;\n totalsRow.openToBuyQuantity = 0;\n totalsRow.openToBuyCost = 0;\n\n _.forEach(vm.purchaseOrder.orders, function(order) {\n var currentLocation = order.destination;\n var budgetRow = _.find(rowData, function(row) {\n if (row.location === undefined) {\n return false;\n }\n return row.location.id === currentLocation.id;\n });\n\n if (budgetRow) {\n _.forEach(order.orderArticles, function(orderArticle) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n budgetRow.quantityThisOrder += orderRow.quantity;\n budgetRow.costPriceThisOrder += orderRow.quantity * orderRow.purchaseCost;\n });\n });\n\n budgetRow.totalQuantity = budgetRow.quantityThisOrder + budgetRow.totalOrderedQuantity;\n budgetRow.totalCost = budgetRow.totalOrderedCost + budgetRow.costPriceThisOrder;\n budgetRow.openToBuyQuantity = budgetRow.budgetQuantity - budgetRow.totalQuantity;\n budgetRow.openToBuyCost = Math.round(budgetRow.budgetCost - budgetRow.totalCost);\n budgetRow.openToBuyPercentage = Math.round(budgetRow.openToBuyCost / budgetRow.budgetCost * 100);\n }\n });\n\n var budgetRows = _.reject(rowData, function(row) {\n return row.isTotalsRowElement;\n });\n\n _.forEach(budgetRows, function(row) {\n totalsRow.totalOrderedQuantity += row.totalOrderedQuantity;\n totalsRow.totalOrderedCost += row.totalOrderedCost;\n totalsRow.costPriceThisOrder += row.costPriceThisOrder;\n totalsRow.quantityThisOrder += row.quantityThisOrder;\n totalsRow.totalQuantity += row.totalQuantity;\n totalsRow.totalCost += row.totalCost;\n totalsRow.budgetQuantity += row.budgetQuantity;\n totalsRow.budgetCost += row.budgetCost;\n totalsRow.openToBuyQuantity += row.openToBuyQuantity;\n totalsRow.openToBuyCost += row.openToBuyCost;\n });\n\n totalsRow.openToBuyPercentage = Math.round(totalsRow.openToBuyCost / totalsRow.budgetCost * 100);\n\n if (otbGrid.invalidate) {\n otbGrid.invalidate();\n rowCollection.refresh();\n }\n }\n}\n","angular.module('components.caPurchaseOrderDistributionGrid', [])\n .component('caPurchaseOrderDistributionGrid', {\n templateUrl: 'main/order/purchaseorder/components/purchaseorderdistributiongrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n selectedColorVariant: '<',\n selectedArticle: '<',\n purchaseOrder: '<',\n disabled: '<',\n orderChangeCount: '<',\n onPurchaseOrderChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject \nfunction controller($scope, OrdersApiService, BudgetsApiService) {\n var vm = this;\n\n var distributionGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n\n var highlightForeGroundColor = '#000000';\n var highlightBackgroundColor = '#ffddee';\n var summaryCellBackgroundColor = '#dddddd';\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.totalQuantityToDistribute = 0;\n vm.budgets = [];\n vm.packs = [];\n vm.selectedPack = [];\n vm.locations = [];\n\n vm.captureDistributionGrid = captureDistributionGrid;\n vm.cellEditEnded = cellEditEnded;\n vm.distributeBudgetQuantities = distributeBudgetQuantities;\n vm.recalculateTotals = recalculateDistributionGridTotals;\n vm.getAndApplyBudget = getAndApplyBudget;\n\n function onInit() {\n OrdersApiService.getLocations().then(function(response) {\n vm.locations = response;\n }, function(error) {\n //toasterservice here\n console.log(error);\n });\n\n $scope.$watch(function() { return vm.selectedColorVariant; }, function() {\n // Check if the grid has been captured before trying to do something.\n if (distributionGrid.invalidate) {\n setupGridColumns();\n setupGridData();\n recalculateDistributionGridTotals();\n distributionGrid.invalidate();\n rowCollection.refresh();\n }\n });\n\n $scope.$watch(function() { return vm.selectedArticle; }, function() {\n if (vm.selectedArticle !== undefined && vm.selectedArticle.id !== undefined) {\n getArticlePacks();\n }\n });\n }\n\n function onChanges() {\n }\n\n function onDestroy() {\n }\n\n // Capture the distribution grid and set up its contents\n function captureDistributionGrid(s) {\n distributionGrid = s;\n distributionGrid.itemsSource = rowCollection;\n configureGridItemsFormatter();\n setupGrid();\n setupGridColumns();\n setupGridData();\n }\n\n // Initialize the grid\n function setupGrid() {\n rowData.length = 0;\n distributionGrid.finishEditing(true);\n distributionGrid.columns.clear();\n distributionGrid.invalidate();\n rowCollection.refresh();\n }\n\n // Create the grid columns\n function setupGridColumns() {\n distributionGrid.columns.clear();\n\n var locationColumn = new wijmo.grid.Column();\n locationColumn.binding = \"locationName\";\n locationColumn.header = \" \";\n locationColumn.allowSorting = false;\n locationColumn.width = \"2*\";\n locationColumn.allowSorting = false;\n locationColumn.isReadOnly = true;\n distributionGrid.columns.push(locationColumn);\n\n var colorColumn = new wijmo.grid.Column();\n colorColumn.binding = \"colorName\";\n colorColumn.header = \" \";\n colorColumn.allowSorting = false;\n colorColumn.width = \"2*\";\n colorColumn.allowSorting = false;\n colorColumn.isReadOnly = true;\n distributionGrid.columns.push(colorColumn);\n\n // Column for displaying the budget percentage\n var budgetColumn = new wijmo.grid.Column();\n budgetColumn.binding = \"budget\";\n budgetColumn.header = \" \";\n budgetColumn.width = 100;\n budgetColumn.allowSorting = false;\n budgetColumn.isReadOnly = false;\n budgetColumn.align = \"Right\";\n distributionGrid.columns.push(budgetColumn);\n\n var totalQuantityColumn = new wijmo.grid.Column();\n totalQuantityColumn.binding = \"totalQuantity\";\n totalQuantityColumn.header = \"#\";\n totalQuantityColumn.allowSorting = false;\n totalQuantityColumn.width = \"2*\";\n totalQuantityColumn.allowSorting = false;\n totalQuantityColumn.isReadOnly = true;\n totalQuantityColumn.align = \"Right\";\n distributionGrid.columns.push(totalQuantityColumn);\n\n var sizeVariants = getSizeVariants(vm.selectedArticle);\n\n _.forEach(sizeVariants, function(sizeVariant) {\n var c = new wijmo.grid.Column();\n c.binding = sizeVariant.variantDetailName;\n c.header = sizeVariant.variantDetailName;\n c.width = \"2*\";\n c.allowSorting = false;\n c.inputType = 'text';\n c.isReadOnly = false;\n distributionGrid.columns.push(c);\n });\n\n var rowTotalColumn = new wijmo.grid.Column();\n rowTotalColumn.binding = \"rowTotal\";\n rowTotalColumn.header = \" \";\n rowTotalColumn.allowSorting = false;\n rowTotalColumn.width = \"*\";\n rowTotalColumn.allowSorting = false;\n rowTotalColumn.isReadOnly = true;\n distributionGrid.columns.push(rowTotalColumn);\n }\n\n // Populate the grid with data from the purchaseOrder\n function setupGridData() {\n rowData.length = 0;\n var sizeVariants = getSizeVariants(vm.selectedArticle);\n var locationsToProcess = [];\n\n if (vm.purchaseOrder.id !== undefined && vm.purchaseOrder.id !== 0) {\n _.forEach(vm.purchaseOrder.orders, function(order) {\n if (!_.find(locationsToProcess, function (addedLocation) { return addedLocation.id === order.destination.id; })) {\n locationsToProcess.push(order.destination);\n }\n });\n } else {\n locationsToProcess = vm.locations;\n }\n\n // Adding one row element to be used as the size distribution weight row.\n var rw = {\n isDistributionRowElement: true\n };\n _.forEach(sizeVariants, function(sizeVariant) {\n rw[sizeVariant.variantDetailName] = 0;\n });\n rw['rowTotal'] = 0;\n rowData.push(rw);\n\n _.forEach(locationsToProcess, function(location) {\n var r = {};\n\n r['locationId'] = location.id;\n r['locationName'] = location.locationNumber + \" \" + location.locationName;\n r['colorName'] = vm.selectedColorVariant.variantDetailName;\n r['articleName'] = vm.selectedArticle.articleName;\n r['variantDetail1Id'] = vm.selectedColorVariant.id;\n r['budget'] = 0;\n r['totalQuantity'] = 0;\n r['rowTotal'] = 0;\n\n var foundOrder = _.find(vm.purchaseOrder.orders, function(order) {\n return order.destination.id === location.id;\n });\n _.forEach(sizeVariants, function(sizeVariant) {\n var foundRow;\n if (foundOrder) {\n var foundOrderArticle = _.find(foundOrder.orderArticles, function(orderArticle) {\n return orderArticle.article.id === vm.selectedArticle.id;\n });\n if (foundOrderArticle) {\n foundRow = _.find(foundOrderArticle.orderRows, function(orderRow) {\n return orderRow.articleVariant.variantDetail2.variantDetailName === sizeVariant.variantDetailName &&\n orderRow.articleVariant.variantDetail1.variantDetailName === vm.selectedColorVariant.variantDetailName;\n });\n }\n }\n\n r[sizeVariant.variantDetailName] = (foundRow) ? foundRow.quantity : 0;\n r[sizeVariant.variantDetailName + \"ArticleVariant\"] = (foundRow) ? foundRow.articleVariant : null;\n });\n rowData.push(r);\n });\n\n // Adding one row element to be used to display the totals of each column.\n var totalsRow = {\n isTotalsRowElement: true\n };\n _.forEach(sizeVariants, function(sizeVariant) {\n totalsRow[sizeVariant.variantDetailName] = 0;\n });\n totalsRow['rowTotal'] = 0;\n rowData.push(totalsRow);\n }\n\n // Do things when the user have edited a cell\n function cellEditEnded() {\n updateLocalPurchaseOrder();\n }\n\n function updateLocalPurchaseOrder() {\n writeUpdatesToPurchaseOrder();\n recalculateDistributionGridTotals();\n vm.onPurchaseOrderChanged({purchaseOrder: vm.purchaseOrder});\n }\n\n // Write the distribution grid data back to the purchaseOrder\n function writeUpdatesToPurchaseOrder() {\n _.forEach(rowData, function(row) {\n if (row.isDistributionRowElement || row.isTotalsRowElement) {\n return;\n }\n\n var order = _.find(vm.purchaseOrder.orders, function(order) {\n return order.destination.id === row.locationId;\n });\n\n var orderArticle = _.find(order.orderArticles, function(orderArticle) {\n return orderArticle.article.id === vm.selectedArticle.id;\n });\n\n var sizeVariants = getSizeVariants(vm.selectedArticle);\n\n _.forEach(sizeVariants, function(sizeVariant) {\n var orderRow = _.find(orderArticle.orderRows, function(orderRow) {\n return orderRow.articleVariant.variantDetail1.id === vm.selectedColorVariant.id &&\n orderRow.articleVariant.variantDetail2.id === sizeVariant.id;\n });\n\n if (orderRow === undefined) {\n var artVar = _.find(vm.selectedArticle.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.id === vm.selectedColorVariant.id &&\n articleVariant.variantDetail2.id === sizeVariant.id;\n });\n\n orderRow = newOrderRow(artVar);\n\n if (orderArticle.orderRows === undefined) {\n orderArticle.orderRows = [];\n }\n\n orderArticle.orderRows.push(orderRow);\n }\n\n orderRow.quantity = row[sizeVariant.variantDetailName];\n });\n });\n }\n\n // Calculate the row totals and column totals\n function recalculateDistributionGridTotals() {\n var columnTotalsRow = _.find(rowData, function(colorRow) {\n return colorRow.isTotalsRowElement;\n });\n\n // Calculate column totals.\n var sizeVariants = getSizeVariants(vm.selectedArticle);\n _.forEach(sizeVariants, function(sizeVariant) {\n var columnQuantity = 0;\n _.forEach(rowData, function(colorsRow) {\n if (!colorsRow.isDistributionRowElement && !colorsRow.isTotalsRowElement) {\n columnQuantity += colorsRow[sizeVariant.variantDetailName];\n }\n });\n\n columnTotalsRow[sizeVariant.variantDetailName] = columnQuantity;\n });\n\n // Calculate row totals.\n _.forEach(rowData, function(row) {\n if (!rowData.isTotalsRowElement) {\n var rowQuantity = 0;\n _.forEach(sizeVariants, function(sizeVariant) {\n rowQuantity += row[sizeVariant.variantDetailName];\n });\n row['rowTotal'] = rowQuantity;\n }\n });\n\n distributionGrid.invalidate();\n rowCollection.refresh();\n }\n\n // Get all unique variantDetail2s from provided article\n function getSizeVariants(article) {\n var sizeVariants = [];\n _.forEach(article.articleVariants, function(articleVariant) {\n if (!_.find(sizeVariants, {id: articleVariant.variantDetail2.id})) {\n sizeVariants.push(articleVariant.variantDetail2);\n }\n });\n\n return _.sortBy(sizeVariants, 'sortOrder');\n }\n\n // Get all unique variantDetail1s from provided article\n function getColorVariants(article) {\n var colorVariants = [];\n _.forEach(article.articleVariants, function(articleVariant) {\n if (!_.find(colorVariants, {id: articleVariant.variantDetail1.id})) {\n colorVariants.push(articleVariant.variantDetail1);\n }\n });\n\n return _.sortBy(colorVariants, 'sortOrder');\n }\n\n // Configures grid highlighting/formatting of certain cells\n function configureGridItemsFormatter() {\n distributionGrid.itemFormatter = function(panel, r, c, cell) {\n var style = cell.style;\n var regularCellType = wijmo.grid.CellType.Cell;\n\n if (((r === 0 && c > 3 && c < (distributionGrid.columns.length - 1)) || (c === 2)) && panel.cellType === regularCellType) {\n style.color = highlightForeGroundColor;\n style.backgroundColor = highlightBackgroundColor;\n }\n\n if ((r === (rowData.length - 1) && c > 3 || c === (distributionGrid.columns.length - 1)) && panel.cellType === regularCellType) {\n style.fontWeight = 'bolder';\n style.backgroundColor = summaryCellBackgroundColor;\n }\n };\n }\n\n // Distributes the quantity defined in vm.totalQuantityToDistribute over the quantity grid cells\n function distributeBudgetQuantities() {\n var totalDistributionQuantity = 0;\n var totalSizesDistributionQuantity = 0;\n\n var totalsSizesRowElement = _.find(rowData, {isDistributionRowElement: true});\n var totalsSizesRowElementKeys = _.without(Object.keys(totalsSizesRowElement), 'isDistributionRowElement');\n totalsSizesRowElementKeys = _.without(totalsSizesRowElementKeys, 'rowTotal');\n\n // Calculate total 'budget'\n _.forEach(rowData, function(row) {\n if (!row.isDistributionRowElement && !row.isTotalsRowElement) {\n totalDistributionQuantity += row.budget;\n }\n });\n\n // Set the row quantity distribution\n _.forEach(rowData, function(row) {\n if (!row.isDistributionRowElement && !row.isTotalsRowElement) {\n row['totalQuantity'] = Math.floor(vm.totalQuantityToDistribute * (row['budget'] / totalDistributionQuantity));\n }\n });\n\n // Get the full sum, to be used in the weighted ratio calculation below\n _.forEach(totalsSizesRowElementKeys, function(key) {\n totalSizesDistributionQuantity += totalsSizesRowElement[key];\n });\n\n // To prevent division by zero\n if (totalSizesDistributionQuantity === 0) {\n return;\n }\n\n // Set the size variant column quantities\n _.forEach(totalsSizesRowElementKeys, function(key) {\n if (key !== 'isDistributionRowElement') {\n _.forEach(rowData, function(row) {\n if (!row.isDistributionRowElement && !row.isTotalsRowElement) {\n row[key] = Math.floor(row['totalQuantity'] * (totalsSizesRowElement[key] / totalSizesDistributionQuantity));\n }\n });\n }\n });\n\n updateLocalPurchaseOrder();\n distributionGrid.invalidate();\n rowCollection.refresh();\n }\n\n // Fetches the budget for each location, for the selected collection, for the currently selected article.\n function getAndApplyBudget() {\n BudgetsApiService.getBudgetsForItemGroupAndCollection(vm.selectedArticle.itemGroup.id, vm.purchaseOrder.articleCollection.id).then(function (response) {\n vm.budgets = response.data;\n setGridBudgetValues();\n var selectedPack = vm.selectedPack;\n var distributionRow = _.find(rowData, { isDistributionRowElement: true });\n var sizeVariants = getSizeVariants(vm.selectedArticle);\n if (selectedPack.id) {\n _.forEach(selectedPack.packArticleVariants, function(packArticleVariant) {\n distributionRow[packArticleVariant.variantDetail.variantDetailName] = packArticleVariant.amount;\n });\n } else {\n _.forEach(sizeVariants, function(sizeVariant) {\n distributionRow[sizeVariant.variantDetailName] = 1;\n });\n }\n }, function(error) {\n // TODO: toasterservice here\n console.log(error);\n });\n }\n\n // Populate the budget fields with the appropriate data\n function setGridBudgetValues() {\n _.forEach(vm.budgets, function(budget) {\n var rd = _.find(rowData, function(row) {\n return row.locationId === budget.location.id;\n });\n if (rd) {\n rd.budget = budget.purchaseCost;\n }\n });\n\n distributionGrid.invalidate();\n rowCollection.refresh();\n }\n\n function getArticlePacks() {\n OrdersApiService.getPacksForArticle(vm.selectedArticle.id).then(function(response) {\n vm.packs = response;\n }, function(error) {\n // TODO: toasterservice here\n console.log(error);\n });\n }\n\n function newOrderRow(articleVariant) {\n var supplierPrice = _.find(articleVariant.supplierPrices, function(supplierPrice) {\n return supplierPrice.companyId === vm.purchaseOrder.company.id;\n });\n\n var purchaseCost = (supplierPrice !== undefined) ? supplierPrice.purchasePrice : articleVariant.purchaseCost;\n\n return {\n id: 0,\n orderStatus: {},\n articleVariant: articleVariant,\n purchaseCost: purchaseCost\n };\n }\n}\n","angular.module('components.caPurchaseOrderExtraOptions', [])\n .component('caPurchaseOrderExtraOptions', {\n templateUrl: 'main/order/purchaseorder/components/purchaseorderextraoptions.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n purchaseOrder: '<',\n disabled: '<',\n orderChangeCount: '<',\n selectedArticle: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller(loadSpinnerService, StockLogisticsApiService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.showExtraOptions = false;\n vm.stockLogisticsHasBeenCreated = false;\n\n vm.toggleExtraOptionsVisibility = toggleExtraOptionsVisibility;\n vm.createStockLogistics = createStockLogistics;\n\n function onInit() {\n }\n\n function onChanges() {\n }\n\n function onDestroy() {\n }\n\n function toggleExtraOptionsVisibility() {\n vm.showExtraOptions = !vm.showExtraOptions;\n }\n\n // Use the current quantity data to create or update stock logistics of the current article.\n function createStockLogistics() {\n var stockLogistics = [];\n\n loadSpinnerService.start('mainSpinner');\n StockLogisticsApiService.getByArticle(vm.selectedArticle.id).then(function(getResponse) {\n\n var oldStockLogistics = getResponse.data;\n\n _.forEach(oldStockLogistics, function(stlog) {\n stockLogistics.push(stlog);\n });\n\n _.forEach(vm.purchaseOrder.orders, function(order) {\n _.forEach(order.orderArticles, function(orderArticle) {\n if (orderArticle.article.id === vm.selectedArticle.id) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n var stockLogistic = _.find(stockLogistics, function(stLog) {\n return stLog.articleVariant.id === orderRow.articleVariant.id && stLog.location.id === order.destination.id;\n });\n\n if (orderRow.quantity === 0) {\n return;\n }\n\n if (!stockLogistic) {\n stockLogistic = newEmptyStockLogistic();\n stockLogistic.location = order.destination;\n stockLogistic.articleVariant = orderRow.articleVariant;\n stockLogistics.push(stockLogistic);\n }\n stockLogistic.orderingPointMax = orderRow.quantity;\n });\n }\n });\n });\n\n StockLogisticsApiService.saveStockLogistics(stockLogistics).then(function(response) {\n vm.stockLogisticsHasBeenCreated = true;\n }, function(postError) {\n console.log(postError);\n ToasterService.showError(postError.message);\n });\n\n }, function(getError) {\n console.log(getError);\n ToasterService.showError(getError.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n\n }\n\n function newEmptyStockLogistic() {\n return {\n id: 0,\n location: {},\n articlevariant: {},\n orderingPointMin: 0,\n orderingPointMax: 0,\n packSize: 0,\n quantityInTransit: 0,\n monday: false,\n tuesday: false,\n wednesday: false,\n thursday: false,\n friday: false,\n saturday: false,\n sunday: false\n };\n }\n\n // Get all unique variantDetail2s from provided article\n function getSizeVariants(article) {\n var sizeVariants = [];\n _.forEach(article.articleVariants, function(articleVariant) {\n if (!_.find(sizeVariants, {id: articleVariant.variantDetail2.id})) {\n sizeVariants.push(articleVariant.variantDetail2);\n }\n });\n\n return _.sortBy(sizeVariants, 'sortOrder');\n }\n\n // Get all unique variantDetail1s from provided article\n function getColorVariants(article) {\n var colorVariants = [];\n _.forEach(article.articleVariants, function(articleVariant) {\n if (!_.find(colorVariants, {id: articleVariant.variantDetail1.id})) {\n colorVariants.push(articleVariant.variantDetail1);\n }\n });\n\n return _.sortBy(colorVariants, 'sortOrder');\n }\n}\n","angular.module('components.caPurchaseOrderSingleArticleSummaryGrid', [])\n .component('caPurchaseOrderSingleArticleSummaryGrid', {\n templateUrl: 'main/order/purchaseorder/components/singlearticlesummarygrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n selectedArticle: '<',\n purchaseOrder: '<',\n disabled: '<',\n orderChangeCount: '<',\n onColorSelected: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $rootScope) {\n var vm = this;\n\n var colorsChoiceAndTotalsGrid = {};\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim()\n\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.colorsAndTotalsRows = [];\n\n vm.captureColorChoiceAndTotalsGrid = captureColorChoiceAndTotalsGrid;\n vm.selectColor = selectColor;\n\n function onInit() {\n $scope.$watch(function() { return vm.selectedArticle.id; },\n function() {\n loadGridData();\n refreshGrid();\n });\n\n $scope.$watch(function() { return vm.orderChangeCount; }, function() {\n loadGridData();\n refreshGrid();\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n function captureColorChoiceAndTotalsGrid(s) {\n colorsChoiceAndTotalsGrid = s;\n refreshGrid();\n }\n\n function selectColor(colVar) {\n var articleVariant = _.find(vm.selectedArticle.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.variantDetailName === colVar.colorName;\n });\n vm.onColorSelected({colorVariant: articleVariant.variantDetail1});\n }\n\n function refreshGrid() {\n if (colorsChoiceAndTotalsGrid.invalidate) {\n colorsChoiceAndTotalsGrid.invalidate();\n }\n if (colorsChoiceAndTotalsGrid.collectionView !== undefined && colorsChoiceAndTotalsGrid.collectionView.refresh) {\n colorsChoiceAndTotalsGrid.collectionView.refresh();\n }\n }\n\n function getColorVariants(article) {\n var colorVariants = [];\n _.forEach(article.articleVariants, function(articleVariant) {\n if (!_.find(colorVariants, {id: articleVariant.variantDetail1.id})) {\n colorVariants.push(articleVariant.variantDetail1);\n }\n });\n return _.sortBy(colorVariants, 'sortOrder');\n }\n\n function getSizeVariants(article) {\n var sizeVariants = [];\n _.forEach(article.articleVariants, function(articleVariant) {\n if (!_.find(sizeVariants, {id: articleVariant.variantDetail2.id})) {\n sizeVariants.push(articleVariant.variantDetail2);\n }\n });\n return _.sortBy(sizeVariants, 'sortOrder');\n }\n\n function loadGridData() {\n vm.colorsAndTotalsRows.length = 0;\n var colorVariants = getColorVariants(vm.selectedArticle);\n\n var orderRows = [];\n _.forEach(vm.purchaseOrder.orders, function(order) {\n _.forEach(order.orderArticles, function(orderArticle) {\n if (orderArticle.article.id === vm.selectedArticle.id) {\n _.forEach(orderArticle.orderRows, function(orderRow) {\n orderRows.push(orderRow);\n });\n }\n });\n });\n\n _.forEach(colorVariants, function(colorVariant) {\n var row = {};\n\n row['colorName'] = colorVariant.variantDetailName; // Display name\n row['totalQuantity'] = 0;\n row['totalCostPrice'] = 0;\n row['totalSalesPrice'] = 0;\n row['colorVariant'] = colorVariant;\n\n _.forEach(orderRows, function(orderRow) {\n if (colorVariant.id === orderRow.articleVariant.variantDetail1.id) {\n row['totalQuantity'] += orderRow.quantity;\n row['totalCostPrice'] += orderRow.quantity * orderRow.purchaseCost;\n row['totalSalesPrice'] += orderRow.quantity * orderRow.articleVariant.salesPrice;\n }\n });\n\n vm.colorsAndTotalsRows.push(row);\n });\n }\n\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.purchaseordernew', {\n url: '/purchaseorder/new',\n templateUrl: 'main/order/purchaseorder/purchaseorder.tpl.html',\n controller: 'PurchaseOrderController as vm',\n resolve: {\n companies: companiesResolver,\n locations: locationsResolver,\n collections: collectionsResolver,\n isNewPurchaseOrder: function() {return true;},\n purchaseOrder: function() {return {};}\n }\n });\n\n $stateProvider.state('order.purchaseorder', {\n url: '/purchaseorder/{purchaseOrderId}',\n templateUrl: 'main/order/purchaseorder/purchaseorder.tpl.html',\n controller: 'PurchaseOrderController as vm',\n resolve: {\n companies: companiesResolver,\n locations: locationsResolver,\n collections: collectionsResolver,\n isNewPurchaseOrder: function() {return false;},\n purchaseOrder: purchaseOrderResolver\n }\n });\n}\n\nfunction companiesResolver(CompaniesApiService) {\n return CompaniesApiService.getAll();\n}\n\n// @ngInject\nfunction locationsResolver(LocationsApiService) {\n return LocationsApiService.listAll();\n}\n\n// @ngInject\nfunction collectionsResolver(OrdersApiService) {\n return OrdersApiService.getOrderCollections();\n}\n\n// @ngInject\nfunction purchaseOrderResolver(OrdersApiService, $stateParams) {\n return OrdersApiService.getPurchaseOrder($stateParams.purchaseOrderId);\n}\n\n// @ngInject\nfunction PurchaseOrderController($q, $state, $scope, companies, locations, isNewPurchaseOrder, collections, purchaseOrder,\n ProductsApiService, OrdersApiService, loadSpinnerService, ToasterService) {\n\n var vm = this;\n\n vm.isNewPurchaseOrder = isNewPurchaseOrder;\n vm.collections = collections;\n vm.companies = companies;\n vm.locations = locations;\n vm.article = {}; // The currently selected article to chose quantities for\n vm.selectedColorVariant = {}; // The color variant of the currently selected article to be displayed\n vm.orderChangeCount = 0;\n vm.selectArticles = selectArticles;\n vm.purchaseOrderChanged = purchaseOrderChanged;\n vm.articleIds = [];\n\n vm.save = save;\n\n vm.selectArticle = selectArticle;\n vm.selectColor = selectColor;\n vm.recieveArticles = recieveArticles;\n\n activate();\n\n function activate() {\n if (!isNewPurchaseOrder) {\n vm.purchaseOrder = purchaseOrder;\n vm.company = vm.purchaseOrder.company;\n } else {\n vm.purchaseOrder = generateEmptyPurchaseOrder();\n }\n\n if (!isNewPurchaseOrder) {\n initializeOrderEditing();\n }\n\n $scope.$watch(function() { return vm.purchaseOrder.articleCollection.id; }, function() {\n _.forEach(vm.purchaseOrder.orders, function(order) { order.collection = vm.purchaseOrder.articleCollection; });\n });\n\n $scope.$watch(function() { return vm.purchaseOrder.plannedDeliveryDate; }, function() {\n _.forEach(vm.purchaseOrder.orders, function(order) { order.plannedDeliveryDate = vm.purchaseOrder.plannedDeliveryDate; });\n });\n }\n\n function selectArticles(orderArticles) {\n return function() {\n return orderArticles.map(function(oa) {\n return { id: oa.articleId };\n });\n };\n }\n\n // General setup\n function initializeOrderEditing() {\n // Setting the purchaseOrder's collection for easier access.\n vm.purchaseOrder.articleCollection = vm.purchaseOrder.orders[0].collection;\n }\n\n // Save the current purchaseOrder\n function save() {\n var isNewPurchaseOrder = vm.purchaseOrder.id === 0;\n\n var minimizedPurchaseOrder = removeUnnecessaryPurchaseOrderData(vm.purchaseOrder);\n\n if (!isNewPurchaseOrder) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.updatePurchaseOrder(minimizedPurchaseOrder).then(function(response) {\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n\n } else { // Create purchase order.\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.createPurchaseOrder(minimizedPurchaseOrder).then(function(response) {\n $state.go('order.purchaseorder', {purchaseOrderId: response.data.id});\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n }\n\n function removeUnnecessaryPurchaseOrderData(purchaseOrder) \n {\n var newPurchaseOrder = {\n id: purchaseOrder.id,\n orderNumber: purchaseOrder.orderNumber,\n orderNumberExternal: purchaseOrder.orderNumberExternal,\n plannedDeliveryDate: purchaseOrder.plannedDeliveryDate,\n goesThroughStorageLocation: purchaseOrder.goesThroughStorageLocation,\n storageLocation: { id: purchaseOrder.storageLocation.id },\n articleCollection: { id: purchaseOrder.articleCollection.id },\n orderChange: purchaseOrder.orderChange,\n orderChangeDate: purchaseOrder.orderChangeDate,\n company: { id: purchaseOrder.company.id },\n orderStatus: purchaseOrder.orderStatus,\n orders: []\n };\n\n _.forEach(purchaseOrder.orders, function(o) {\n var newOrder = {\n id: o.id,\n orderNumber: o.orderNumber,\n orderNumberExternal: o.orderNumberExternal,\n plannedDeliveryDate: o.plannedDeliveryDate,\n collection: { id: o.collection.id },\n destination: { id: o.destination.id },\n orderArticles: []\n };\n\n _.forEach(o.orderArticles, function(oa) {\n var newOrderArticle = { \n id: oa.id,\n article: { id: oa.article.id },\n orderRows: []\n };\n _.forEach(oa.orderRows, function(ordRow) {\n if(ordRow.quantity !== 0 && ordRow.id === 0) {\n newOrderArticle.orderRows.push({\n id: ordRow.id,\n orderStatus: ordRow.orderStatus,\n articleVariant: { \n id: ordRow.articleVariant.id,\n barcode: ordRow.articleVariant.barcode\n },\n purchaseCost: ordRow.purchaseCost,\n quantity: ordRow.quantity\n });\n }\n });\n if (newOrderArticle.orderRows.length !== 0) {\n newOrder.orderArticles.push(newOrderArticle);\n }\n });\n\n if (newOrder.orderArticles.length !== 0) {\n newPurchaseOrder.orders.push(newOrder);\n }\n });\n\n newPurchaseOrder.articleCollection = {id: purchaseOrder.articleCollection.id };\n newPurchaseOrder.company = { id: purchaseOrder.company.id };\n\n return newPurchaseOrder;\n }\n\n // Change the currently selected article\n function selectArticle(article) {\n vm.article = article;\n }\n\n // Change the currently selected color\n function selectColor(colorVariant) {\n vm.selectedColorVariant = colorVariant;\n }\n\n function recieveArticles(articles) {\n var promises = [];\n loadSpinnerService.start(\"mainSpinner\");\n _.forEach(articles, function(article) {\n var articleFetchPromise = ProductsApiService.getProduct(article.id);\n promises.push(articleFetchPromise);\n });\n\n $q.all(promises).then(function(responses) {\n _.forEach(vm.purchaseOrder.orders, function(order) {\n _.forEach(responses, function(article) {\n order.orderArticles.push({\n id: 0,\n article: article\n });\n });\n });\n\n vm.orderChangeCount += 1;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n // Builds an empty purchase order to use as a base when starting to edit.\n function generateEmptyPurchaseOrder() {\n var purchaseOrder = {\n id: 0,\n orderNumber: 0,\n orderNumberExternal: 0,\n article: {},\n orderStatus: {},\n orders: [],\n plannedDeliveryDate: new Date(),\n goesThroughStorageLocation: false,\n storageLocation: {},\n articleCollection: {},\n orderChange: false,\n orderChangeDate: new Date(),\n company: {}\n };\n\n _.forEach(vm.locations, function(location) {\n var order = {\n id: 0,\n orderArticles: [],\n destination: location\n };\n\n purchaseOrder.orders.push(order);\n });\n return purchaseOrder;\n }\n\n function purchaseOrderChanged(purchaseOrder) {\n vm.purchaseOrder = purchaseOrder;\n vm.orderChangeCount += 1;\n }\n}\n\nangular\n .module('order.purchaseorder', [])\n .config(stateConfig)\n .controller('PurchaseOrderController', PurchaseOrderController);\n","// @ngInject\nfunction PurchaseOrderAnalysisApiService($q, $window, $cookies, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'purchaseorderanalysis';\n\n return {\n getPurchaseOrderAnalysis: ResourcesService.apiFactory.get(endpoint),\n getSupplierBriefs: ResourcesService.apiFactory.get(endpoint + '/supplierbriefs'),\n getArticleCollectionBriefs: ResourcesService.apiFactory.get(endpoint + '/articlecollectionbriefs'),\n getMainGroupBriefs: ResourcesService.apiFactory.get(endpoint + '/maingroupbriefs')\n };\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('purchaseorderanalysis.api', [])\n .factory('PurchaseOrderAnalysisApiService', PurchaseOrderAnalysisApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.purchaseorderanalysis',{\n url: '/purchaseorderanalysis?{s}&{page}&{limit}&{a}&{i}&{ac}',\n templateUrl: 'main/order/purchaseorderanalysis/purchaseorderanalysis.tpl.html',\n controller: 'PurchaseOrderAnalysisController as vm',\n resolve: {\n suppliers: companyResolver,\n mainGroups: mainGroupResolver,\n articleCollections: articleCollectionResolver\n }\n });\n}\n\n/*\ns: supplier id\nlimit: number of results per page\na: article collection id\ni: include inactive articles (0 = false, 1 = true)\npage: current page\nac: show all collections\n*/\n\n// @ngInject\nfunction companyResolver(PurchaseOrderAnalysisApiService) {\n return PurchaseOrderAnalysisApiService.getSupplierBriefs();\n}\n\n// @ngInject\nfunction mainGroupResolver(PurchaseOrderAnalysisApiService) {\n return PurchaseOrderAnalysisApiService.getMainGroupBriefs();\n}\n\n// @ngInject\nfunction articleCollectionResolver(PurchaseOrderAnalysisApiService) {\n return PurchaseOrderAnalysisApiService.getArticleCollectionBriefs();\n}\n\n// @ngInject\nfunction PurchaseOrderAnalysisController($scope, $state, $stateParams, $translate,\n suppliers, mainGroups, articleCollections, PurchaseOrderAnalysisApiService, confirmationDialogService, purchaseOrderAnalysisFilterDialogService,\n loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.purchaseOrderAnalysisArticles = [];\n vm.purchaseOrderAnalysisArticlesLength = 0;\n vm.completeListOfPurchageAnalysisRows = [];\n vm.showWeeks = false;\n vm.showProduct = false;\n vm.suppliers = suppliers;\n vm.allMainGroups = mainGroups;\n vm.mainGroups = [];\n vm.articleCollections = articleCollections;\n vm.weekLimit = [24, 20, 16, 12, 8, 4];\n vm.selectedWeekLimit = undefined;\n vm.keepProductTogether = true;\n vm.numberOfResultsPerPage = [50, 100, 200, 300, 400, 500];\n vm.selectedMainGroup = {};\n\n //Pick show all article collections from state params if possible\n vm.showAllCollections = $stateParams.ac !== undefined && $stateParams.ac === '1' ? true : false;\n //Pick include inactive articles from state params if possible\n vm.includeInactive = $stateParams.i !== undefined && $stateParams.i === '1' ? true : false;\n //Pick selected supplier from state params if possible\n vm.selectedSupplier = $stateParams.s !== undefined && $stateParams.s > 0 ? _.find(vm.suppliers, function(s) { return '' + s.id === $stateParams.s; }) : {};\n //Pick selected article collection from state params if possible\n vm.selectedArticleCollection = $stateParams.a !== undefined && $stateParams.a > 0 ? _.find(vm.articleCollections, function(a) { return '' + a.id === $stateParams.a; }) : _.find(vm.articleCollections, {'isCurrent': true});\n //Pick current page from state params if possible\n vm.currentPage = $stateParams.page !== undefined && $stateParams.page > 0 ? parseInt($stateParams.page) : 1;\n //Pick selected number of results from state params if possible\n vm.selectedNumberOfResultsPerPage = $stateParams.limit !== undefined && $stateParams.limit > 0 ? parseInt($stateParams.limit) : 300;\n\n //Methods\n vm.toggleShowProduct = toggleShowProduct;\n vm.canCreateOrder = canCreateOrder;\n vm.createOrder = createOrder;\n vm.calculateMonth = calculateMonth;\n vm.toggleArticleRows = toggleArticleRows;\n vm.sumRowsWeek = sumRowsWeek;\n vm.sumRowsMonth = sumRowsMonth;\n vm.sumQuantityToOrder = sumQuantityToOrder;\n vm.sumTotalQuantityToOrder = sumTotalQuantityToOrder;\n vm.sumWarehouseStock = sumWarehouseStock;\n vm.sumStoreStock = sumStoreStock;\n vm.sumOrderedQuantity = sumOrderedQuantity;\n vm.sumWeeksLeftInStock = sumWeeksLeftInStock;\n vm.sumMonthsLeftInStock = sumMonthsLeftInStock;\n vm.sumRowWeeksLeftInStock = sumRowWeeksLeftInStock;\n vm.sumRowMonthsLeftInStock = sumRowMonthsLeftInStock;\n vm.weeksLeftInStockAfterOrder = weeksLeftInStockAfterOrder;\n vm.monthsLeftInStockAfterOrder = monthsLeftInStockAfterOrder;\n vm.clearFilter = clearFilter;\n vm.filterAnalysisRows = filterAnalysisRows;\n vm.averageSalesPerMonth = averageSalesPerMonth;\n vm.averageSalesPerWeek = averageSalesPerWeek;\n vm.showChangedWeekAverage = showChangedWeekAverage;\n vm.showChangedMonthAverage = showChangedMonthAverage;\n vm.showFilterDialog = showFilterDialog;\n vm.goToFirst = goToFirst;\n vm.goToPrevious = goToPrevious;\n vm.goToNext = goToNext;\n vm.goToLast = goToLast;\n vm.getPageNumber = getPageNumber;\n\n activate();\n\n function activate() {\n if ($stateParams.s && $stateParams.s > 0) {\n loadPurchaseOrderAnalysis();\n } else {\n showFilterDialog();\n }\n }\n\n function getPageNumber(rel) {\n if (vm.links && vm.links.length > 0) {\n var pageNumber = _.find(vm.links, function(o) {\n return o.rel === rel;\n });\n return pageNumber.page;\n } else {\n return '';\n }\n }\n function goToFirst() {\n // 1: {href: \"order/purchaseorderanalysis?limit=300&page=1&s=15&a=43&i=0&ac=0\", rel: \"first\", type: \"GET\"}\n var first = _.find(vm.links, function(o) {\n return o.rel === 'first';\n });\n\n $state.go('order.purchaseorderanalysis', {\n s: vm.selectedSupplier.id,\n limit: first.limit,\n a: vm.selectedArticleCollection.id,\n page: first.page,\n i: vm.includeInactive ? '1': '0',\n ac: vm.showAllCollections ? '1': '0'\n });\n }\n function goToPrevious() {\n // 1: {href: \"order/purchaseorderanalysis?limit=300&page=1&s=15&a=43&i=0&ac=0\", rel: \"previous\", type: \"GET\"}\n var previous = _.find(vm.links, function(o) {\n return o.rel === 'previous';\n });\n\n $state.go('order.purchaseorderanalysis', {\n s: vm.selectedSupplier.id,\n limit: previous.limit,\n a: vm.selectedArticleCollection.id,\n page: previous.page,\n i: vm.includeInactive ? '1': '0',\n ac: vm.showAllCollections ? '1': '0'\n });\n }\n function goToNext() {\n // 3: {href: \"order/purchaseorderanalysis?limit=300&page=2&s=15&a=43&i=0&ac=0\", rel: \"next\", type: \"GET\"}\n var next = _.find(vm.links, function(o) {\n return o.rel === 'next';\n });\n\n $state.go('order.purchaseorderanalysis', {\n s: vm.selectedSupplier.id,\n limit: next.limit,\n a: vm.selectedArticleCollection.id,\n page: next.page,\n i: vm.includeInactive ? '1': '0',\n ac: vm.showAllCollections ? '1': '0'\n });\n }\n function goToLast() {\n // 4: {href: \"order/purchaseorderanalysis?limit=300&page=6&s=15&a=43&i=0&ac=0\", rel: \"last\", type: \"GET\"\n var last = _.find(vm.links, function(o) {\n return o.rel === 'last';\n });\n\n $state.go('order.purchaseorderanalysis', {\n s: vm.selectedSupplier.id,\n limit: last.limit,\n a: vm.selectedArticleCollection.id,\n page: last.page,\n i: vm.includeInactive ? '1': '0',\n ac: vm.showAllCollections ? '1': '0'\n });\n }\n\n function showFilterDialog() {\n purchaseOrderAnalysisFilterDialogService\n .showDialog(\n vm.selectedSupplier,\n vm.suppliers,\n vm.selectedNumberOfResultsPerPage,\n vm.numberOfResultsPerPage,\n vm.selectedArticleCollection,\n vm.articleCollections,\n vm.showAllCollections,\n vm.selectedMainGroup,\n vm.mainGroups,\n vm.selectedWeekLimit,\n vm.weekLimit,\n vm.keepProductTogether,\n vm.showWeeks,\n vm.showProduct,\n vm.includeInactive\n )\n .then(function(response) {\n if (response.confirmation) {\n var reloadArticles = false;\n\n if (response.selectedSupplier && response.selectedSupplier.id !== vm.selectedSupplier.id) {\n reloadArticles = true;\n }\n\n if (response.selectedArticleCollection && (!vm.selectedArticleCollection || response.selectedArticleCollection.id !== vm.selectedArticleCollection.id)) {\n vm.selectedArticleCollection = response.selectedArticleCollection;\n reloadArticles = true;\n }\n if (response.includeInactive !== vm.includeInactive) {\n vm.includeInactive = response.includeInactive;\n reloadArticles = true;\n }\n if (response.selectedNumberOfResultsPerPage && (!vm.selectedNumberOfResultsPerPage || response.selectedNumberOfResultsPerPage !== vm.selectedNumberOfResultsPerPage)) {\n vm.selectedNumberOfResultsPerPage = response.selectedNumberOfResultsPerPage;\n reloadArticles = true;\n }\n if (response.showAllCollections !== vm.showAllCollections) {\n vm.showAllCollections = response.showAllCollections;\n reloadArticles = true;\n }\n\n if (reloadArticles) {\n $state.go('order.purchaseorderanalysis', {\n s: response.selectedSupplier.id,\n limit: vm.selectedNumberOfResultsPerPage,\n a: vm.selectedArticleCollection.id,\n page: vm.currentPage,\n i: vm.includeInactive ? '1': '0',\n ac: vm.showAllCollections ? '1': '0'\n });\n }\n\n var refilterArticles = false;\n if (response.selectedMainGroup && (!vm.selectedMainGroup || response.selectedMainGroup.id !== vm.selectedMainGroup.id)) {\n vm.selectedMainGroup = response.selectedMainGroup;\n refilterArticles = true;\n }\n if (response.selectedWeekLimit !== vm.selectedWeekLimit) {\n vm.selectedWeekLimit = response.selectedWeekLimit;\n refilterArticles = true;\n }\n if (response.keepProductTogether !== vm.keepProductTogether) {\n vm.keepProductTogether = response.keepProductTogether;\n refilterArticles = true;\n }\n if (refilterArticles) {\n filterAnalysisRows();\n }\n\n if (response.showWeeks !== vm.showWeeks) {\n vm.showWeeks = response.showWeeks;\n }\n if (response.showProduct !== vm.showProduct) {\n vm.showProduct = response.showProduct;\n toggleShowProduct();\n }\n }\n });\n }\n\n function loadPurchaseOrderAnalysis() {\n loadSpinnerService.start('mainSpinner');\n var request = {\n articleCollectionId: vm.selectedArticleCollection.id,\n includeInactive: vm.includeInactive,\n includeAllArticleCollections: vm.showAllCollections,\n limit: vm.selectedNumberOfResultsPerPage,\n page: vm.currentPage,\n supplierId: vm.selectedSupplier.id\n };\n PurchaseOrderAnalysisApiService.getPurchaseOrderAnalysis(request).then(function(response) {\n vm.completeListOfPurchageAnalysisRows = response !== null && response.data !== null && response.data.results !== null ? response.data.results : [];\n vm.currentPage = response.data.page;\n vm.links = response !== null && response.links !== null ? response.links : [];\n\n _.forEach(vm.completeListOfPurchageAnalysisRows, function(article) {\n //Add default value for quantity to order\n _.forEach(article.articleVariants, function (row) {\n row.quantityToOrder = 0;\n });\n //Make a copy of all article variants to use while filtering\n article.completeListOfArticleVariants = article.articleVariants;\n });\n //Make sure no article variant rows are show at default\n _.forEach(vm.completeListOfPurchageAnalysisRows, function(article) {\n article.showRows = false;\n if (vm.showProduct === false) {\n article.showRows = true;\n }\n _.forEach(article.articleVariants, function (row) {\n row.showRow = true;\n });\n });\n filterAnalysisRows();\n }, function (error) {\n ToasterService.showError(error, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function filterAnalysisRows() {\n loadSpinnerService.start('mainSpinner');\n\n vm.purchaseOrderAnalysisArticles = vm.completeListOfPurchageAnalysisRows;\n\n //First filter by selected main group\n if (vm.selectedMainGroup && vm.selectedMainGroup.id > 0) {\n vm.purchaseOrderAnalysisArticles = _.filter(vm.purchaseOrderAnalysisArticles, function(article) {\n return article.mainGroupId === vm.selectedMainGroup.id;\n });\n }\n\n //Second filter by articles' stock value, taking in account if all article variants are below threshold\n if (vm.selectedWeekLimit) {\n if (vm.keepProductTogether === true) {\n vm.purchaseOrderAnalysisArticles = _.filter(vm.purchaseOrderAnalysisArticles, function(article) {\n return !_.every(article.articleVariants, function (row) {\n return row.weeksLeftInStock > vm.selectedWeekLimit;\n });\n });\n } else {\n vm.purchaseOrderAnalysisArticles = _.filter(vm.purchaseOrderAnalysisArticles, function(article) {\n return _.every(article.articleVariants, function (row) {\n return row.weeksLeftInStock < vm.selectedWeekLimit;\n });\n });\n }\n }\n\n vm.purchaseOrderAnalysisArticlesLength = Object.keys(vm.purchaseOrderAnalysisArticles).length;\n\n //Filter list of maingroups depending on which are shown, to prevent choosing a group that is not shown\n vm.mainGroups = _.filter(vm.allMainGroups, function(mg) {\n var index = _.findIndex(vm.completeListOfPurchageAnalysisRows, function(article) {\n return article.mainGroupId === mg.id;\n });\n return index > -1;\n });\n vm.mainGroups.unshift({\n id: -1,\n mainGroupCode: ' ',\n mainGroupDescription: ' '\n });\n\n loadSpinnerService.stop('mainSpinner');\n }\n\n function createOrder() {\n var listOfArticles = angular.copy(vm.completeListOfPurchageAnalysisRows);\n listOfArticles = _.filter(listOfArticles, function(article) {\n var sum = 0;\n sum = _.sumBy(article.articleVariants, function(row) {\n return row.quantityToOrder;\n });\n return sum > 0;\n });\n\n var message = $translate.instant('purchaseorderanalysis.confirmCreateOrder') + '<br><br>';\n message += '<table style=\"width:100%\">' +\n '<thead>' +\n '<th colspan=\"2\">' + $translate.instant('article.article') + '</th>' +\n '<th>' + $translate.instant('article.variantdetail1') + '</th>' +\n '<th>' + $translate.instant('article.variantdetail2') + '</th>' +\n '<th>' + $translate.instant('common.quantity') + '</th>' +\n '</thead>';\n _.forEach(listOfArticles, function(article) {\n message += '<tr>' +\n '<td>' + article.productNumber + '</td>' +\n '<td>' + article.productName + '</td>' +\n '<td colspan=\"3\"> </td>' +\n '</tr>';\n _.forEach(article.completeListOfArticleVariants, function(articleVariant) {\n if (articleVariant.quantityToOrder && articleVariant.quantityToOrder > 0) {\n message += '<tr>' +\n '<td> </td>' +\n '<td> </td>' +\n '<td>' + articleVariant.variantDetail1 + '</td>' +\n '<td>' + articleVariant.variantDetail2 + '</td>' +\n '<td>' + articleVariant.quantityToOrder + '</td>' +\n '</tr>';\n }\n });\n });\n message += '</table>';\n confirmationDialogService.showDialog(message).then(function (result) {\n if (result === true) {\n $state.go('order.new', {\n orderSystemType: 'store',\n supplierId: vm.selectedSupplier.id,\n articles: listOfArticles\n });\n }\n });\n }\n\n function toggleShowProduct() {\n _.forEach(vm.purchaseOrderAnalysisArticles, function(article) {\n article.showRows = !vm.showProduct;\n });\n }\n function toggleArticleRows(article) {\n if (!article.showRows) { article.showRows = false; }\n article.showRows = !article.showRows;\n }\n\n function weeksLeftInStockAfterOrder(row) {\n var averageSales = averageSalesPerWeek(row);\n if (averageSales <= 0) { return 0; }\n var weeksLeft = (row.currentWarehouseStockQuantity + row.orderedQuantity + row.quantityToOrder) / averageSales;\n return weeksLeft;\n }\n\n function monthsLeftInStockAfterOrder(row) {\n var averageSales = averageSalesPerMonth(row);\n if (averageSales === 0) { return 0; }\n var monthsLeft = (row.currentWarehouseStockQuantity + row.orderedQuantity + row.quantityToOrder) / averageSales;\n return monthsLeft;\n }\n\n function averageSalesPerWeek(row) {\n var averageSales = (row.week1 + row.week2 + row.week3 + row.week4 +\n row.week5 + row.week6 + row.week7 + row.week8 +\n row.week9 + row.week10 + row.week11 + row.week12) / 12;\n return averageSales;\n }\n\n function averageSalesPerMonth(row) {\n var averageSales = averageSalesPerWeek(row) * 4;\n return averageSales;\n }\n\n function sumRowsWeek(article, weekNo) {\n var sum = 0;\n switch (weekNo) {\n case 1: sum = _.sumBy(article.articleVariants, function(o) { return o.week1; }); break;\n case 2: sum = _.sumBy(article.articleVariants, function(o) { return o.week2; }); break;\n case 3: sum = _.sumBy(article.articleVariants, function(o) { return o.week3; }); break;\n case 4: sum = _.sumBy(article.articleVariants, function(o) { return o.week4; }); break;\n case 5: sum = _.sumBy(article.articleVariants, function(o) { return o.week5; }); break;\n case 6: sum = _.sumBy(article.articleVariants, function(o) { return o.week6; }); break;\n case 7: sum = _.sumBy(article.articleVariants, function(o) { return o.week7; }); break;\n case 8: sum = _.sumBy(article.articleVariants, function(o) { return o.week8; }); break;\n case 9: sum = _.sumBy(article.articleVariants, function(o) { return o.week9; }); break;\n case 10: sum = _.sumBy(article.articleVariants, function(o) { return o.week10; }); break;\n case 11: sum = _.sumBy(article.articleVariants, function(o) { return o.week11; }); break;\n case 12: sum = _.sumBy(article.articleVariants, function(o) { return o.week12; }); break;\n default:\n sum = 0;\n }\n return sum;\n }\n function sumRowsMonth(article, monthNo) {\n var sum = 0;\n switch (monthNo) {\n case 1: sum = _.sumBy(article.articleVariants, function(row) { return calculateMonth(1, row); }); break;\n case 2: sum = _.sumBy(article.articleVariants, function(row) { return calculateMonth(2, row); }); break;\n case 3: sum = _.sumBy(article.articleVariants, function(row) { return calculateMonth(3, row); }); break;\n default:\n sum = 0;\n }\n return sum;\n }\n function sumQuantityToOrder(article) {\n var sum = _.sumBy(article.articleVariants, function(row) {\n return row.quantityToOrder;\n });\n return sum;\n }\n function sumTotalQuantityToOrder() {\n var sum = 0;\n _.forEach(vm.completeListOfPurchageAnalysisRows, function(article) {\n sum += _.sumBy(article.completeListOfArticleVariants, function(row) {\n return row.quantityToOrder;\n });\n });\n return sum;\n }\n function sumWarehouseStock(article) {\n var sum = _.sumBy(article.articleVariants, function(row) {\n return row.currentWarehouseStockQuantity;\n });\n return sum;\n }\n function sumStoreStock(article) {\n var sum = _.sumBy(article.articleVariants, function(row) {\n return row.currentStoreStockQuantity;\n });\n return sum;\n }\n function sumOrderedQuantity(article) {\n var sum = _.sumBy(article.articleVariants, function(row) {\n return row.orderedQuantity;\n });\n return sum;\n }\n function sumWeeksLeftInStock(article) {\n var sum = _.sumBy(article.articleVariants, function(row) {\n return row.weeksLeftInStock;\n });\n return sum;\n }\n function sumMonthsLeftInStock(article) {\n //Generalize month to four weeks\n var sum = 0;\n _.forEach(article.articleVariants, function(row) {\n sum += row.weeksLeftInStock / 4;\n });\n return sum;\n }\n\n function sumRowWeeksLeftInStock(row) {\n var sum = row.weeksLeftInStock;\n return sum;\n }\n function sumRowMonthsLeftInStock(row) {\n var sum = row.weeksLeftInStock / (4); //Month is generalized to four weeks\n return sum;\n }\n\n function showChangedWeekAverage(row) {\n var weeksLeftInStockAfterOrder = (vm.weeksLeftInStockAfterOrder(row)).toFixed(2);\n var sumRowWeeksLeftInStock = (vm.sumRowWeeksLeftInStock(row)).toFixed(2);\n\n return weeksLeftInStockAfterOrder > sumRowWeeksLeftInStock;\n }\n\n function showChangedMonthAverage(row) {\n var monthsLeftInStockAfterOrder = (vm.monthsLeftInStockAfterOrder(row)).toFixed(2);\n var sumRowMonthsLeftInStock = (vm.sumRowMonthsLeftInStock(row)).toFixed(2);\n\n return monthsLeftInStockAfterOrder > sumRowMonthsLeftInStock;\n }\n\n function canCreateOrder() {\n var sum = 0;\n _.forEach(vm.purchaseOrderAnalysisArticles, function(article) {\n sum += _.sumBy(article.articleVariants, function(row) {\n return row.quantityToOrder;\n });\n });\n\n return sum > 0;\n }\n\n function calculateMonth(monthNo, row) {\n switch (monthNo) {\n case 1:\n return row.week1 + row.week2 + row.week3 + row.week4;\n case 2:\n return row.week5 + row.week6 + row.week7 + row.week8;\n case 3:\n return row.week9 + row.week10 + row.week11 + row.week12;\n }\n }\n\n function clearFilter() {\n vm.selectedNumberOfResultsPerPage = 300;\n vm.includeInactive = false;\n vm.selectedArticleCollection = _.find(vm.articleCollections, { 'isCurrent': true });\n vm.selectedMainGroup = undefined;\n vm.selectedWeekLimit = undefined;\n filterAnalysisRows();\n }\n}\n\nangular\n .module('order.purchaseorderanalysis', [])\n .config(stateConfig)\n .controller('PurchaseOrderAnalysisController', PurchaseOrderAnalysisController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.purchaseordersearch', {\n url: '/purchaseordersearch',\n templateUrl: 'main/order/purchaseordersearch/purchaseordersearch.tpl.html',\n controller: 'PurchaseOrderSearchController as vm'\n });\n}\n\n// @ngInject\nfunction PurchaseOrderSearchController($state, $window, $scope, OrdersApiService, loadSpinnerService, ResourcesService) {\n var vm = this;\n\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n vm.itemsPerPage = 15;\n vm.totalItems = 0;\n\n vm.purchaseOrders = [];\n\n vm.transitionToState = transitionToState;\n\n vm.onlyOrderChangeOrders = true;\n vm.onlyUndelivered = false;\n\n activate();\n\n function activate() {\n console.log(\"Activating\");\n OrdersApiService.getPurchaseOrders(vm.currentPage, vm.searchTerm, vm.itemsPerPage, vm.onlyUndelivered, vm.onlyOrderChangeOrders).then(function(response) {\n vm.purchaseOrders = response.data.data;\n }, function(error) {\n console.log(error);\n });\n }\n\n function transitionToState(purchaseOrderId) {\n console.log(\"State.go\");\n $state.go('order.purchaseorder', {purchaseOrderId: purchaseOrderId});\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n}\n\nangular\n .module('order.purchaseordersearch', [])\n .config(stateConfig)\n .controller('PurchaseOrderSearchController', PurchaseOrderSearchController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.intrastatReports', {\n url: '/intrastatreports',\n templateUrl: 'main/order/reports/intrastatReports.tpl.html',\n controller: 'IntrastatReportsController as vm',\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction IntrastatReportsController($translate, Rms2ReportsApiService, ToasterService, loadSpinnerService) {\n var vm = this;\n\n //Variables\n vm.fromDate = new Date();\n vm.fromDate.setDate(vm.fromDate.getDate() - 1);\n vm.toDate = new Date();\n\n //Methods\n vm.getIntrastatReport = getIntrastatReport;\n\n function getIntrastatReport() {\n var request = {\n fromDate : vm.fromDate,\n toDate : vm.toDate\n }\n\n loadSpinnerService.start(\"mainSpinner\");\n Rms2ReportsApiService.getIntrastatReport(request).then(function(response) {\n console.log(response.data);\n ToasterService.showSuccess(\"SUCCESS\");\n }, function(error) {\n console.log(error);\n ToasterService.showError(error, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n}\n\nangular.module('order.intrastatReports', [])\n .config(stateConfig)\n .controller('IntrastatReportsController', IntrastatReportsController);\n","// @ngInject\nfunction Rms2ReportsApiService($q, $window, $cookies, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'reporting';\n\n return {\n getIntrastatReport: getIntrastatReport,\n };\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36012-36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s-_]){1,}.(pdf|csv|xls|xlsx)/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n \n function formatDate(date) {\n if (!date) { return ''; }\n return date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2);\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n return new Array(width + ((/\\./).test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function getIntrastatReport(request) {\n var reportRequest = {\n fromDeliveryDate: new Date(Date.UTC(request.fromDate.getFullYear(), request.fromDate.getMonth(), request.fromDate.getDate())),\n toDeliveryDate: new Date(Date.UTC(request.toDate.getFullYear(), request.toDate.getMonth(), request.toDate.getDate(), 23, 59, 59, 0)),\n }\n\n var jsonData = JSON.stringify(reportRequest);\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint + '/intrastatReport', jsonData).then(function(response) {\n var blob = new Blob([\"\\uFEFF\" + response.data.content], {type: 'data:text/csv;charset=utf-8'});\n var fileName = response.data.fileName;\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('reports.api2', [])\n .factory('Rms2ReportsApiService', Rms2ReportsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('order.transitReports', {\n url: '/transitreports',\n templateUrl: 'main/order/reports/transitReports.tpl.html',\n controller: 'TransitReportsController as vm',\n resolve: {\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction locationsResolver(OrdersApiService) {\n return OrdersApiService.getLocations();\n}\n\n// @ngInject\nfunction TransitReportsController($translate, OrdersApiService, ToasterService, locations, loadSpinnerService) {\n var vm = this;\n\n //Properties\n vm.reportParameters = {\n comparisonDate: new Date(),\n locationIds: []\n };\n vm.selectedLocations = [];\n vm.selectedCompanies = [];\n vm.printLanguage = 'se';\n vm.locations = locations;\n vm.selectedLocations = angular.copy(locations);\n\n //Methods\n vm.getTransitReport = getTransitReport;\n\n function getTransitReport() {\n vm.reportParameters.locationIds = [];\n vm.selectedLocations.forEach(function(location) { vm.reportParameters.locationIds.push(location.id); });\n vm.reportParameters.languageCode = vm.printLanguage;\n\n loadSpinnerService.start(\"mainSpinner\");\n OrdersApiService.downloadTransitReport(vm.reportParameters).then(function(response) {\n if (response && response.status === 204) {\n ToasterService.showWarning(\n $translate.instant('reports.ui.transit.comparisonDate') + ' ' +\n formatDate(vm.reportParameters.comparisonDate) + ' ' +\n $translate.instant('common.noResults'),\n $translate.instant('reports.ui.transit')\n );\n }\n }, function(error) {\n console.log(error);\n ToasterService.showError(error, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n function formatDate(date) {\n if (!date) { return ''; }\n return date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2);\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n return new Array(width + ((/\\./).test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n}\n\nangular.module('order.transitReports', [])\n .config(stateConfig)\n .controller('TransitReportsController', TransitReportsController);\n","// @ngInject\nfunction Rms2OrdersApiService($q, $window, $cookies, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'purchaseorder';\n\n return {\n getCountries: ResourcesService.apiRms2Factory.get('country/countries'),\n deliverStoreOrder: deliverStoreOrder,\n deliverAutoOrder: deliverAutoOrder,\n getAll: getAll,\n deliverInternalOrder: deliverInternalOrder,\n deliverAutoInternalOrder: deliverAutoInternalOrder,\n deliverReturnOrder: deliverReturnOrder,\n updateCommentOnOrderRows: updateCommentOnOrderRows\n };\n\n function getAll(searchTerms) {\n var deferred = $q.defer();\n var params = {};\n\n if (searchTerms.page && searchTerms.page < 0) {\n searchTerms.page = 1;\n }\n\n if (searchTerms.limit && searchTerms.limit > 0) {\n params.limit = searchTerms.limit;\n }\n\n if (!_.isEmpty(searchTerms.searchTerm)) {\n params.searchTerm = searchTerms.searchTerm;\n }\n\n params.page = searchTerms.page;\n params.orderTypes = searchTerms.orderTypes;\n params.onlyUndelivered = searchTerms.showUndeliveredOnly;\n params.onlyUnprinted = searchTerms.showUnprintedOnly;\n params.onlyUnapproved = searchTerms.showUnapprovedOnly;\n params.onlyOrderNumber = searchTerms.onlyOrderNumber;\n params.monthBack = searchTerms.monthBack;\n\n DSHttpAdapter.GET(DS.defaults.rms2Path + 'purchaseorder/search', { params: params }).then(function getAllOrders(response) {\n deferred.resolve(response.data.data);\n }, function getAllOrdersError(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverStoreOrder(request) {\n var transactionId = crypto.randomUUID();\n var deliveryRequest = {\n orderId: request.orderId,\n deliveringUserId: request.deliveringUserId,\n lineItems: []\n }\n _.forEach(request.lineItems, function(lineItem) {\n deliveryRequest.lineItems.push({\n id: transactionId,\n quantity: lineItem.quantity,\n lineNumber: lineItem.lineNumber,\n date: lineItem.date,\n closeDelivery: !lineItem.restDelivery\n });\n });\n\n var jsonData = JSON.stringify(deliveryRequest);\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint + '/deliverPurchaseOrder', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverAutoOrder(request) {\n var transactionId = crypto.randomUUID();\n var deliveryRequest = {\n orderId: request.orderId,\n deliveringUserId: request.deliveringUserId,\n lineItems: []\n }\n _.forEach(request.lineItems, function(lineItem) {\n deliveryRequest.lineItems.push({\n id: transactionId,\n quantity: lineItem.quantity,\n lineNumber: lineItem.lineNumber,\n date: lineItem.date,\n closeDelivery: !lineItem.restDelivery\n });\n });\n\n var jsonData = JSON.stringify(deliveryRequest);\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint + '/deliverAutoOrder', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverInternalOrder(request) {\n var transactionId = crypto.randomUUID();\n var deliveryRequest = {\n orderId: request.orderId,\n deliveringUserId: request.deliveringUserId,\n lineItems: []\n }\n _.forEach(request.lineItems, function(lineItem) {\n deliveryRequest.lineItems.push({\n id: transactionId,\n quantity: lineItem.quantity,\n lineNumber: lineItem.lineNumber,\n date: lineItem.date,\n closeDelivery: !lineItem.restDelivery\n });\n });\n\n var jsonData = JSON.stringify(deliveryRequest);\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint + '/deliverInternalOrder', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverAutoInternalOrder(request) {\n var transactionId = crypto.randomUUID();\n var deliveryRequest = {\n orderId: request.orderId,\n deliveringUserId: request.deliveringUserId,\n lineItems: []\n }\n _.forEach(request.lineItems, function(lineItem) {\n deliveryRequest.lineItems.push({\n id: transactionId,\n quantity: lineItem.quantity,\n lineNumber: lineItem.lineNumber,\n date: lineItem.date,\n closeDelivery: !lineItem.restDelivery\n });\n });\n\n var jsonData = JSON.stringify(deliveryRequest);\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint + '/deliverAutoInternalOrder', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deliverReturnOrder(request) {\n var transactionId = crypto.randomUUID();\n var deliveryRequest = {\n orderId: request.orderId,\n deliveringUserId: request.deliveringUserId,\n lineItems: []\n }\n _.forEach(request.lineItems, function(lineItem) {\n deliveryRequest.lineItems.push({\n id: transactionId,\n quantity: lineItem.quantity,\n lineNumber: lineItem.lineNumber,\n date: lineItem.date,\n closeDelivery: !lineItem.restDelivery\n });\n });\n\n var jsonData = JSON.stringify(deliveryRequest);\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint + '/deliverReturnOrder', jsonData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateCommentOnOrderRows(orderRows){\n var deferred = $q.defer();\n\n var request = {\n comment: orderRows[0].comment,\n orderRowIds: []\n };\n\n _.forEach(orderRows, function(row){\n request.orderRowIds.push(row.id);\n });\n\n DSHttpAdapter.PUT(DS.defaults.rms2Path + endpoint + '/updateOrderRowComment', request).then(function(response){\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n \n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('orders.api2', [])\n .factory('Rms2OrdersApiService', Rms2OrdersApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.importfileslist.articleimport',{\n url: '/articleimport',\n views: {'wideColumnView@product': {\n templateUrl: 'main/product/articleimport/articleimport.tpl.html',\n controller: 'ArticleImportController as vm'\n }},\n resolve: {\n companies: companiesResolver,\n collections: collectionsResolver,\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction companiesResolver(FileDataImportApiService) {\n return FileDataImportApiService.getSuppliers();\n}\n\n// @ngInject\nfunction collectionsResolver(FileDataImportApiService) {\n return FileDataImportApiService.getArticleCollections();\n}\n\n// @ngInject\nfunction locationsResolver(FileDataImportApiService) {\n return FileDataImportApiService.getLocations();\n}\n\n// @ngInject\nfunction ArticleImportController($state, $scope, $translate, companies, collections, locations, loadSpinnerService, FileDataImportApiService, ToasterService) {\n var vm = this;\n\n vm.companies = _.sortBy(companies, function(company) { return company.companyName; });\n vm.collections = collections;\n vm.locations = locations;\n\n vm.JSonAdaptedSheetData = {};\n vm.inDataColumnNames = [];\n\n vm.articlesOrdersImportRequest = {\n fileName: \"\",\n company: \"\",\n articlesOrdersImportRows: []\n };\n\n vm.selectedCollection = _.find(vm.collections, function(collection) {\n return collection.isCurrent;\n });\n vm.plannedDeliveryDate = new Date();\n\n vm.mapping = {\n alternativeArticleNumber: \"\",\n articleName: \"\",\n articleDescription: \"\",\n variant1Name: \"\",\n variant2Name: \"\",\n quantity: \"\",\n purchaseCost: \"\",\n previousPrice: \"\",\n salesPrice: \"\",\n itemGroupString: \"\",\n subCategory: \"\",\n articleTypeString: \"\",\n barcode: \"\",\n plannedDeliveryDate: \"\",\n orderNumberExternal: \"\",\n intrastatCode: \"\",\n departmentCode: \"\"\n };\n\n vm.articlesOrdersImport = {}; // The returned import data from backend.\n\n vm.handleFile = handleFile;\n vm.sendRequestData = sendRequestData;\n vm.saveMapping = saveMapping;\n vm.hasError = hasError;\n\n var fileInputDomElement = $(\"#xlf\")[ 0 ];\n\n activate();\n\n function activate() {\n fileInputDomElement.addEventListener('change', handleFile, false);\n\n $scope.$watch(function() { return vm.articlesOrdersImportRequest.company; },\n function(company) {\n if (company === undefined || company === \"\") {\n return;\n }\n\n FileDataImportApiService.getArticlesOrdersImportColumnMapping(company.id).then(function(response) {\n if (response.id !== 0) { // Mapping exists.\n var keys = Object.keys(response);\n _.forEach(keys, function(key) {\n if (_.find(vm.inDataColumnNames, function(columnName) { return columnName === response[key]; })) {\n vm.mapping[key] = response[key];\n }\n });\n }\n }, function (error) {\n console.log(error);\n });\n\n console.log(\"Company changed.\");\n console.log(company);\n }\n );\n }\n\n function hasError() {\n var hasNoCollectionCode = !vm.selectedCollection || !vm.selectedCollection.id;\n var hasNoBarcodeMapping = !vm.mapping || vm.mapping.barcode === '';\n //var hasNoLocation = !vm.articlesOrdersImportRequest.location || !vm.articlesOrdersImportRequest.location.id;\n var hasNoCompany = !vm.articlesOrdersImportRequest.company || !vm.articlesOrdersImportRequest.company.id;\n return hasNoCollectionCode || hasNoBarcodeMapping || hasNoCompany; //|| hasNoLocation\n }\n\n function handleFile(e) {\n var files = e.target.files;\n var i,f;\n for (i = 0, f = files[i]; i !== files.length; ++i) {\n var reader = new FileReader();\n\n reader.onload = onLoadFunction;\n loadSpinnerService.start('mainSpinner');\n reader.readAsArrayBuffer(f);\n }\n\n function onLoadFunction(e) {\n try {\n // --- File data read ---\n // From MDN: \"readAsBinaryString is deprecated and readAsArrayBuffer() should be used instead.\"\n\n // ReadAsArrayBuffer solution.\n var data = \"\";\n var bytes = new Uint8Array(e.target.result);\n var length = bytes.byteLength;\n for (var i = 0; i < length; i++) {\n data += String.fromCharCode(bytes[i]);\n }\n\n // --- XLSX ---\n // Read Excel data into a workbook object representation.\n var workbook = XLSX.read(data, {type: 'binary'});\n\n // Getting the name of the first sheet in the workbook.\n var firstSheetName = workbook.SheetNames[0];\n\n // Getting the sheet based on the firstSheetName.\n var workSheet = workbook.Sheets[firstSheetName];\n\n // The JSon representation of the worksheet returned by js-xlsx is pretty similar to how\n // we want our request data to be formatted.\n vm.JSonAdaptedSheetData = XLSX.utils.sheet_to_json(workSheet);\n\n extractInDataColumnNames();\n } catch (error) {\n console.log(error);\n } finally {\n loadSpinnerService.stop('mainSpinner');\n }\n }\n }\n\n // Once the mapping has been determined we can use it to create the DTOs we're going\n // to send to the backend.\n function createRequestData() {\n vm.articlesOrdersImportRequest.articlesOrdersImportRows = [];\n\n var mappingKeys = Object.keys(vm.mapping);\n\n _.forEach(vm.JSonAdaptedSheetData, function(rowObject) {\n var requestDto = {};\n _.forEach(mappingKeys, function(mapKey) {\n var mapValue = vm.mapping[mapKey];\n if (mapValue !== \"\" || mapValue !== undefined) {\n requestDto[mapKey] = rowObject[mapValue];\n requestDto['collection'] = vm.selectedCollection.collectionCode;\n requestDto['plannedDeliveryDate'] = vm.plannedDeliveryDate;\n }\n });\n\n vm.articlesOrdersImportRequest.articlesOrdersImportRows.push(requestDto);\n });\n\n vm.articlesOrdersImportRequest.fileName = fileInputDomElement.value;\n }\n\n function saveMapping() {\n var mappingRequest = {\n alternativeArticleNumber: vm.mapping.alternativeArticleNumber,\n articleDescription: vm.mapping.articleDescription,\n articleName: vm.mapping.articleName,\n articleTypeString: vm.mapping.articleTypeString,\n barcode: vm.mapping.barcode,\n departmentCode: vm.mapping.departmentCode,\n intrastatCode: vm.mapping.intrastatCode,\n itemGroupString: vm.mapping.itemGroupString,\n orderNumberExternal: vm.mapping.orderNumberExternal,\n plannedDeliveryDate: vm.mapping.plannedDeliveryDate,\n previousPrice: vm.mapping.previousPrice,\n purchaseCost: vm.mapping.purchaseCost,\n quantity: vm.mapping.quantity,\n salesPrice: vm.mapping.salesPrice,\n subCategory: vm.mapping.subCategory,\n variant1Name: vm.mapping.variant1Name,\n variant2Name: vm.mapping.variant2Name\n };\n\n FileDataImportApiService.setArticlesOrdersImportColumnMapping(vm.articlesOrdersImportRequest.company.id, mappingRequest);\n }\n\n // Post the assembled data to backend.\n function sendRequestData() {\n saveMapping();\n loadSpinnerService.start('mainSpinner');\n createRequestData();\n\n FileDataImportApiService.createArticlesOrders(vm.articlesOrdersImportRequest).then(function(response) {\n vm.articlesOrdersImport = response;\n $state.go('product.importfileslist.importeditor', { importFileId: vm.articlesOrdersImport.id });\n }, function(error) {\n console.log(error);\n showErrorToaster(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n // js-xlsx has done most of the work already. All we need to do is extract the javascript object\n // property names, and we're set.\n function extractInDataColumnNames() {\n if (vm.JSonAdaptedSheetData.length !== 0) {\n vm.inDataColumnNames = [];\n vm.inDataColumnNames.push(\"\");\n _.forEach(vm.JSonAdaptedSheetData, function(sheetData) {\n var keys = Object.keys(sheetData);\n\n _.forEach(keys, function(key) {\n if (!_.find(vm.inDataColumnNames, function(name) { return name === key; })) {\n vm.inDataColumnNames.push(key);\n }\n });\n });\n }\n }\n\n function showErrorToaster(message) {\n var title = $translate.instant('common.error');\n ToasterService.showError(message, title);\n }\n\n}\n\nangular\n .module('importfileslist.articleimport', [])\n .config(stateConfig)\n .controller('ArticleImportController', ArticleImportController);\n","// @ngInject\nfunction ArticleAddNewArticleVariantDialogService($uibModal, ProductsApiService){\n return {\n showDialog: showDialog\n };\n\n function showDialog(article, articleCollections, variantGroups){\n var modalDefaults = {\n backdrop: 'static',\n keyboard: false,\n controller: 'ArticleAddNewArticleVariantDialogController as vm',\n templateUrl: 'main/product/articles/articleAddNewArticleVariantDialog/articleAddNewArticleVariantDialog.tpl.html',\n size: 'lg',\n resolve: {\n articleObject: function (){\n return article;\n },\n articleCollections: function (){\n return articleCollections;\n },\n variantGroups: function (){\n return variantGroups.variantGroups;\n }\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction ArticleAddNewArticleVariantDialogController($scope, $uibModalInstance, articleObject, articleCollections ,variantGroups, ProductsApiService, VariantsApiService, loadSpinnerService, ToasterService, $translate) {\n var vm = this;\n\n//Variables\n //relevant data\n vm.articleObject = articleObject;\n vm.articleCollections = articleCollections;\n vm.variantGroups = variantGroups;\n vm.selectedVariantGroup = null;\n vm.selectedVariant = null;\n vm.sizes = [];\n vm.colors = [];\n vm.isBarcodeGenerationAllowed = true;\n\n vm.fromSizeOption = 'product'\n //new data\n vm.newArticleVariants = [];\n vm.newColorName = \"\";\n vm.newSalesColorName = \"\";\n vm.colorError = {};\n vm.newArticleCollection = vm.articleObject.articleCollection;\n vm.newPurchaseCost = vm.articleObject.purchaseCost;\n vm.newSalesPrice = vm.articleObject.salesPrice;\n vm.newPreviousPrice = vm.articleObject.previousPrice;\n\n//Functions\n vm.resetValuesFromArticle = resetValuesFromArticle;\n vm.updateValues = updateValues;\n vm.removeVariantDetail = removeVariantDetail;\n vm.updateFromSizes = updateFromSizes;\n vm.addSelectedVariant = addSelectedVariant;\n //validation\n vm.validateNewColor = validateNewColor;\n vm.validateSizes = validateSizes;\n vm.validateBarcode = validateBarcode;\n vm.anyVariantsSelected = anyVariantsSelected;\n vm.anyErrorOnVariants = anyErrorOnVariants;\n vm.hasError = hasError;\n vm.hasWarning = hasWarning;\n vm.isAddButtonDisabled = isAddButtonDisabled;\n vm.getErrorTooltip = getErrorTooltip;\n //final \n vm.addArticleVariantsToProduct = addArticleVariantsToProduct;\n vm.closeModal = closeModal;\n\n activate();\n \n function activate() { \n addWatchesForSelect();\n addUniqueColors();\n addUniqueSizes();\n\n firstInit();\n validateNewColor();\n validateSizes();\n }\n\n function firstInit(){\n vm.selectedVariantGroup = _.isUndefined(vm.articleObject.variantGroup2) ? null : _.find(vm.variantGroups, function(vg){\n return vg.id === vm.articleObject.variantGroup2.id\n });\n vm.selectedVariant = null;\n vm.isBarcodeGenerationAllowed = (vm.articleObject.itemGroup.brand.brandCategory !== undefined && vm.articleObject.itemGroup.brand.brandCategory.isBarcodeGenerationAllowed);\n \n if(vm.sizes.length > 0){\n vm.fromSizeOption = 'product';\n }\n else if(vm.variantGroups.length > 0) {\n vm.fromSizeOption = 'variantgroup';\n }\n else{\n vm.fromSizeOption = 'variant';\n }\n\n vm.newColorName = \"\";\n vm.colorError = {\n severity: \"\",\n messageKey: \"\",\n colorObj: {}\n };\n\n updateFromSizes();\n }\n\n function addWatchesForSelect(){\n $scope.$watch(function() {\n return vm.selectedVariant;\n },function(){\n addSelectedVariant();\n }); \n\n $scope.$watch(function() {\n return vm.selectedVariantGroup;\n },function(){\n updateFromSizes();\n });\n }\n\n function initializeNewArticleVariants(fromSizes, orderBy){\n vm.newArticleVariants = [];\n\n vm.newArticleCollection = vm.articleObject.articleCollection;\n vm.newPurchaseCost = vm.articleObject.purchaseCost;\n vm.newSalesPrice = vm.articleObject.salesPrice;\n vm.newPreviousPrice = vm.articleObject.previousPrice;\n \n var sortedSizes = fromSizes.sort((a, b) => {\n return a[orderBy] - b[orderBy];\n });\n\n _.forEach(sortedSizes, function (size) {\n addNewArticleVariant({ id: size.id, name: size.variantDetailName, sortOrder: size.sortOrder }, false);\n });\n }\n\n function addSelectedVariant(){\n if(vm.selectedVariant !== null && vm.selectedVariant !== \"\")\n addNewArticleVariant(vm.selectedVariant, true);\n\n vm.selectedVariant = null;\n }\n\n function removeVariantDetail(atIndex){\n vm.newArticleVariants.splice(atIndex, 1);\n }\n\n function addNewArticleVariant (size, removeable){\n if(vm.newArticleVariants.filter(x => x.variantDetail2.id === size.id).length === 0){\n vm.newArticleVariants.push(\n {\n id : 0,\n barcode : \"\",\n articleCollection: vm.newArticleCollection,\n purchaseCost: vm.newPurchaseCost,\n salesPrice: vm.newSalesPrice,\n previousPrice: vm.newPreviousPrice,\n variantDetail1: { variantDetailName: vm.newColorName.trim() },\n variantDetail2: { id: size.id, variantDetailName: size.name, sortOrder: size.sortOrder },\n salesColour: vm.newColorName.trim(),\n useThisVariant: true,\n isRemoveable: removeable,\n errorBarcodeGenerationNotAllowed: !vm.isBarcodeGenerationAllowed\n }\n );\n }\n\n validateSizes();\n }\n\n function addUniqueColors(){\n vm.colors = [];\n _.forEach(vm.articleObject.articleVariants, function(articleVariant) {\n var existingColor = vm.colors.find(x => x.color.variantDetailName === articleVariant.variantDetail1.variantDetailName)\n\n if(_.isUndefined(existingColor)){ //Add color to list of unique colors\n vm.colors.push({\n color: articleVariant.variantDetail1,\n sizesOnColor: [articleVariant.variantDetail2]\n });\n }\n else { //Add size to existing color\n existingColor.sizesOnColor.push(articleVariant.variantDetail2);\n }\n });\n }\n\n function addUniqueSizes(){\n vm.sizes = [];\n _.forEach(vm.articleObject.articleVariants, function(articleVariant) {\n if(!vm.sizes.some(x => x.id === articleVariant.variantDetail2.id)){\n vm.sizes.push(articleVariant.variantDetail2);\n }\n });\n\n }\n\n function updateValues() {\n if(!_.isUndefined(vm.newColorName) && vm.newColorName !== \"\"){\n _.forEach(vm.newArticleVariants, function(newArticleVariant){\n newArticleVariant.purchaseCost = vm.newPurchaseCost;\n newArticleVariant.salesPrice = vm.newSalesPrice;\n newArticleVariant.previousPrice = vm.newPreviousPrice; \n newArticleVariant.variantDetail1 = { variantDetailName: vm.newColorName.trim() }; \n newArticleVariant.salesColour = vm.newSalesColorName === \"\" || _.isUndefined(vm.newSalesColorName) ? vm.newColorName.trim() : vm.newSalesColorName.trim(); \n newArticleVariant.articleCollection = vm.newArticleCollection; \n });\n }\n \n validateNewColor();\n validateSizes();\n }\n\n function resetValues(){\n addUniqueColors();\n addUniqueSizes();\n\n if(!_.isUndefined(vm.newColorName) && vm.newColorName !== \"\"){\n _.forEach(vm.newArticleVariants, function(newArticleVariant){\n newArticleVariant.purchaseCost = vm.newPurchaseCost;\n newArticleVariant.salesPrice = vm.newSalesPrice;\n newArticleVariant.previousPrice = vm.newPreviousPrice; \n newArticleVariant.variantDetail1 = { variantDetailName: vm.newColorName.trim() }; \n newArticleVariant.salesColour = vm.newSalesColorName === \"\" || _.isUndefined(vm.newSalesColorName) ? vm.newColorName.trim() : vm.newSalesColorName.trim(); \n newArticleVariant.articleCollection = vm.newArticleCollection; \n newArticleVariant.barcode = \"\";\n newArticleVariant.errorBarcodeGenerationNotAllowed = !vm.isBarcodeGenerationAllowed\n });\n }\n \n validateNewColor();\n validateSizes();\n }\n\n function addArticleVariantsToProduct(shouldClose){\n if(!isAddButtonDisabled()){\n _.forEach(vm.newArticleVariants, function(newAv){ \n if(newAv.useThisVariant){\n vm.articleObject.articleVariants.push(angular.copy(newAv));\n }\n });\n\n if(vm.fromSizeOption === 'variantgroup'){\n vm.articleObject.variantGroup2 = angular.copy(vm.selectedVariantGroup);\n }\n\n ToasterService.showSuccess(\"\", $translate.instant('common.done'));\n\n if(shouldClose)\n closeModal()\n else{\n vm.newSalesColorName = \"\"; \n document.getElementById(\"color\").select();\n resetValues();\n }\n }\n else {\n ToasterService.showError(\"\", $translate.instant('common.error'));\n }\n }\n\n function resetValuesFromArticle(){\n firstInit();\n validateNewColor();\n validateSizes();\n }\n\n function validateNewColor(){\n vm.colorError = {};\n\n if(_.isUndefined(vm.newColorName) || vm.newColorName.trim().length === 0) {\n vm.colorError.messageKey = \"article.newarticlevariant.error.colorempty\";\n vm.colorError.severity = \"error\";\n vm.colorError.colorObj = {};\n return;\n }\n\n _.forEach(vm.colors, function(color){\n if(normalizeString(color.color.variantDetailName.toLowerCase()) === normalizeString(vm.newColorName.trim().toLowerCase())){\n vm.colorError.messageKey = \"article.newarticlevariant.warning.coloralreadyexists\";\n vm.colorError.severity = \"warning\";\n vm.colorError.colorObj = color;\n }\n })\n }\n\n function validateSizes(){\n _.forEach(vm.newArticleVariants, function(newArtVar){\n var sizeId = newArtVar.variantDetail2.id;\n newArtVar.errorOnSize = false;\n\n if(vm.colorError.severity === \"warning\"){\n var sizeExist = vm.colorError.colorObj.sizesOnColor.filter(x => x.id === sizeId).length > 0\n newArtVar.hasError = sizeExist;\n newArtVar.errorOnSize = sizeExist;\n }\n \n checkErrorOnVariant(newArtVar);\n });\n }\n\n function validateBarcode(articleVariant){\n articleVariant.errorBarcodeExists = false;\n articleVariant.errorBarcodeDuplicate = false;\n articleVariant.errorBarcodeGenerationNotAllowed = false;\n\n if(!_.isUndefined(articleVariant.barcode) && articleVariant.barcode.trim() !== \"\")\n {\n checkIfBarcodeOnSelectedArticle(articleVariant);\n checkIfBarcodeExistsAlready(articleVariant);\n }\n else if(!vm.isBarcodeGenerationAllowed){\n articleVariant.errorBarcodeGenerationNotAllowed = true;\n }\n\n checkIfBarcodeDuplicatesInNewVariants();\n\n validateSizes();\n }\n\n function checkIfBarcodeOnSelectedArticle(articleVariant){\n var filteredAVlength = vm.articleObject.articleVariants.filter(x => x.barcode === articleVariant.barcode).length;\n var filteredAVBlength = vm.articleObject.articleVariants.filter(x => _.isUndefined(x.articleVariantBarcodes) ? false : x.articleVariantBarcodes.filter(y => y.barcode === articleVariant.barcode).length !== 0).length;\n\n articleVariant.errorBarcodeExists = filteredAVlength !== 0 || filteredAVBlength !== 0\n }\n\n function checkIfBarcodeDuplicatesInNewVariants(){\n _.forEach(vm.newArticleVariants, function(av) {\n if(!_.isUndefined(av.barcode) && av.barcode.trim() !== \"\")\n av.errorBarcodeDuplicate = vm.newArticleVariants.filter(x => x.barcode === av.barcode).length > 1\n })\n }\n\n function checkIfBarcodeExistsAlready(articleVariant){\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.checkIfBarcodeExists(articleVariant.barcode).then(function(response){\n if(response)\n articleVariant.errorBarcodeExists = true;\n checkErrorOnVariant(articleVariant);\n }, function(error){\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateFromSizes(){\n vm.newArticleVariants = [];\n if(vm.fromSizeOption === 'product'){\n initializeNewArticleVariants(vm.sizes, 'sortOrder');\n }\n else if(vm.fromSizeOption === 'variantgroup'){\n if(vm.selectedVariantGroup !== null){\n initializeNewArticleVariants(vm.selectedVariantGroup.variantDetails, 'sortOrder');\n }\n }\n else if(vm.fromSizeOption === 'variant'){\n //Do nothing\n }\n }\n\n function checkErrorOnVariant(articleVariant){\n articleVariant.hasError = articleVariant.errorOnSize || articleVariant.errorBarcodeExists || articleVariant.errorBarcodeDuplicate || articleVariant.errorBarcodeGenerationNotAllowed;\n }\n\n function anyVariantsSelected(){\n return vm.newArticleVariants.filter(x => x.useThisVariant).length > 0; \n }\n\n function anyErrorOnVariants(){\n return vm.newArticleVariants.filter(x => x.hasError && x.useThisVariant).length > 0;\n }\n\n function hasError() {\n if(vm.colorError.severity === \"error\")\n return true;\n\n return false;\n }\n \n function hasWarning() {\n if(vm.colorError.severity === \"warning\")\n return true;\n\n return false;\n }\n\n function getErrorTooltip(articleVariant){\n var text = \"\";\n\n if(articleVariant.errorOnSize){\n text += $translate.instant('article.newarticlevariant.error.sizealreadyoncolor');\n } \n\n if(articleVariant.errorBarcodeExists){\n text += (text.length > 0 ? \", \" : \"\") + $translate.instant('article.newarticlevariant.error.barcodeexists');\n }\n\n if(articleVariant.errorBarcodeDuplicate){\n text += (text.length > 0 ? \", \" : \"\") + $translate.instant('article.newarticlevariant.error.barcodeduplicate');\n }\n\n if(articleVariant.errorBarcodeGenerationNotAllowed){\n text += (text.length > 0 ? \", \" : \"\") + $translate.instant('article.newarticlevariant.error.barcodegenerationnotallowed');\n }\n\n return text;\n }\n\n function isAddButtonDisabled(){\n return(vm.hasError() || vm.anyErrorOnVariants() || !vm.anyVariantsSelected())\n }\n\n function normalizeString(str) {\n //Make sure string contains only letters, numbers and some special characters\n var retVal = str;\n var r = /[^ \\(\\)\\/\\\\0-9\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]+/g;\n retVal = str.replace(r, '');\n //Make sure there are no extra whitespace\n var r2 = /[\\s]{2,}/g;\n retVal = retVal.replace(r2, ' ');\n //Remove leading and trailing whitespace\n retVal = retVal.trim();\n return retVal;\n }\n\n function closeModal() {\n $uibModalInstance.close();\n }\n}\n\nangular\n .module('product.articles.articleAddNewArticleVariantDialog', [])\n .service('ArticleAddNewArticleVariantDialogService', ArticleAddNewArticleVariantDialogService)\n .controller('ArticleAddNewArticleVariantDialogController', ArticleAddNewArticleVariantDialogController);","// @ngInject\nfunction ArticleChangeItemGroupDialogService($uibModal, ProductsApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(articleId, itemGroups) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'ArticleChangeItemGroupDialogController as vm',\n templateUrl: 'main/product/articles/articleChangeItemGroupDialog/articleChangeItemGroupDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n article: function () {\n return ProductsApiService.getProduct(articleId);\n },\n itemGroups: function () {\n return itemGroups;\n },\n salesChannels: function () {\n return ProductsApiService.getSalesChannels();\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction ArticleChangeItemGroupDialogController($scope, $uibModalInstance, $timeout, article, itemGroups, salesChannels, ProductsApiService, FileOperationsApiService, loadSpinnerService, ResourcesService, ToasterService, $translate) {\n var vm = this;\n\n vm.selectedArticle = article;\n vm.selectedArticleCopy = angular.copy(vm.selectedArticle);\n vm.newArticleVariantsForNewSuppliers = [];\n vm.itemGroups = itemGroups;\n vm.closeModal = closeModal;\n vm.hasChanged = false;\n vm.isNewItemGroup = false;\n vm.isNewSupplier = false;\n vm.changesToSupplier = false;\n vm.includeSupplierPrices = false;\n vm.availableSubCategories = [];\n vm.availableDepartments = [];\n vm.newSuppliers = [];\n vm.sameSuppliers = [];\n vm.removedSuppliers = [];\n vm.salesChannels = salesChannels;\n\n vm.changeItemGroup = changeItemGroup;\n vm.copyToAllPrices = copyToAllPrices;\n vm.saveNewItemGroup = saveNewItemGroup;\n vm.setSupplierData = setSupplierData;\n vm.copyAllNewVariantsForSupplierPrices = copyAllNewVariantsForSupplierPrices;\n activate();\n\n\n function activate() {\n }\n\n function changeItemGroup(itemGroup) {\n if (itemGroup) {\n vm.selectedArticleCopy.subCategory = {};\n loadItemGroupData(itemGroup);\n }\n }\n function loadItemGroupData(itemGroup) {\n ProductsApiService.getItemGroup(itemGroup.id).then(function (result) {\n vm.selectedArticleCopy.itemGroup = result;\n loadMainGroupData(result, true);\n\n vm.selectedArticleCopy.preferredSupplier = result.brand.company;\n vm.selectedArticleCopy.suppliers = result.brand.companies;\n \n vm.removedSuppliers.length = 0;\n vm.sameSuppliers.length = 0;\n vm.newSuppliers.length = 0;\n\n _.forEach(vm.selectedArticleCopy.suppliers, function(newSupp){\n if (!_.find(vm.selectedArticle.suppliers, function(oldSupp) {return oldSupp.id === newSupp.id; }))\n vm.newSuppliers.push(newSupp);\n else {\n vm.sameSuppliers.push(newSupp);\n }\n });\n \n _.forEach(vm.selectedArticle.suppliers, function(oldSupp){\n if (!_.find(vm.sameSuppliers, function(sameSupp) {return sameSupp.id === oldSupp.id; }))\n vm.removedSuppliers.push(oldSupp);\n });\n\n _.forEach(vm.selectedArticleCopy.articleVariants, function(av){\n if(av.supplierPrices.length > 0)\n vm.includeSupplierPrices = true;\n })\n\n copyAllNewVariantsForSupplierPrices();\n\n \n console.log(vm.selectedArticleCopy);\n\n vm.hasChanged = true;\n vm.isNewItemGroup = Boolean(vm.selectedArticleCopy.itemGroup.itemGroupCode !== vm.selectedArticle.itemGroup.itemGroupCode);\n vm.changesToSupplier = Boolean(vm.selectedArticleCopy.preferredSupplier.id !== vm.selectedArticle.preferredSupplier.id || vm.selectedArticleCopy.suppliers.length > 1);\n vm.isNewSupplier = Boolean(vm.removedSuppliers.length > 0 || vm.newSuppliers.length > 0);\n });\n }\n function loadMainGroupData(itemGroup, setDefaults) {\n if (itemGroup) {\n ProductsApiService.getMainGroup(itemGroup.mainGroup.id).then(function (result) {\n vm.selectedArticleCopy.itemGroup.mainGroup = result;\n\n vm.availableSubCategories = _.sortBy(result.subCategories, function (subCategory) {\n return subCategory.subCategoryCode;\n });\n\n vm.availableDepartments = _.sortBy(result.departments, function (department) {\n return department.departmentCode;\n });\n resolveIntrastats();\n\n if (setDefaults) {\n selectDefaultDepartment(result.departments);\n selectDefaultSubCatgory(result.subCategories);\n selectDefaultAccounts(result);\n }\n\n ProductsApiService.getVariant(result.variant2.id).then(function (variant) {\n vm.variant2 = variant;\n selectDefaultVat();\n selectDefaultIntrastat();\n selectDefaultVariantGroup();\n selecteDefaultIsVariant();\n selectDefaultSalechannels(itemGroup);\n });\n });\n }\n }\n function setSupplierData(itemGroup) {\n if (itemGroup) {\n \n }\n }\n function copyAllNewVariantsForSupplierPrices() {\n\n vm.newArticleVariantsForNewSuppliers.length = 0;\n if(vm.includeSupplierPrices){ \n _.forEach(vm.newSuppliers, function (supplier) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function (variant) {\n var newVariant = {\n purchaseCost: variant.purchaseCost,\n variantDetail1: variant.variantDetail1,\n variantDetail2: variant.variantDetail2,\n articleVariantId: variant.id,\n companyName: supplier.companyName,\n purchasingCurrency: supplier.purchasingCurrency,\n preferredSupplierId: supplier.id\n };\n\n vm.newArticleVariantsForNewSuppliers.push(newVariant);\n });\n });\n }\n\n }\n function resolveIntrastats() {\n\n var intrastats = [];\n\n if (vm.selectedArticleCopy.itemGroup) {\n\n var mainGroup = vm.selectedArticleCopy.itemGroup.mainGroup;\n var subCategory = vm.selectedArticleCopy.subCategory;\n\n if (mainGroup && mainGroup.intrastats) {\n intrastats = _.unionBy(intrastats, mainGroup.intrastats, 'id');\n }\n if (subCategory && subCategory.intrastats) {\n intrastats = _.unionBy(intrastats, subCategory.intrastats, 'id');\n }\n\n if (!vm.selectedArticleCopy.intrastat || _.filter(intrastats, { id: vm.selectedArticleCopy.intrastat.id }).length === 0) {\n selectDefaultIntrastat();\n }\n }\n\n intrastats.forEach(function (intrastat) {\n if (intrastat.internalDescription && intrastat.internalDescription.length > 15) {\n intrastat.internalDescription = intrastat.internalDescription.substr(0, 15) + '...';\n }\n }, this);\n\n vm.intrastats = intrastats;\n }\n\n function selectDefaultVat() {\n if (vm.selectedArticleCopy.itemGroup && vm.selectedArticleCopy.itemGroup.vat) {\n var vatId = vm.selectedArticleCopy.itemGroup.vat.id;\n var vat = _.find(vm.vats, function (vat) {\n return vat.id === vatId;\n });\n vm.selectedArticleCopy.vat = vat;\n\n\n }\n }\n\n function selectDefaultSalechannels(itemGroup) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('article.checkingSalesChannels') });\n ProductsApiService.getItemGroup(itemGroup.id).then(function (response) {\n itemGroup = response;\n\n var salesChannels = _.clone(vm.salesChannels);\n\n if (itemGroup.mainGroup && itemGroup.mainGroup.salesChannels && itemGroup.mainGroup.salesChannels.length > 0) {\n salesChannels = _.intersectionBy(salesChannels, itemGroup.mainGroup.salesChannels, 'id');\n }\n\n if (itemGroup.brand && itemGroup.brand.salesChannels && itemGroup.brand.salesChannels.length > 0) {\n salesChannels = _.intersectionBy(salesChannels, itemGroup.brand.salesChannels, 'id');\n }\n\n vm.selectedArticleCopy.salesChannels = salesChannels;\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function selectDefaultDepartment(departments) {\n if (departments.length === 1) {\n vm.selectedArticleCopy.department = departments[0];\n }\n }\n\n function selectDefaultSubCatgory(subCategories) {\n if (subCategories.length === 1) {\n vm.selectedArticleCopy.subCategory = subCategories[0];\n }\n }\n\n function selectDefaultAccounts(mainGroup) {\n if (mainGroup.discountAccount) {\n vm.selectedArticleCopy.discountAccount = mainGroup.discountAccount;\n }\n if (mainGroup.salesAccount) {\n vm.selectedArticleCopy.salesAccount = mainGroup.salesAccount;\n }\n }\n\n function selecteDefaultIsVariant() {\n if (vm.selectedArticleCopy.itemGroup && vm.selectedArticleCopy.itemGroup.mainGroup) {\n vm.selectedArticleCopy.isVariant = vm.selectedArticleCopy.itemGroup.mainGroup.isVariant;\n }\n }\n function selectDefaultIntrastat() {\n if (!vm.hasChanged) {\n return;\n }\n\n //If exists in both\n if (vm.selectedArticleCopy.itemGroup.mainGroup && vm.selectedArticleCopy.subCategory) {\n var intrastats = _.intersectionBy(vm.selectedArticleCopy.itemGroup.mainGroup.intrastats, vm.selectedArticleCopy.subCategory.intrastats, 'id');\n if (intrastats.length === 1) {\n vm.selectedArticleCopy.intrastat = intrastats[0];\n return;\n }\n }\n\n //If only one in maingroup\n if (vm.selectedArticleCopy.itemGroup.mainGroup && vm.selectedArticleCopy.itemGroup.mainGroup.intrastats && vm.selectedArticleCopy.itemGroup.mainGroup.intrastats.length === 1) {\n vm.selectedArticleCopy.intrastat = vm.selectedArticleCopy.itemGroup.mainGroup.intrastats[0];\n return;\n }\n\n //If only one in subCategory\n if (vm.selectedArticleCopy.subCategory && vm.selectedArticleCopy.subCategory.intrastats && vm.selectedArticleCopy.subCategory.intrastats.length === 1) {\n vm.selectedArticleCopy.intrastat = vm.selectedArticleCopy.subCategory.intrastats[0];\n return;\n }\n }\n\n function selectDefaultVariantGroup() {\n if (vm.selectedArticleCopy.itemGroup.variantGroup2 !== undefined && vm.selectedArticleCopy.itemGroup.variantGroup2 !== null) {\n var groupId = vm.selectedArticleCopy.itemGroup.variantGroup2.id;\n var group = _.find(vm.variant2.variantGroups, function (variantGroup) {\n return variantGroup.id === groupId;\n });\n vm.selectedArticleCopy.variantGroup2 = group;\n changeVariantGroup();\n }\n }\n\n function copyToAllPrices(sourceArticleVariant) {\n _.forEach(vm.newArticleVariantsForNewSuppliers, function (variant) {\n if (sourceArticleVariant.preferredSupplierId === variant.preferredSupplierId) {\n variant.purchaseCost = sourceArticleVariant.purchaseCost;\n }\n });\n }\n\n function saveNewItemGroup() {\n\n var requestObject = {\n articleId: vm.selectedArticleCopy.id,\n newItemGroupId: vm.selectedArticleCopy.itemGroup.id,\n newPreferredSupplierId: vm.selectedArticleCopy.preferredSupplier.id,\n newArticleVariantSupplierPrices: [],\n salesChannelsIds: []\n };\n\n _.forEach(vm.selectedArticle.salesChannels, function (salesChannel) {\n requestObject.salesChannelsIds.push(salesChannel.id);\n });\n \n _.forEach(vm.newArticleVariantsForNewSuppliers, function (artVarSupp) {\n requestObject.newArticleVariantSupplierPrices.push({\n articleVariantId: artVarSupp.articleVariantId,\n newPurchaseCost: artVarSupp.purchaseCost,\n newSupplierId: artVarSupp.preferredSupplierId\n });\n });\n\n _.forEach(vm.sameSuppliers, function (sameSupp){\n _.forEach(vm.selectedArticle.articleVariants, function(artVar){\n requestObject.newArticleVariantSupplierPrices.push({\n articleVariantId: artVar.id,\n newPurchaseCost: artVar.purchaseCost,\n newSupplierId: sameSupp.id\n });\n });\n });\n\n loadSpinnerService.start(\"mainSpinner\");\n ProductsApiService.changeItemGroup(requestObject).then(function (response) {\n var message = `${$translate.instant('common.new')} ${$translate.instant('article.itemgroup')}: ${response.itemGroup.itemGroupCode} ${response.itemGroup.itemGroupLongName}`;\n ToasterService.showSuccess(message, $translate.instant('support.itemGroupChanged'));\n closeModal(true);\n }, function (error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n function closeModal(refresh) {\n $uibModalInstance.close(refresh);\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('product.articles.articleChangeItemGroupDialog', [])\n .service('ArticleChangeItemGroupDialogService', ArticleChangeItemGroupDialogService)\n .controller('ArticleChangeItemGroupDialogController', ArticleChangeItemGroupDialogController);","// @ngInject\nfunction ArticleChangeVariantDetailDialogService($uibModal, ProductsApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(article) {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: false,\n controller: 'ArticleChangeVariantDetailDialogController as vm',\n templateUrl: 'main/product/articles/articleChangeVariantDetailDialog/articleChangeVariantDetailDialog.tpl.html',\n size: 'md',\n resolve: {\n articleChangeVariantDetailObject: function () {\n return ProductsApiService.getArticleChangeVariantDetailObject(article.id);\n }\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n\n// @ngInject\nfunction ArticleChangeVariantDetailDialogController($scope, $uibModalInstance, $timeout, articleChangeVariantDetailObject, ProductsApiService, loadSpinnerService, ResourcesService, ToasterService, $translate) {\n var vm = this;\n\n vm.changeVariantDetailObject = articleChangeVariantDetailObject;\n\n _.forEach(vm.changeVariantDetailObject.articleVariantDetailObjects, function(dobj){\n dobj.newVariantDetailName = \"\"\n })\n\n vm.anyError = false;\n vm.isValidating = false;\n\n vm.closeModal = closeModal;\n vm.saveNewVariantDetails = saveNewVariantDetails;\n vm.anyChanges = anyChanges;\n vm.getColourText = getColourText;\n\n vm.validate = validate;\n\n activate();\n \n function activate() {}\n\n function validate(){\n _.forEach(vm.changeVariantDetailObject.articleVariantDetailObjects, function(obj){obj.hasError = false;});\n vm.anyError = false;\n vm.isValidating = true;\n\n _.forEach(vm.changeVariantDetailObject.articleVariantDetailObjects.filter(x => x.newVariantDetailObject), function(withNewObj){\n _.forEach(vm.changeVariantDetailObject.articleVariantDetailObjects, function(obj){\n if(obj.variantDetailObject.id !== withNewObj.variantDetailObject.id){\n if(obj.newVariantDetailObject){\n if(obj.newVariantDetailObject.id === withNewObj.newVariantDetailObject.id){\n if(hasIntersectingColours(obj.coloursOnArticleVariant, withNewObj.coloursOnArticleVariant)){\n vm.anyError = true;\n obj.hasError = true;\n withNewObj.hasError = true;\n }\n }\n }\n else if(obj.variantDetailObject.id === withNewObj.newVariantDetailObject.id){\n if(hasIntersectingColours(obj.coloursOnArticleVariant, withNewObj.coloursOnArticleVariant)){\n vm.anyError = true;\n obj.hasError = true;\n withNewObj.hasError = true;\n }\n }\n }\n });\n });\n \n vm.isValidating = false;\n }\n\n function hasIntersectingColours(aColours, bColours){\n var intersecting = false;\n\n _.forEach(aColours, function(a){\n var length = bColours.filter(x => x.id === a.id).length;\n if(length > 0){\n intersecting = true;\n }\n });\n\n return intersecting;\n }\n function saveNewVariantDetails(){\n var requestObject = {\n articleId: vm.changeVariantDetailObject.productId,\n articleVariantDetailObjectsChanged: []\n }\n\n _.forEach(vm.changeVariantDetailObject.articleVariantDetailObjects, function(obj){\n if(obj.newVariantDetailObject) {\n requestObject.articleVariantDetailObjectsChanged.push({\n articleVariantIds: obj.articleVariantIds,\n variantDetailObject: obj.newVariantDetailObject\n });\n }\n });\n\n loadSpinnerService.start(\"mainSpinner\");\n ProductsApiService.changeArticleVariantDetail(requestObject).then(function (response){\n var message = `${$translate.instant('common.success')}`\n ToasterService.showSuccess(message, $translate.instant('common.success'));\n closeModal(true);\n }, function (error){\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n function anyChanges(){\n var obj = vm.changeVariantDetailObject.articleVariantDetailObjects.filter(x => x.newVariantDetailObject)\n\n return obj.length > 0\n }\n\n function getColourText(colours, cutoff){\n var returnString = '';\n _.forEach(colours, function(colour){\n if(returnString !== '')\n returnString += ', '\n\n returnString += colour.name\n });\n\n if(returnString.length > 35 && cutoff)\n return returnString.substring(0, 35) + '...';\n return returnString;\n }\n\n function closeModal(refresh) {\n $uibModalInstance.close(refresh);\n }\n}\n\nangular\n .module('product.articles.articleChangeVariantDetailDialog', [])\n .service('ArticleChangeVariantDetailDialogService', ArticleChangeVariantDetailDialogService)\n .controller('ArticleChangeVariantDetailDialogController', ArticleChangeVariantDetailDialogController);","// @ngInject\nfunction ArticleLabelsPrintDialogService($uibModal, ProductsApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(articleId) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'ArticleLabelsPrintDialogController as vm',\n templateUrl: 'main/product/articles/articleLabelsPrintDialog/articleLabelsPrintDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n article: function () {\n return ProductsApiService.getProduct(articleId);\n }, \n stocks: function () {\n return ProductsApiService.getProductStocks(articleId);\n }, \n locations: function () {\n return ProductsApiService.getLocations();\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction ArticleLabelsPrintDialogController($scope, $uibModalInstance, $timeout, article, stocks, locations, ProductsApiService, FileOperationsApiService, loadSpinnerService, ResourcesService, ToasterService, $translate) {\n var vm = this;\n\n vm.article = angular.copy(article);;\n vm.closeModal = closeModal;\n vm.print = printData;\n vm.flexGridIsEditing = false;\n vm.ongoingRequest = false;\n vm.submittingEnabled = true;\n vm.columns = [];\n vm.rows = [];\n\n // ADDED STUFF FOR LOCATIONS\n vm.stockData = stocks;\n vm.stockLocations = locations;\n\n vm.selectedLocation = {};\n\n vm.getStockDataFromLocation = getStockDataFromLocation;\n vm.selectedLocationChanged = selectedLocationChanged;\n\n activate();\n\n function activate() {\n getStockDataFromLocation();\n }\n\n function closeModal() {\n $uibModalInstance.close();\n }\n\n function selectedLocationChanged(newLocation) {\n\n vm.selectedLocation = _.find(vm.stockLocations, function(location) {\n return location.id === newLocation.id;\n });\n }\n\n function getDataColumns() {\n var columns = [];\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(vm.article.articleVariants, function (variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function (newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function getStockDataFromLocation() {\n var columns = [];\n var rows = [];\n \n _.forEach(getDataColumns(), function (variantDetail) {\n columns.push(variantDetail.variantDetailName);\n });\n\n var articleVariants = _.groupBy(vm.article.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.variantDetailName;\n });\n _.forEach(articleVariants, function (variantRowValues) {\n var r = {};\n _.forEach(variantRowValues, function (variantRowValue) {\n r.variantDetails1Name = variantRowValue.variantDetail1.variantDetailName;\n\n //ADDED\n var relatedStock = getStockFor(r.variantDetails1Name, variantRowValue.variantDetail2.variantDetailName);\n\n if (relatedStock === undefined || relatedStock.location.id !== vm.selectedLocation.id || relatedStock['quantity'] <= 0) {\n relatedStock = {};\n relatedStock['quantity'] = 0;\n }\n r[variantRowValue.variantDetail2.variantDetailName] = {variant: variantRowValue, value: relatedStock.quantity };\n });\n rows.push(r);\n });\n\n vm.columns = columns;\n vm.rows = rows;\n }\n\n function getStockFor(variantDetail1Name, variantDetail2Name) {\n return _.find(vm.stockData, function(stock){ \n return stock.articleVariant.variantDetail1.variantDetailName === variantDetail1Name &&\n stock.articleVariant.variantDetail2.variantDetailName === variantDetail2Name &&\n stock.location.id === vm.selectedLocation.id;\n });\n }\n\n function printData() {\n if (vm.ongoingRequest) {\n return false;\n }\n\n vm.ongoingRequest = true;\n $uibModalInstance.startLoadingSpinner();\n var labelsRequests = [];\n var totalQty = 0;\n\n _.forEach(vm.rows, function (row) {\n _.forEach(vm.columns, function (column) {\n var cell = row[column];\n if (!cell || !cell.value || !cell.variant || cell.value < 0) {\n return;\n }\n totalQty += cell.value;\n labelsRequests.push({ quantity: cell.value, articleVariantId: cell.variant.id });\n });\n });\n\n if (totalQty > 0) {\n ProductsApiService.downloadArticleVariantLabels(labelsRequests).then(function (response) {\n var fileName = response;\n FileOperationsApiService.downloadLabels(fileName);\n\n }, function (error) {\n error = handleError(error);\n if (error.message === 'Cannot save a PDF document with no pages.') {\n ToasterService.showError($translate.instant('article.noquantity'), $translate.instant('common.error'));\n } else {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }\n }).finally(function () {\n vm.ongoingRequest = false;\n $uibModalInstance.stopLoadingSpinner();\n });\n } else {\n vm.ongoingRequest = false;\n $uibModalInstance.stopLoadingSpinner();\n }\n\n function getVariant(variantDetail1Name, key) {\n return _.find(article.articleVariants, function (articleVariant) {\n return articleVariant.variantDetail1.variantDetailName === variantDetail1Name &&\n articleVariant.variantDetail2.variantDetailName === key;\n });\n }\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n}\n\nangular\n .module('product.articles.articleLabelsPrintDialog', [])\n .service('ArticleLabelsPrintDialogService', ArticleLabelsPrintDialogService)\n .controller('ArticleLabelsPrintDialogController', ArticleLabelsPrintDialogController);\n","// @ngInject\nfunction ArticleNewIntrastatDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(articleId, articleVariantId) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'ArticleNewIntrastatDialogController as vm',\n templateUrl: 'main/product/articles/articleNewIntrastatDialog/articleNewIntrastatDialog.tpl.html',\n size: ''\n };\n\n modalDefaults.resolve = {\n articleId: articleId,\n articleVariantId: articleVariantId\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction ArticleNewIntrastatDialogController($scope, $uibModalInstance, articleId, articleVariantId, ProductsApiService, ToasterService, $translate, $timeout, loadSpinnerService, ResourcesService) {\n var vm = this;\n\n //Properties\n vm.intrastat = {};\n\n //Methods\n vm.saveIntrastat = saveIntrastat;\n vm.closeModal = closeModal;\n\n function saveIntrastat() {\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.saveNewIntrastat(articleId, articleVariantId, vm.intrastat).then(function(response) {\n $uibModalInstance.close(response);\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function closeModal() {\n $uibModalInstance.close();\n }\n}\n\nangular\n .module('product.articles.articleNewIntrastatDialog', [])\n .service('ArticleNewIntrastatDialogService', ArticleNewIntrastatDialogService)\n .controller('ArticleNewIntrastatDialogController', ArticleNewIntrastatDialogController);\n","import { reactEvents } from \"../../../../../bridge/reactEvents\";\nimport { angularEvents } from \"../../../../../bridge/angularEvents\";\n\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.articles.new', {\n url: '/new',\n views: {\n \"wideColumnView@product\": {\n templateUrl: 'main/product/articles/article/article.tpl.html',\n controller: 'ArticleController as vm'\n }\n },\n resolve: {\n itemGroups: itemGroupsResolver,\n articleCollections: articleCollectionsResolver,\n salesChannels: salesChannelsResolver,\n vats: vatsResolver,\n article: function () {\n return {};\n },\n articleTypes: articleTypesResolver,\n countries: countriesResolver,\n productClasses: productClassesResolver,\n currencies: currenciesResvolver,\n accounts: accountsResolver,\n defaultCurrency: defaultCurrencyResolver,\n searchTerms: searchTermsResolver,\n hasSimpleWms: hasSimpleWmsResolver,\n metaFieldValues: metaFieldValuesResolver,\n metaFields: metaFieldsResolver\n }\n });\n $stateProvider.state('product.articles.article', {\n url: '/{articleId}',\n views: {\n \"wideColumnView@product\": {\n templateUrl: 'main/product/articles/article/article.tpl.html',\n controller: 'ArticleController as vm'\n }\n },\n resolve: {\n article: articleResolver,\n articleCollections: articleCollectionsResolver,\n salesChannels: salesChannelsResolver,\n vats: vatsResolver,\n itemGroups: itemGroupsResolver,\n articleTypes: articleTypesResolver,\n countries: countriesResolver,\n productClasses: productClassesResolver,\n currencies: currenciesResvolver,\n accounts: accountsResolver,\n defaultCurrency: defaultCurrencyResolver,\n searchTerms: searchTermsResolver,\n hasSimpleWms: hasSimpleWmsResolver,\n metaFieldValues: metaFieldValuesResolver,\n metaFields: metaFieldsResolver\n }\n });\n}\n\n// @ngInject\nfunction searchTermsResolver(ProductsApiService, $stateParams) {\n return {\n filter: $stateParams.filter,\n currentPage: $stateParams.currentPage,\n pageSize: $stateParams.pageSize,\n inactive: $stateParams.inactive,\n match: $stateParams.match\n };\n}\n\n// @ngInject\nfunction articleResolver(ProductsApiService, $stateParams) {\n return ProductsApiService.getProduct($stateParams.articleId);\n}\n\n// @ngInject\nfunction salesChannelsResolver(ProductsApiService) {\n return ProductsApiService.getSalesChannels();\n}\n\n// @ngInject\nfunction itemGroupsResolver(ProductsApiService) {\n return ProductsApiService.getItemGroupFlats();\n}\n\n// @ngInject\nfunction accountsResolver(ProductsApiService) {\n return ProductsApiService.getAccounts();\n}\n\n// @ngInject\nfunction articleCollectionsResolver(ProductsApiService) {\n return ProductsApiService.getArticleCollections();\n}\n\n// @ngInject\nfunction vatsResolver(VatsApiService) {\n return VatsApiService.getVats();\n}\n\n// @ngInject\nfunction articleTypesResolver(ProductsApiService) {\n return ProductsApiService.getArticleTypes();\n}\n\n// @ngInject\nfunction countriesResolver(ProductsApiService) {\n return ProductsApiService.getCountries();\n}\n\n// @ngInject\nfunction productClassesResolver(ProductsApiService) {\n return ProductsApiService.getProductClasses();\n}\n// @ngInject\nfunction currenciesResvolver(ProductsApiService) {\n return ProductsApiService.getCurrencies();\n}\n// @ngInject\nfunction defaultCurrencyResolver(ProductsApiService) {\n return ProductsApiService.getDefaultCurrency();\n}\n\n// @ngInject\nfunction hasSimpleWmsResolver(ProductsApiService) \n{\n return ProductsApiService.hasSimpleWms();\n}\n\n// @ngInject\nfunction metaFieldValuesResolver(ProductsApiService, $stateParams) {\n if (!$stateParams.articleId) {\n return [];\n }\n return ProductsApiService.getMetaFieldValues($stateParams.articleId);\n}\n\n// @ngInject\nfunction metaFieldsResolver(ProductsApiService, $stateParams) {\n if (!$stateParams.articleId) {\n return [];\n }\n return ProductsApiService.getMetaFields($stateParams.articleId);\n}\n\n// @ngInject\nfunction ArticleController($q, $scope, $state, $rootScope, $translate, ProductsApiService, HelperService, loadSpinnerService, article, itemGroups, vats, articleCollections, ArticleLabelsPrintDialogService, ArticleChangeItemGroupDialogService, ProductService,\n ArticleNewIntrastatDialogService, articleTypes, AuthService, salesChannels, ToasterService, countries, productClasses, currencies, accounts, defaultCurrency, searchTerms, hasSimpleWms, metaFieldValues, metaFields, DS,\n colourChangeDialogService) {\n var vm = this;\n\n //Properties\n vm.environment = DS.defaults.ENV.NAME;\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.rowSupplierPricesData = [];\n vm.articleChangeCount = 0;\n vm.salesChannels = salesChannels;\n vm.intrastats = [];\n vm.accounts = accounts;\n vm.itemGroups = itemGroups;\n vm.articleCollections = articleCollections;\n vm.selectedArticle = article;\n vm.vats = vats;\n vm.selectedArticleCopy = angular.copy(vm.selectedArticle);\n vm.articleTypes = articleTypes;\n vm.selectedArticleVariantFilter = {};\n vm.selectedSupplierFilter = {};\n vm.supplierRowData = [];\n vm.isNewArticle = !article.id;\n vm.isEditing = vm.isNewArticle ? true : false;\n vm.filter = '';\n vm.currentPage = 1;\n vm.pageSize = 20;\n if (searchTerms) {\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.currentPage = searchTerms.currentPage < 1 ? searchTerms.currentPage : 1;\n vm.pageSize = searchTerms.pageSize >= 20 ? searchTerms.pageSize : 20;\n vm.match = searchTerms.match ? searchTerms.match == 'true' ? true : false : false;\n vm.inactive = searchTerms.inactive ? searchTerms.inactive == 'true' ? true : false : false;\n }\n vm.searchedVariant = null;\n vm.canAccess = AuthService.canAccess;\n vm.mayReadStockLogistics = AuthService.canAccess('stockLogistics', 'read');\n vm.availableSubCategories = [];\n vm.availableDepartments = [];\n vm.countries = countries;\n vm.productClasses = productClasses;\n vm.currencies = currencies;\n vm.defaultCurrency = defaultCurrency;\n vm.tabSelection = {\n article: true,\n articleVariants: false,\n supplierPrices: false,\n barcodes: false,\n stocklocations: false,\n metaFields: false\n };\n vm.showStocklocationsTab = false;\n vm.tenantsWithStocklocationTab = [\"vfo\", \"int2\"];\n vm.tenantsWithoutPriceListTab = [];\n vm.location = null;\n vm.locations = [];\n vm.stocklocations = [];\n var firstTimeLoadOfPrices = true;\n vm.priceLists = [];\n vm.hasClaim = havePurchaseCostClaim();\n\n vm.priceListPriceDisplaySelections = [\n { type: 'salesPrice', order: 1, label: 'article.salesprice' },\n { type: 'previousPrice', order: 2, label: 'article.previousprice'}\n ];\n vm.priceListPriceDisplaySelection = vm.priceListPriceDisplaySelections[0];\n\n //Methods\n vm.startEdit = startEdit;\n vm.cancelEdit = cancelEdit;\n vm.getMargin = getMargin;\n vm.save = save;\n vm.initSupplierPricesGrid = initSupplierPricesGrid;\n vm.changeItemGroup = changeItemGroup;\n vm.changeVariantGroup = changeVariantGroup;\n vm.downloadArticleLabels = downloadArticleLabels;\n vm.openLabelsModal = openLabelsModal;\n vm.openItemGroupModal = openItemGroupModal;\n vm.openNewIntrastatModal = openNewIntrastatModal;\n vm.addAdditionalArticleVariants = addAdditionalArticleVariants;\n vm.isNewWithItemGroup = isNewWithItemGroup;\n vm.suppliers = [];\n vm.loadSuppliers = loadSuppliers;\n vm.changeToArticleTab = changeToArticleTab;\n vm.changeToArticleVariantsTab = changeToArticleVariantsTab;\n vm.changeToSupplierPricesTab = changeToSupplierPricesTab;\n vm.changeToBarcodesTab = changeToBarcodesTab;\n vm.changeToStocklocationsTab = changeToStocklocationsTab;\n vm.changeToPriceListsTab = changeToPriceListsTab;\n vm.changeToMetaFieldsTab = changeToMetaFieldsTab;\n vm.loadSupplierPricesGridData = loadSupplierPricesGridData;\n vm.filterSupplierRowData = filterSupplierRowData;\n vm.filterArticleVariantData = filterArticleVariantData;\n vm.calculatePurchasePrice = calculatePurchasePrice;\n vm.calculateCostPrice = calculateCostPrice;\n vm.copyToAllVisibleSupplierPrices = copyToAllVisibleSupplierPrices;\n vm.getStockLocations = getStockLocations;\n vm.updateAllArticleVariantHeights = updateAllArticleVariantHeights;\n vm.updateAllArticleVariantLengths = updateAllArticleVariantLengths;\n vm.updateAllArticleVariantWeights = updateAllArticleVariantWeights;\n vm.updateAllArticleVariantWidths = updateAllArticleVariantWidths;\n vm.updateAllArticleVariantMeursingCodes = updateAllArticleVariantMeursingCodes;\n vm.updateAllIntrastats = updateAllIntrastats;\n vm.updateAllArticleVariantCollections = updateAllArticleVariantCollections;\n vm.isSearchedVariant = isSearchedVariant;\n vm.showPriceListsTab = showPriceListsTab;\n vm.hasCurrencyConversions = hasCurrencyConversions;\n vm.productStateGo = productStateGo;\n vm.metaFieldValues = metaFieldValues;\n vm.metaFields = metaFields;\n vm.openColourChangeModal = openColourChangeModal;\n\n var isAlreadyPersisting = false;\n\n var unsubEvent = reactEvents.fooBar.subscribe(() => {\n $scope.fooBar = \"hello world\";\n $scope.$digest();\n });\n\n var unsubSaveMetaFieldsEvent = reactEvents.saveMetaFields.subscribe((fields) => {\n ProductsApiService.upsertMetaFields(fields).then(function(response) {\n }, function(error) {\n ToasterService.showError(error.message);\n });\n });\n\n var unsubSaveMetaFieldValuesEvent = reactEvents.saveMetaFieldValues.subscribe((fields) => {\n ProductsApiService.upsertMetaFieldValues(article.id, fields).then(function(response) {\n }, function(error) {\n ToasterService.showError(error.message);\n });\n });\n \n $scope.$on('$destroy', () => {\n unsubEvent();\n unsubSaveMetaFieldsEvent();\n unsubSaveMetaFieldValuesEvent();\n });\n\n activate();\n\n function activate() {\n if (vm.isNewArticle) {\n vm.selectedArticleCopy.articleVariants = [];\n vm.selectedArticleCopy.isVariant = true;\n vm.selectedArticleCopy.isActive = true;\n\n var currentArticleCollection = _.find(vm.articleCollections, function(articleCollection) { return articleCollection.isCurrent; });\n if (currentArticleCollection) {\n vm.selectedArticleCopy.articleCollection = currentArticleCollection;\n }\n\n $scope.$watch(function() { return vm.selectedArticleCopy.itemGroup; }, function(newValue, oldValue) {\n if (newValue !== oldValue) {\n if (vm.selectedArticleCopy.itemGroup && vm.selectedArticleCopy.itemGroup.brand && vm.selectedArticleCopy.itemGroup.brand.company) {\n vm.selectedArticleCopy.preferredSupplier = vm.selectedArticleCopy.itemGroup.brand.company;\n\n vm.loadSuppliers();\n\n if (!_.find(vm.selectedArticleCopy.suppliers, function(c) { return c.id === vm.selectedArticleCopy.preferredSupplier.id; })) {\n vm.selectedArticleCopy.suppliers = [];\n vm.selectedArticleCopy.suppliers.push(vm.selectedArticleCopy.preferredSupplier);\n }\n }\n }\n });\n }\n if (!vm.isNewArticle) {\n var articleVariants = vm.selectedArticleCopy.articleVariants;\n if (vm.filter) {\n if (articleVariants) {\n if (!vm.searchedVariant) {\n vm.searchedVariant = _.find(articleVariants, {'externalId': vm.filter});\n }\n if (!vm.searchedVariant) {\n vm.searchedBarcode = angular.copy(vm.filter);\n vm.searchedVariant = _.find(articleVariants, function(bc) {\n return _.find(bc.articleVariantBarcodes, function(bc2) {\n return String(bc2.barcode) === vm.filter;\n });\n });\n vm.searchedBarcode = angular.copy(vm.filter);\n }\n }\n }\n\n initArticleVariantBarcodes();\n }\n if (!_.has(vm.selectedArticle, 'descriptionShort')) {\n vm.selectedArticle['descriptionShort'] = \"\";\n }\n\n if (!vm.selectedArticle.articleType) {\n vm.selectedArticle.articleType = {};\n vm.selectedArticleCopy.articleType = {};\n }\n if (!vm.selectedArticle.intrastat) {\n vm.selectedArticle.intrastat = {};\n vm.selectedArticleCopy.intrastat = {};\n }\n\n resolveIntrastats();\n\n resolveAccounts();\n\n loadMainGroupData(vm.selectedArticleCopy.itemGroup);\n initSupplierPricesGrid();\n\n $scope.$watch(function () { return vm.selectedArticleCopy.preferredSupplier; },\n function () {\n if (vm.selectedArticleCopy.preferredSupplier && !_.find(vm.selectedArticleCopy.suppliers, function(c) { return c.id === vm.selectedArticleCopy.preferredSupplier.id; })) {\n vm.selectedArticleCopy.suppliers.push(vm.selectedArticleCopy.preferredSupplier);\n }\n });\n\n $scope.$watch(function () { return vm.selectedArticleCopy.isActive; },\n function () {\n if (vm.selectedArticleCopy !== undefined && !vm.selectedArticleCopy.isActive && vm.isEditing) {\n ToasterService.showWarning($translate.instant('article.changetoinactivewarning'));\n }\n });\n $scope.$watch('vm.selectedArticleCopy.subCategory', function() {\n resolveIntrastats();\n });\n $scope.$watch('vm.selectedArticleCopy.intrastat', function(newValue, oldValue) {\n if (newValue !== oldValue) { updateAllIntrastats(oldValue, newValue); }\n });\n $scope.$watch('vm.selectedArticleCopy.articleCollection', function(newValue, oldValue) {\n if (newValue !== oldValue) { updateAllArticleVariantCollections(oldValue, newValue); }\n });\n\n $scope.$watch('vm.selectedArticleCopy.articleVariants.length', function(newValue, oldValue) {\n if (newValue !== oldValue) {\n initSupplierPricesGrid();\n }\n });\n\n // var currentUser = null;\n // AuthService.getUser().then(function(response) {\n // currentUser = response;\n // var tsi = currentUser.tenant.tenantStringIdentifier.toLowerCase();\n // if (vm.tenantsWithStocklocationTab.indexOf(tsi) !== -1) {\n // vm.showStocklocationsTab = true;\n // }\n // if (vm.tenantsWithoutPriceListTab.indexOf(tsi) > -1) {\n // vm.showPriceListsTab = false;\n // }\n // });\n\n vm.showStocklocationsTab = hasSimpleWms;\n // ProductsApiService.hasSimpleWms().then(function(response) {\n // vm.showStocklocationsTab = response;\n // });\n\n ProductsApiService.getLocations().then(function(response) {\n vm.locations = response;\n vm.locations.unshift({ id: 0, locationName: \"Välj ett lager\", locationNumber: null });\n vm.location = vm.locations[0];\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n //Always preload list of suppliers\n loadSuppliers();\n }\n\n function openColourChangeModal(articleId) {\n console.log(\"Selected articleId: \", articleId);\n colourChangeDialogService.showDialog(articleId);\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined) {\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read) {\n return false\n }\n\n return true\n }\n \n function showPriceListsTab() {\n return ProductService.canReadPrices(vm.selectedArticleCopy.links);\n }\n function loadPrices() {\n ProductsApiService.getProductPrices(vm.selectedArticleCopy.id).then(function(response) {\n vm.productPrices = response.variants;\n firstTimeLoadOfPrices = false;\n\n vm.priceLists = [];\n _.forEach(vm.productPrices, function(pp) {\n _.forEach(pp.priceListItems, function(pl) {\n if (!_.find(vm.priceLists, function(o) { return o.priceListId === pl.priceListId; })) {\n vm.priceLists.push({\n currencyCode: pl.currencyCode,\n priceListId: pl.priceListId,\n priceListName: pl.priceListName,\n priceListCode: pl.priceListCode,\n salesChannel: pl.salesChannel\n });\n }\n });\n });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n\n function getStockLocations() {\n vm.stocklocations = [];\n if (vm.location.locationNumber != null) {\n // Get stocklocations from SimpleWMS\n ProductsApiService.getProductStockLocations(vm.location.locationNumber, vm.selectedArticle.id).then(function(response) {\n if (response.items.length > 0) {\n var stocklocations = [];\n for (var i = 0; i < response.items.length; i++) {\n var item = response.items[i];\n stocklocations[item.variantId] = [];\n stocklocations[item.variantId]['stocklocation'] = item.storageLocations.join(', ');\n stocklocations[item.variantId]['isphotographed'] = item.isPhotographed;\n }\n vm.stocklocations = stocklocations;\n }\n }, function(error) {\n console.log('Error fetching stock locations', error.message);\n ToasterService.showError(error.message);\n });\n }\n }\n\n function loadSuppliers() {\n if (vm.selectedArticleCopy.itemGroup === undefined) { return; }\n\n ProductsApiService.getSuppliers(vm.selectedArticleCopy.itemGroup.brand.id).then(function(response) {\n var supplierList = response.items.map(function(item) { return { id: item.id, companyName: item.name }; });\n vm.suppliers = supplierList;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n\n function isSearchedVariant(articleVariant) {\n if (!vm.searchedVariant || !articleVariant) {\n return false;\n }\n if (vm.searchedVariant.id !== articleVariant.id) {\n return false;\n }\n return true;\n }\n\n function updateAllArticleVariantHeights(origValue) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function(articleVariant) {\n if (articleVariant.variantHeight === null) { articleVariant.variantHeight = 0; }\n if (articleVariant.variantHeight === origValue) {\n if (vm.selectedArticleCopy.productHeight === null) { vm.selectedArticleCopy.productHeight = 0; }\n articleVariant.variantHeight = vm.selectedArticleCopy.productHeight;\n }\n });\n }\n function updateAllArticleVariantLengths(origValue) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function(articleVariant) {\n if (articleVariant.variantLength === null) { articleVariant.variantLength = 0; }\n if (articleVariant.variantLength === origValue) {\n if (vm.selectedArticleCopy.productLength === null) { vm.selectedArticleCopy.productLength = 0; }\n articleVariant.variantLength = vm.selectedArticleCopy.productLength;\n }\n });\n }\n function updateAllArticleVariantWeights(origValue) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function(articleVariant) {\n if (articleVariant.variantWeight === null) { articleVariant.variantWeight = 0; }\n if (articleVariant.variantWeight === origValue) {\n if (vm.selectedArticleCopy.productWeight === null) { vm.selectedArticleCopy.productWeight = 0; }\n articleVariant.variantWeight = vm.selectedArticleCopy.productWeight;\n }\n });\n }\n function updateAllArticleVariantWidths(origValue) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function(articleVariant) {\n if (articleVariant.variantWidth === null) { articleVariant.variantWidth = 0; }\n if (articleVariant.variantWidth === origValue) {\n if (vm.selectedArticleCopy.productWidth === null) { vm.selectedArticleCopy.productWidth = 0; }\n articleVariant.variantWidth = vm.selectedArticleCopy.productWidth;\n }\n });\n }\n function updateAllArticleVariantMeursingCodes() {\n _.forEach(vm.selectedArticleCopy.articleVariants, function(articleVariant) {\n if (articleVariant.meursingCode === null) { articleVariant.meursingCode = ''; }\n articleVariant.meursingCode = vm.meursingCode;\n });\n }\n function updateAllIntrastats(origValue, newValue) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function(articleVariant) {\n if (!articleVariant.intrastat || articleVariant.intrastat.code === origValue.code) {\n articleVariant.intrastat = angular.copy(newValue);\n }\n });\n }\n\n function updateAllArticleVariantCollections(origValue, newValue) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function (articleVariant) {\n if (articleVariant.articleCollection && articleVariant.articleCollection.id === origValue.id) {\n articleVariant.articleCollection = angular.copy(newValue);\n }\n });\n }\n\n function calculatePurchasePrice(purchasePrice, discountPercent) {\n var discountAmount = (purchasePrice * discountPercent / 100);\n return purchasePrice - discountAmount;\n }\n\n function calculateCostPrice(purchasePrice, discountPercent, standardCostAddPercent, currencyRate, shippingCost, customsPercent, otherCosts) {\n var pp = calculatePurchasePrice(purchasePrice, discountPercent);\n var ppCurrencyConverted = pp * currencyRate;\n var customsAmount = (ppCurrencyConverted + shippingCost) * (customsPercent / 100);\n var standardCostAddAmount = (ppCurrencyConverted + shippingCost + customsAmount + otherCosts) * (standardCostAddPercent / 100);\n\n return ppCurrencyConverted + shippingCost + customsAmount + otherCosts + standardCostAddAmount;\n }\n\n function hasCurrencyConversions() {\n var response = false;\n _.forEach(vm.supplierRowData, function (supplierRow) {\n if (vm.defaultCurrency.code !== supplierRow.purchasingCurrency.code) {\n response = true;\n }\n });\n return response;\n }\n\n function initFilters() {\n vm.selectedSupplierFilter.suppliers = _.uniqBy(angular.copy(vm.selectedArticleCopy.suppliers), 'companyName');\n vm.selectedSupplierFilter.suppliers.unshift({ id: -1, companyName: $translate.instant('common.all') });\n vm.selectedSupplierFilter.selectedSupplier = vm.selectedSupplierFilter.suppliers[0];\n\n vm.selectedArticleVariantFilter.variants1 = _.uniqBy(angular.copy(vm.selectedArticleCopy.articleVariants), 'variantDetail1.variantDetailName');\n vm.selectedArticleVariantFilter.variants1.unshift({ id: -1, variantDetail1: { id: -1, variantDetailName: $translate.instant('common.all') } });\n vm.selectedArticleVariantFilter.selectedVariant1 = vm.selectedArticleVariantFilter.variants1[0];\n vm.selectedSupplierFilter.variants1 = _.uniqBy(angular.copy(vm.selectedArticleCopy.articleVariants), 'variantDetail1.variantDetailName');\n vm.selectedSupplierFilter.variants1.unshift({ id: -1, variantDetail1: { id: -1, variantDetailName: $translate.instant('common.all') } });\n vm.selectedSupplierFilter.selectedVariant1 = vm.selectedSupplierFilter.variants1[0];\n\n vm.selectedArticleVariantFilter.variants2 = _.uniqBy(angular.copy(vm.selectedArticleCopy.articleVariants), 'variantDetail2.variantDetailName');\n vm.selectedArticleVariantFilter.variants2.unshift({ id: -1, variantDetail2: { id: -1, variantDetailName: $translate.instant('common.all') } });\n vm.selectedArticleVariantFilter.selectedVariant2 = vm.selectedArticleVariantFilter.variants2[0];\n vm.selectedSupplierFilter.variants2 = _.uniqBy(angular.copy(vm.selectedArticleCopy.articleVariants), 'variantDetail2.variantDetailName');\n vm.selectedSupplierFilter.variants2.unshift({ id: -1, variantDetail2: { id: -1, variantDetailName: $translate.instant('common.all') } });\n vm.selectedSupplierFilter.selectedVariant2 = vm.selectedSupplierFilter.variants2[0];\n }\n\n function filterSupplierRowData(row) {\n return (vm.selectedSupplierFilter.selectedSupplier.id === -1 ||\n vm.selectedSupplierFilter.selectedSupplier.id === row.companyId) &&\n (vm.selectedSupplierFilter.selectedVariant1.id === -1 ||\n vm.selectedSupplierFilter.selectedVariant1.variantDetail1.id === row.variantDetail1Id) &&\n (vm.selectedSupplierFilter.selectedVariant2.id === -1 ||\n vm.selectedSupplierFilter.selectedVariant2.variantDetail2.id === row.variantDetail2Id);\n }\n function filterArticleVariantData(row) {\n return (vm.selectedArticleVariantFilter.selectedVariant1.id === -1 ||\n vm.selectedArticleVariantFilter.selectedVariant1.variantDetail1.id === row.variantDetail1.id) &&\n (vm.selectedArticleVariantFilter.selectedVariant2.id === -1 ||\n vm.selectedArticleVariantFilter.selectedVariant2.variantDetail2.id === row.variantDetail2.id);\n }\n\n function changeToArticleTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.article = true;\n }\n\n function changeToArticleVariantsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.articleVariants = true;\n }\n\n function changeToSupplierPricesTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.supplierPrices = true;\n }\n\n function changeToBarcodesTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.barcodes = true;\n }\n\n function changeToStocklocationsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.stocklocations = true;\n }\n\n function changeToPriceListsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.priceLists = true;\n if (firstTimeLoadOfPrices === true) {\n loadPrices();\n }\n }\n\n function changeToMetaFieldsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.metaFields = true;\n }\n\n function setAllTabSelectionsToFalse() {\n var keys = Object.keys(vm.tabSelection);\n _.forEach(keys, function(key) {\n vm.tabSelection[key] = false;\n });\n }\n\n function cancelEdit() {\n vm.selectedArticleCopy = angular.copy(vm.selectedArticle);\n initArticleVariantBarcodes();\n resetSupplierPricesGridWithData();\n vm.isEditing = false;\n vm.articleChangeCount++;\n angularEvents.isEditing.dispatch(false);\n }\n\n function initArticleVariantBarcodes() {\n var articleVariants = vm.selectedArticleCopy.articleVariants;\n if (articleVariants) {\n //Add empty article barcodes\n var sumCountBarcodes = 0;\n _.forEach(articleVariants, function(artVar) {\n if (artVar.articleVariantBarcodes && artVar.articleVariantBarcodes.length > sumCountBarcodes) {\n sumCountBarcodes = artVar.articleVariantBarcodes.length;\n }\n });\n _.forEach(articleVariants, function(artVar) {\n artVar.barcodesZerofill = angular.copy(artVar.articleVariantBarcodes);\n for (var i = 0; i < sumCountBarcodes - artVar.articleVariantBarcodes.length; i++) {\n artVar.barcodesZerofill.push({ barcode: '', id: '' });\n }\n });\n }\n }\n\n function resolveIntrastats() {\n\n var intrastats = [];\n\n if (vm.selectedArticleCopy.itemGroup) {\n\n var mainGroup = vm.selectedArticleCopy.itemGroup.mainGroup;\n var subCategory = vm.selectedArticleCopy.subCategory;\n\n if (mainGroup && mainGroup.intrastats) {\n intrastats = _.unionBy(intrastats, mainGroup.intrastats, 'id');\n }\n if (subCategory && subCategory.intrastats) {\n intrastats = _.unionBy(intrastats, subCategory.intrastats, 'id');\n }\n\n if (!vm.selectedArticleCopy.intrastat || _.filter(intrastats, {id: vm.selectedArticleCopy.intrastat.id}).length === 0) {\n selectDefaultIntrastat();\n }\n }\n\n intrastats.forEach(function(intrastat) {\n if (intrastat.internalDescription && intrastat.internalDescription.length > 15) {\n intrastat.internalDescription = intrastat.internalDescription.substr(0, 15) + '...';\n }\n }, this);\n\n vm.intrastats = intrastats;\n }\n\n function resolveAccounts() {\n if (vm.isNewArticle && vm.selectedArticleCopy.itemGroup) {\n var mainGroup = vm.selectedArticleCopy.itemGroup.mainGroup;\n\n vm.selectedArticleCopy.discountAccount = mainGroup.discountAccount;\n vm.selectedArticleCopy.salesAccount = mainGroup.salesAccount;\n }\n }\n\n function startEdit() {\n vm.isEditing = true;\n\n angularEvents.isEditing.dispatch(true);\n\n //Make sure the preferredSupplier always is a selected supplier\n if (vm.selectedArticleCopy.preferredSupplier !== undefined) {\n var prefSupp = _.filter(vm.selectedArticleCopy.suppliers, { id: vm.selectedArticleCopy.preferredSupplier.id });\n\n if (vm.selectedArticleCopy.suppliers.length === 0 || prefSupp.length === 0) {\n vm.selectedArticleCopy.suppliers.push(vm.selectedArticleCopy.preferredSupplier);\n }\n }\n\n if (!vm.isNewArticle) {\n resetSupplierPricesGridWithData();\n\n var itemGroup = vm.selectedArticleCopy.itemGroup;\n ProductsApiService.getVariant(itemGroup.mainGroup.variant2.id).then(function (variant) {\n vm.variant2 = variant;\n });\n\n }\n\n if (vm.isNewArticle) {\n resolveAccounts();\n }\n }\n\n function getMargin() {\n var vatMultiplier = vm.selectedArticleCopy.vat ? 1 / (vm.selectedArticleCopy.vat.vatRate + 1) : 1;\n var salesPrice = vm.selectedArticleCopy.salesPrice || 0;\n var purchaseCost = vm.selectedArticleCopy.purchaseCost || 0;\n\n var brv = ((salesPrice * vatMultiplier) - purchaseCost) / (salesPrice * vatMultiplier);\n\n if ((!salesPrice && !purchaseCost) || !salesPrice) {\n return 0;\n }\n\n return brv.toFixed(2);\n }\n\n function save() {\n angularEvents.saveArticle.dispatch();\n angularEvents.isEditing.dispatch(false);\n if (vm.isNewArticle) {\n return saveNewArticle();\n } else {\n return updateArticle();\n }\n }\n\n function updateArticle() {\n if (isAlreadyPersisting) { return; }\n isAlreadyPersisting = true;\n\n var deferred = $q.defer();\n vm.validationErrors = [];\n\n _.forEach(vm.selectedArticleCopy.articleVariants, function (articleVariant) {\n if (articleVariant.salesPrice === \"\") {\n articleVariant.salesPrice = 0;\n }\n if (articleVariant.purchaseCost === \"\") {\n articleVariant.purchaseCost = 0;\n }\n });\n\n var fields = [\n 'salesPrice',\n 'purchaseCost',\n 'subCategory',\n 'alternativeArticleNumber',\n 'articleCollection',\n 'articleVariants',\n 'articleName',\n 'vat',\n 'descriptionShort',\n 'descriptionLong',\n 'isCurrent',\n 'previousPrice',\n 'articleType',\n 'salesChannels',\n 'isActive',\n 'intrastat',\n 'department',\n 'countryOfOrigin',\n 'productLength',\n 'productWidth',\n 'productHeight',\n 'productWeight',\n 'minPurchaseQty',\n 'preferredSupplier',\n 'suppliers',\n 'articleClass',\n 'discountAccount',\n 'salesAccount',\n 'storage',\n 'itemGroup',\n 'variantGroup2'\n ];\n\n _.forEach(fields, function (field) {\n if (article[field] === undefined) {\n article[field] = null;\n }\n });\n\n var changedData = HelperService.getChangedData(article, vm.selectedArticleCopy, fields);\n\n if (!_.isEmpty(changedData)) {\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.updateProduct(article.id, changedData).then(function (response) {\n vm.selectedArticleCopy = angular.copy(response);\n vm.selectedArticle = angular.copy(response);\n article = angular.copy(response);\n\n vm.supplierRowData = loadSupplierPricesGridData();\n initFilters();\n initArticleVariantBarcodes();\n\n vm.articleChangeCount++;\n\n vm.isEditing = false;\n deferred.resolve();\n }, function (error) {\n deferred.resolve(\"\");\n if (error.errors) {\n vm.validationErrors = error.errors;\n }\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n isAlreadyPersisting = false;\n });\n } else {\n deferred.resolve();\n isAlreadyPersisting = false;\n }\n\n return deferred.promise;\n }\n\n function saveNewArticle() {\n if (isAlreadyPersisting) { return; }\n isAlreadyPersisting = true;\n\n var deferred = $q.defer();\n vm.validationErrors = [];\n loadSpinnerService.start('mainSpinner');\n if (!vm.selectedArticleCopy.isVariant) {\n vm.selectedArticleCopy.articleVariants = [\n {\n articleCollection: vm.selectedArticleCopy.articleCollection,\n salesPrice: vm.selectedArticleCopy.salesPrice,\n previousPrice: vm.selectedArticleCopy.previousPrice,\n purchaseCost: vm.selectedArticleCopy.purchaseCost,\n variantDetail1: { variantDetailName: \"--\" },\n variantDetail2: { variantDetailName: \"--\" },\n supplierPrices: vm.selectedArticleCopy.supplierPrices\n }\n ];\n }\n _.forEach(vm.selectedArticleCopy.articleVariants, function (articleVariant) {\n if (articleVariant.salesPrice === \"\") {\n articleVariant.salesPrice = 0;\n }\n if (articleVariant.purchaseCost === \"\") {\n articleVariant.purchaseCost = 0;\n }\n });\n\n ProductsApiService.createProduct(vm.selectedArticleCopy).then(function (response) {\n vm.selectedArticleCopy = angular.copy(response);\n vm.selectedArticle = angular.copy(response);\n article = angular.copy(response);\n\n vm.supplierRowData = loadSupplierPricesGridData();\n initFilters();\n initArticleVariantBarcodes();\n\n vm.articleChangeCount++;\n\n $state.go('product.articles.article', { articleId: response.id });\n }, function (error) {\n deferred.resolve(\"\");\n if (error.errors) {\n vm.validationErrors = error.errors;\n }\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n isAlreadyPersisting = false;\n });\n return deferred.promise;\n }\n\n function changeItemGroup(itemGroup) {\n if (itemGroup) {\n vm.selectedArticleCopy.subCategory = {};\n loadItemGroupData(itemGroup);\n }\n }\n\n function loadItemGroupData(itemGroup) {\n ProductsApiService.getItemGroup(itemGroup.id).then(function (result) {\n vm.selectedArticleCopy.itemGroup = result;\n\n loadMainGroupData(result, true);\n });\n }\n function loadMainGroupData(itemGroup, setDefaults) {\n if (itemGroup) {\n ProductsApiService.getMainGroup(itemGroup.mainGroup.id).then(function (result) {\n vm.selectedArticleCopy.itemGroup.mainGroup = result;\n\n vm.availableSubCategories = _.sortBy(result.subCategories, function (subCategory) {\n return subCategory.subCategoryCode;\n });\n\n vm.availableDepartments = _.sortBy(result.departments, function (department) {\n return department.departmentCode;\n });\n resolveIntrastats();\n\n if (setDefaults) {\n selectDefaultDepartment(result.departments);\n selectDefaultSubCatgory(result.subCategories);\n selectDefaultAccounts(result);\n }\n\n ProductsApiService.getVariant(result.variant2.id).then(function (variant) {\n vm.variant2 = variant;\n selectDefaultVat();\n selectDefaultIntrastat();\n selectDefaultVariantGroup();\n selecteDefaultIsVariant();\n selectDefaultSalechannels(itemGroup);\n });\n });\n }\n }\n\n function changeVariantGroup() {\n }\n // Init SupplierPrice\n function initSupplierPricesGrid() {\n vm.supplierRowData = loadSupplierPricesGridData();\n initFilters();\n if(vm.supplierRowData === undefined || vm.supplierRowData.length === 0){\n vm.supplierRowData = initSupplierPricesGridData();\n }\n \n }\n\n function initSupplierPricesGridData(){\n\n var supplierPricesRowdata = [];\n _.forEach(vm.selectedArticleCopy.articleVariants,function(artVar){\n _.forEach(artVar.supplierPrices,function(supplierPriceRow){\n supplierPricesRowdata.push(supplierPriceRow); \n }) \n })\n if(supplierPricesRowdata === undefined){\n supplierPricesRowdata = [];\n }\n\n return supplierPricesRowdata;\n }\n function loadSupplierPricesGridData() {\n var rows = [];\n\n var companyRows = _.sortBy(vm.selectedArticleCopy.suppliers);\n \n _.forEach(companyRows, function(comp) {\n _.forEach(vm.selectedArticleCopy.articleVariants, function (variantRowValues) {\n if (variantRowValues.supplierPrices === undefined) {\n variantRowValues.supplierPrices = [];\n }\n var filteredRows = _.filter(variantRowValues.supplierPrices, { companyId: comp.id });\n if (filteredRows.length === 0) {\n var newRow = {};\n newRow.articleVariantId = variantRowValues.id;\n newRow.alternativeProductNumber = \"\";\n newRow.purchaseCost = 0;\n newRow.discountPercent = 0;\n newRow.standardCostAddPercent = 0;\n newRow.companyId = comp.id;\n newRow.externalId = variantRowValues.externalId;\n newRow.variantDetail1Id = variantRowValues.variantDetail1.id;\n newRow.variantDetail1Name = variantRowValues.variantDetail1.variantDetailName;\n newRow.variantDetail2Id = variantRowValues.variantDetail2.id;\n newRow.variantDetail2Name = variantRowValues.variantDetail2.variantDetailName;\n newRow.companyName = comp.companyName;\n if (comp.purchasingCurrency) {\n newRow.purchasingCurrency = comp.purchasingCurrency;\n } else {\n newRow.purchasingCurrency = defaultCurrency;\n }\n variantRowValues.supplierPrices.push(newRow);\n rows.push(newRow);\n } else {\n var existingRow = filteredRows[0];\n existingRow.articleVariantId = variantRowValues.id;\n existingRow.companyId = comp.id;\n existingRow.externalId = variantRowValues.externalId;\n existingRow.variantDetail1Name = variantRowValues.variantDetail1.variantDetailName;\n existingRow.variantDetail2Name = variantRowValues.variantDetail2.variantDetailName;\n existingRow.companyName = comp.companyName;\n if (!existingRow.purchasingCurrency) {\n if (comp.purchasingCurrency) {\n existingRow.purchasingCurrency = comp.purchasingCurrency;\n } else {\n existingRow.purchasingCurrency = defaultCurrency;\n }\n }\n rows.push(existingRow);\n }\n });\n });\n\n return rows;\n }\n\n function resetSupplierPricesGridWithData() {\n vm.supplierRowData = loadSupplierPricesGridData();\n initFilters();\n }\n\n function selectDefaultVat() {\n if (vm.selectedArticleCopy.itemGroup && vm.selectedArticleCopy.itemGroup.vat) {\n var vatId = vm.selectedArticleCopy.itemGroup.vat.id;\n var vat = _.find(vm.vats, function (vat) {\n return vat.id === vatId;\n });\n vm.selectedArticleCopy.vat = vat;\n }\n }\n\n function selectDefaultSalechannels(itemGroup) {\n if (vm.isNewArticle) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('article.checkingSalesChannels') });\n ProductsApiService.getItemGroup(itemGroup.id).then(function(response) {\n itemGroup = response;\n\n var salesChannels = _.clone(vm.salesChannels);\n\n if (itemGroup.mainGroup && itemGroup.mainGroup.salesChannels && itemGroup.mainGroup.salesChannels.length > 0) {\n salesChannels = _.intersectionBy(salesChannels, itemGroup.mainGroup.salesChannels, 'id');\n }\n\n if (itemGroup.brand && itemGroup.brand.salesChannels && itemGroup.brand.salesChannels.length > 0) {\n salesChannels = _.intersectionBy(salesChannels, itemGroup.brand.salesChannels, 'id');\n }\n\n vm.selectedArticleCopy.salesChannels = salesChannels;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function selectDefaultDepartment(departments) {\n if (departments.length === 1) {\n vm.selectedArticleCopy.department = departments[0];\n }\n }\n\n function selectDefaultSubCatgory(subCategories) {\n if (subCategories.length === 1) {\n vm.selectedArticleCopy.subCategory = subCategories[0];\n }\n }\n\n function selectDefaultAccounts(mainGroup) {\n if (mainGroup.discountAccount) {\n vm.selectedArticleCopy.discountAccount = mainGroup.discountAccount;\n }\n if (mainGroup.salesAccount) {\n vm.selectedArticleCopy.salesAccount = mainGroup.salesAccount;\n }\n }\n\n function selecteDefaultIsVariant() {\n if (vm.selectedArticleCopy.itemGroup && vm.selectedArticleCopy.itemGroup.mainGroup) {\n vm.selectedArticleCopy.isVariant = vm.selectedArticleCopy.itemGroup.mainGroup.isVariant;\n }\n }\n\n function selectDefaultIntrastat() {\n if (!vm.isEditing) {\n return;\n }\n\n //If exists in both\n if (vm.selectedArticleCopy.itemGroup.mainGroup && vm.selectedArticleCopy.subCategory) {\n var intrastats = _.intersectionBy(vm.selectedArticleCopy.itemGroup.mainGroup.intrastats, vm.selectedArticleCopy.subCategory.intrastats, 'id');\n if (intrastats.length === 1) {\n vm.selectedArticleCopy.intrastat = intrastats[0];\n return;\n }\n }\n\n //If only one in maingroup\n if (vm.selectedArticleCopy.itemGroup.mainGroup && vm.selectedArticleCopy.itemGroup.mainGroup.intrastats && vm.selectedArticleCopy.itemGroup.mainGroup.intrastats.length === 1) {\n vm.selectedArticleCopy.intrastat = vm.selectedArticleCopy.itemGroup.mainGroup.intrastats[0];\n return;\n }\n\n //If only one in subCategory\n if (vm.selectedArticleCopy.subCategory && vm.selectedArticleCopy.subCategory.intrastats && vm.selectedArticleCopy.subCategory.intrastats.length === 1) {\n vm.selectedArticleCopy.intrastat = vm.selectedArticleCopy.subCategory.intrastats[0];\n return;\n }\n }\n\n function selectDefaultVariantGroup() {\n if (vm.selectedArticleCopy.itemGroup.variantGroup2 !== undefined && vm.selectedArticleCopy.itemGroup.variantGroup2 !== null) {\n var groupId = vm.selectedArticleCopy.itemGroup.variantGroup2.id;\n var group = _.find(vm.variant2.variantGroups, function (variantGroup) {\n return variantGroup.id === groupId;\n });\n vm.selectedArticleCopy.variantGroup2 = group;\n changeVariantGroup();\n }\n }\n\n function downloadArticleLabels() {\n ProductsApiService.downloadArticleLabels(vm.selectedArticle.id);\n }\n\n function openLabelsModal() {\n ArticleLabelsPrintDialogService.showDialog(vm.selectedArticle.id);\n }\n\n function openItemGroupModal() {\n ArticleChangeItemGroupDialogService.showDialog(vm.selectedArticle.id, itemGroups).then(function(response){\n if(response)\n $state.go($state.current.name,{},{reload: $state.current.name});\n });\n }\n\n function openNewIntrastatModal(articleVariant) {\n var articleVariantId = null;\n if (articleVariant) { articleVariantId = articleVariant.id; }\n ArticleNewIntrastatDialogService.showDialog(vm.selectedArticleCopy.id, articleVariantId).then(function(response) {\n if (response) {\n vm.selectedArticleCopy.itemGroup.mainGroup.intrastats = response.itemGroup.mainGroup.intrastats;\n if (response.articleVariants.length === 1) {\n articleVariant.intrastat = response.articleVariants[0].intrastat;\n } else {\n vm.selectedArticleCopy.intrastat = response.intrastat;\n }\n }\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n });\n }\n\n function addAdditionalArticleVariants() {\n var newArticleVariants = createMissingArticleVariants(vm.selectedArticleCopy.variantGroup2, vm.selectedArticleCopy.articleVariants);\n\n _.forEach(newArticleVariants, function (articleVariant) {\n vm.selectedArticleCopy.articleVariants.push(articleVariant);\n });\n\n vm.articleChangeCount++;\n }\n\n function createMissingArticleVariants(variantGroup, articleVariants) {\n var newArticleVariants = [];\n\n var allVariant1Details = [];\n var allVariant2Details = variantGroup.variantDetails;\n var missingVariantCombinations = [];\n\n _.forEach(articleVariants, function(av) {\n if (!_.find(allVariant1Details, function(vd1) { return vd1.id === av.variantDetail1.id; })) {\n allVariant1Details.push(av.variantDetail1);\n }\n });\n\n _.forEach(allVariant1Details, function(vd1) {\n _.forEach(allVariant2Details, function(vd2) {\n if (!_.find(articleVariants, function(av) { return av.variantDetail1.id === vd1.id && av.variantDetail2.id === vd2.id; })) {\n missingVariantCombinations.push({variantDetail1: vd1, variantDetail2: vd2});\n }\n });\n });\n\n _.forEach(missingVariantCombinations, function(vc) {\n var newArticleVariant = {};\n newArticleVariant['articleCollection'] = {};\n newArticleVariant['articleVariantBarcodes'] = [];\n newArticleVariant['purchaseCost'] = 0;\n newArticleVariant['salesPrice'] = 0;\n newArticleVariant['variantDetail1'] = vc.variantDetail1;\n newArticleVariant['variantDetail2'] = vc.variantDetail2;\n newArticleVariant['articleVariantPrices'] = [];\n newArticleVariants.push(newArticleVariant);\n });\n\n return newArticleVariants;\n }\n\n function copyToAllVisibleSupplierPrices(sourceRow) {\n _.forEach(vm.supplierRowData, function(targetRow) {\n if (!filterSupplierRowData(targetRow) || sourceRow === targetRow) {\n return;\n }\n targetRow.purchasingCurrency = sourceRow.purchasingCurrency;\n targetRow.purchasePrice = sourceRow.purchasePrice;\n targetRow.discountPercent = sourceRow.discountPercent;\n targetRow.standardCostAddPercent = sourceRow.standardCostAddPercent;\n\n targetRow.shippingCost = sourceRow.shippingCost;\n targetRow.customsPercent = sourceRow.customsPercent;\n targetRow.otherCosts = sourceRow.otherCosts;\n\n });\n }\n\n function isNewWithItemGroup() {\n return !vm.selectedArticleCopy || !vm.selectedArticleCopy.itemGroup || !vm.selectedArticleCopy.itemGroup.id || vm.selectedArticleCopy.itemGroup.id <= 0;\n }\n\n function productStateGo(stringState) {\n $state.go(stringState, \n {\n articleId: vm.selectedArticle.id,\n filter: searchTerms.filter,\n currentPage: searchTerms.currentPage,\n pageSize: searchTerms.pageSize,\n inactive: searchTerms.inactive,\n match: searchTerms.match\n },\n {reload:true}\n );\n }\n}\n\nangular\n .module('product.articles.article', [])\n .config(stateConfig)\n .controller('ArticleController', ArticleController);\n","angular.module('components.caArticleVariantsGrid', [])\n .component('caArticleVariantsGrid', {\n templateUrl: 'main/product/articles/article/components/articlevariantsgrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n article: '=',\n articleCollections: '<',\n variant2: '<',\n disabled: '<',\n isEditing: '<',\n articleChangeCount: '=',\n searchedVariant: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $rootScope, ArticleAddNewArticleVariantDialogService, colourChangeDialogService, $state, FeatureSwitchService) {\n var vm = this;\n\n vm.variantDetail1s = [];\n vm.variantDetail2s = [];\n vm.gridData = [];\n vm.currentUserClaims = $rootScope.currentUser.claims;\n\n vm.newColorName = '';\n var errorColor = 'salmon';\n vm.canAddNewColor = true;\n\n vm.gridEditTypes = loadGridEditTypes();\n \n vm.selectedGridEditType = vm.gridEditTypes[0];\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.changeGridEditType = changeGridEditType;\n vm.getNewColorInputStyle = getNewColorInputStyle;\n vm.isSearchedVariant = isSearchedVariant;\n vm.updateVariant1 = updateVariant1;\n vm.getVariant1EditStyle = getVariant1EditStyle;\n vm.hasClaim = havePurchaseCostClaim;\n vm.openAddArticleVariantDialog = openAddArticleVariantDialog;\n\n vm.isAllowedToChangeColoursOnProducts = false;\n vm.openColourChangeModal = openColourChangeModal;\n\n function onInit() {\n $scope.$watch(function() { return vm.article; }, function(newValue, oldValue) {\n constructGridData();\n });\n $scope.$watch(function() { return vm.article.articleVariants.length; }, function(newValue, oldValue) {\n constructGridData();\n });\n $scope.$watch(function () { return vm.isEditing; }, function (newValue, oldValue) {\n //Make sure all VariantDetail1 for this color is updated to the new variant name\n if (!newValue) {\n _.forEach(vm.gridData, function(articleVariantArray) {\n if (articleVariantArray.length > 0) {\n articleVariantArray[0].variantDetail1.isEditing = false;\n }\n });\n }\n });\n\n FeatureSwitchService.isAllowedToChangeColoursOnProducts().then(function(response) {\n vm.isAllowedToChangeColoursOnProducts = response;\n }, function(error) {});\n }\n function onChanges(changes) {\n\n }\n function onDestroy() {\n\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n function loadGridEditTypes(){\n var gridEditTypes = [\n { translationKey: 'article.salesprice', value: 'salesPrice', dataType: 'number' },\n { translationKey: 'article.purchasecost', value: 'purchaseCost', dataType: 'number' },\n { translationKey: 'article.externalid', value: 'externalId', dataType: 'disabled'},\n //{ translationKey: 'article.barcode', value: 'barcode', dataType: 'disabled'},\n { translationKey: 'article.iscurrent', value: 'isCurrent', dataType: 'boolean' },\n { translationKey: 'article.previousprice', value: 'previousPrice', dataType:'number' },\n { translationKey: 'article.articlecollection', value: 'articleCollection', dataType:'articleCollection' },\n { translationKey: 'article.salesColour', value: 'salesColour', dataType:'text' }\n ];\n\n \n if(!havePurchaseCostClaim()){\n gridEditTypes = gridEditTypes.filter(g => g.value !== \"purchaseCost\");\n }\n \n return gridEditTypes;\n }\n\n function isSearchedVariant(articleVariant) {\n if (!vm.searchedVariant || !articleVariant) {\n return false;\n }\n if (vm.searchedVariant.id !== articleVariant.id) {\n return false;\n }\n return true;\n }\n\n function constructGridData() {\n populateVariantDetailsArrays();\n\n var grouped = _.groupBy(vm.article.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.variantDetailName;\n });\n\n vm.gridData = [];\n\n var keys = Object.keys(grouped);\n\n _.forEach(keys, function(key) {\n var artVars = grouped[key];\n _.orderBy(artVars, function(artVar) { return artVar.variantDetail2.sortOrder; });\n\n var currentColorArray = [];\n\n _.forEach(vm.variantDetail2s, function(varDet2) {\n var articleVariant = _.find(artVars, function(artVar) { return artVar.variantDetail2.id === varDet2.id; });\n if (articleVariant === undefined) {\n // If the articleVariant for the cell does not exist, construct a dummy element representing it instead.\n articleVariant = { id:0, isGeneratedArticleVariant: true, variantDetail2: varDet2, variantDetail1: { variantDetailName: key }};\n }\n currentColorArray.push(articleVariant);\n });\n\n _.orderBy(currentColorArray, function(artVar) { return artVar.variantDetail2.sortOrder; });\n vm.gridData.push(currentColorArray);\n });\n }\n\n function setCanAddNewColor() {\n populateVariantDetailsArrays();\n var retVal = false;\n var newValue = vm.newColorName;\n\n if (newValue === undefined || newValue.trim().length === 0) { vm.canAddNewColor = false; return; }\n\n if (vm.variantDetail2s.length === 0) {\n _.forEach(vm.article.variantGroup2.variantDetails, function(varDet2) {\n if (retVal) { return false; }\n var alreadyExistingVariant = _.find(vm.article.articleVariants, function(articleVariant) {\n return normalizeString(articleVariant.variantDetail1.variantDetailName).toLowerCase() === normalizeString(newValue).toLowerCase() &&\n articleVariant.variantDetail2.variantDetailName === varDet2.variantDetailName;\n });\n if (alreadyExistingVariant === undefined) {\n retVal = true;\n } else {\n retVal = false;\n }\n });\n } else {\n _.forEach(vm.variantDetail2s, function(varDet2) {\n if (retVal) { return false; }\n var alreadyExistingVariant = _.find(vm.article.articleVariants, function(articleVariant) {\n return normalizeString(articleVariant.variantDetail1.variantDetailName).toLowerCase() === normalizeString(newValue).toLowerCase() &&\n articleVariant.variantDetail2.variantDetailName === varDet2.variantDetailName;\n });\n if (alreadyExistingVariant === undefined) {\n retVal = true;\n } else {\n retVal = false;\n }\n });\n }\n vm.canAddNewColor = retVal;\n }\n\n function normalizeString(str) {\n //Make sure string contains only letters, numbers and some special characters\n var retVal = str;\n var r = /[^ \\(\\)\\/\\\\0-9\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]+/g;\n retVal = str.replace(r, '');\n //Make sure there are no extra whitespace\n var r2 = /[\\s]{2,}/g;\n retVal = retVal.replace(r2, ' ');\n //Remove leading and trailing whitespace\n retVal = retVal.trim();\n return retVal;\n }\n\n function getNewColorInputStyle() {\n var style = {};\n setCanAddNewColor();\n if (!vm.canAddNewColor) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n style['border-width'] = '1px';\n style['border-style'] = 'inset';\n style['border-color'] = 'initial';\n style['border-image'] = 'initial';\n } else {\n style['color'] = 'inherit';\n style['background-color'] = 'white';\n style['border-width'] = '1px';\n style['border-style'] = 'inset';\n style['border-color'] = 'initial';\n style['border-image'] = 'initial';\n }\n return style;\n }\n\n function changeGridEditType(gridEditType) {\n vm.selectedGridEditType = gridEditType;\n }\n\n function populateVariantDetailsArrays() {\n vm.variantDetail1s = [];\n vm.variantDetail2s = [];\n _.forEach(vm.article.articleVariants, function(articleVariant) {\n if (!_.find(vm.variantDetail1s, function(varDet1) { return varDet1.id === articleVariant.variantDetail1.id; })) {\n vm.variantDetail1s.push(articleVariant.variantDetail1);\n }\n if (!_.find(vm.variantDetail2s, function(varDet2) { return varDet2.id === articleVariant.variantDetail2.id; })) {\n vm.variantDetail2s.push(articleVariant.variantDetail2);\n }\n });\n\n vm.variantDetail1s = _.orderBy(vm.variantDetail1s, function(variantDetail1) { return variantDetail1.sortOrder; });\n vm.variantDetail2s = _.orderBy(vm.variantDetail2s, function(variantDetail2) { return variantDetail2.sortOrder; });\n }\n\n function updateVariant1(articleVariantArray) {\n var newVariantDetail1Name = articleVariantArray[0].variantDetail1.variantDetailName;\n var firstArticleVariantId = articleVariantArray[0].id;\n var gridData = vm.gridData;\n var isDuplicate= isDetailNameDuplicate(newVariantDetail1Name, firstArticleVariantId);\n _.forEach(articleVariantArray, function(artVar) {\n if (articleVariantArray[0].variantDetail1.variantDetailName !== artVar.variantDetail1.variantDetailName) {\n artVar.variantDetail1.variantDetailName = articleVariantArray[0].variantDetail1.variantDetailName;\n }\n });\n }\n\n function isDetailNameDuplicate(variantDetail1Name, articleVariantId) {\n var isDuplicate = false;\n _.forEach(vm.gridData, function(gridRow) {\n var gridRowArticleVariant = gridRow[0];\n if (gridRowArticleVariant.id !== articleVariantId) {\n if (gridRowArticleVariant.variantDetail1.variantDetailName === variantDetail1Name) {\n isDuplicate = true;\n }\n }\n\n });\n\n return isDuplicate;\n }\n\n function getVariant1EditStyle(item) {\n var newVariantDetail1Name = item[0].variantDetail1.variantDetailName;\n var firstArticleVariantId = item[0].id;\n var style = {\n 'border': '1px solid black',\n 'padding': '3px',\n 'height': 'auto',\n 'background-color': 'white'\n };\n\n if (isDetailNameDuplicate(newVariantDetail1Name, firstArticleVariantId)) {\n style['background-color'] = errorColor;\n }\n\n return style;\n }\n\n function openAddArticleVariantDialog(){\n ArticleAddNewArticleVariantDialogService.showDialog(vm.article, vm.articleCollections, vm.variant2).then(function(response){\n if(response)\n $state.go($state.current.name,{},{reload: $state.current.name});\n });\n }\n\n function openColourChangeModal(colourName) {\n colourChangeDialogService.showDialog(vm.article.id, colourName).then(function(response) {\n if (response) {\n $state.go($state.current.name, {}, { reload: $state.current.name });\n }\n });\n }\n\n}\n","angular.module('components.caArticleVariantsGridCell', [])\n .component('caArticleVariantsGridCell', {\n templateUrl: 'main/product/articles/article/components/articlevariantsgridcell.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n articleVariant: '=',\n articleVariants: '=',\n articleCollections: '<',\n gridEditType: '<',\n onArticleVariantUpdated: '&',\n changeCount: '=',\n disabled: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.dataType = '';\n vm.handleMultipleArticleVariants = false;\n vm.inputBoxDisplayValue = '';\n\n vm.inputValueChanged = inputValueChanged;\n\n function onInit() {\n if (vm.dataType === undefined || vm.dataType === '') {\n vm.dataType = 'number'; //Default for input fields is number, but datatype for each tab is set in articlevariantsgrid.component.js\n }\n\n if (vm.articleVariant === undefined && vm.articleVariants.length !== 0) {\n vm.handleMultipleArticleVariants = true;\n } else {\n vm.handleMultipleArticleVariants = false;\n }\n\n reloadInputBoxValue();\n\n $scope.$watch(function() { return vm.changeCount; }, function(newValue, oldValue) {\n if (newValue !== oldValue) {\n reloadInputBoxValue();\n }\n });\n }\n\n function onChanges(changes) {\n if (changes.changeCount) {\n reloadInputBoxValue();\n }\n if (changes.gridEditType) {\n vm.dataType = vm.gridEditType.dataType;\n reloadInputBoxValue();\n if (vm.handleMultipleArticleVariants) {\n vm.inputBoxDisplayValue = undefined;\n }\n }\n }\n function onDestroy() {\n\n }\n\n function reloadInputBoxValue() {\n if (!vm.handleMultipleArticleVariants && vm.articleVariant && vm.articleVariant[vm.gridEditType.value]) {\n vm.inputBoxDisplayValue = vm.articleVariant[vm.gridEditType.value];\n } else if (!vm.handleMultipleArticleVariants && vm.dataType === 'number') {\n vm.inputBoxDisplayValue = '0';\n } else if (!vm.handleMultipleArticleVariants && vm.dataType === 'boolean') {\n vm.inputBoxDisplayValue = false;\n } else if (!vm.handleMultipleArticleVariants && vm.dataType === 'disabled') {\n vm.inputBoxDisplayValue = '';\n }\n }\n\n function inputValueChanged() {\n if (vm.handleMultipleArticleVariants) {\n _.forEach(vm.articleVariants, function(articleVariant) {\n articleVariant[vm.gridEditType.value] = vm.inputBoxDisplayValue;\n });\n } else {\n vm.articleVariant[vm.gridEditType.value] = vm.inputBoxDisplayValue;\n }\n vm.changeCount += 1;\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.articles',{\n url: '/articles?currentPage&filter&pageSize&inactive&match',\n views: {'productList@product': {\n templateUrl: 'main/product/articles/articles.tpl.html',\n controller: 'ArticlesController as vm'\n }},\n resolve: {\n searchTerms: searchTermResolver\n }\n });\n}\n\n// @ngInject\nfunction searchTermResolver($stateParams) {\n return {\n filter: $stateParams.filter,\n currentPage: $stateParams.currentPage,\n pageSize: $stateParams.pageSize,\n inactive: $stateParams.inactive,\n match: $stateParams.match\n };\n}\n\n// @ngInject\nfunction ArticlesController($state, searchTerms) {\n var vm = this;\n\n //Properties\n vm.articles = [];\n vm.filter = '';\n vm.currentPage = 1;\n vm.pageSize = 15;\n vm.match = false;\n vm.inactive = false;\n vm.totalItems = [];\n\n //Methods\n vm.selectArticle = selectArticle;\n vm.goToNew = goToNew;\n\n activate();\n\n function activate() {\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.currentPage = searchTerms.currentPage > 1 ? searchTerms.currentPage : 1;\n vm.pageSize = searchTerms.pageSize >= 20 ? searchTerms.pageSize : 20;\n vm.match = searchTerms.match ? searchTerms.match == 'true' ? true : false : false;\n vm.inactive = searchTerms.inactive ? searchTerms.inactive == 'true' ? true : false : false;\n }\n\n function selectArticle(article) {\n $state.go('product.articles.article',\n {\n articleId: article.articleId,\n filter: article.searchTerms.filter,\n currentPage: article.searchTerms.currentPage,\n pageSize: article.searchTerms.pageSize,\n inactive: article.searchTerms.inactive,\n match: article.searchTerms.match\n }\n );\n }\n function goToNew() {\n $state.go('product.articles.new');\n }\n}\n\nangular\n .module('product.articles', ['product.articles.article', 'product.articles.articleLabelsPrintDialog', 'product.articles.articleNewIntrastatDialog', 'product.articles.articleChangeItemGroupDialog', 'product.articles.articleAddNewArticleVariantDialog'])\n .config(stateConfig)\n .controller('ArticlesController', ArticlesController);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.priceListSearch.pricelist', {\n url: '/{articleId}',\n views: {\n \"productView@product\": {\n templateUrl: 'main/product/articles/pricelistmanagement/pricelistmanagement.tpl.html',\n controller: 'PriceListController as vm'\n }\n },\n resolve: {\n article: articleResolver,\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction articleResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getProduct($stateParams.articleId);\n}\n\n// @ngInject\nfunction locationsResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getLocations();\n}\n\n// @ngInject\nfunction PriceListController(article, $scope, locations, PricelistsApiService, ToasterService, loadSpinnerService) {\n var vm = this;\n\n vm.locations = locations;\n vm.selectedArticle = article;\n vm.selectedLocation = {};\n vm.newPrice = \"\";\n vm.save = save;\n vm.removeOverridePrice = removeOverridePrice;\n vm.foundExistingPrice = false;\n\n activate();\n\n function activate() {\n $scope.$watch(function() {return vm.selectedLocation;}, function() {\n loadPriceForCurrentLocation();\n });\n\n // TODO: NO! Remove this ugly hack. Implement default locations for real instead.\n var defaultLocation = _.find(vm.locations, function(location) {\n return location.locationName === \"Pop-Up Stinsen\";\n });\n if (defaultLocation) {\n vm.selectedLocation = defaultLocation;\n }\n }\n\n function loadPriceForCurrentLocation() {\n _.forEach(vm.selectedArticle.articleVariants, function(articleVariant) {\n var relevantArticleVariantPrice = _.find(articleVariant.articleVariantPrices, function(articleVariantPrice) {\n return articleVariantPrice.location.id === vm.selectedLocation.id;\n });\n\n if (relevantArticleVariantPrice) {\n vm.newPrice = relevantArticleVariantPrice.salesPrice;\n vm.foundExistingPrice = true;\n } else {\n vm.newPrice = \"\";\n vm.foundExistingPrice = false;\n }\n });\n }\n\n function save() {\n loadSpinnerService.start('mainSpinner');\n\n PricelistsApiService.updateOverridePrice(vm.selectedArticle.id, vm.selectedLocation.id, vm.newPrice).then(function(response) {\n vm.selectedArticle = response.data;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function removeOverridePrice() {\n loadSpinnerService.start('mainSpinner');\n\n PricelistsApiService.removeOverridePrice(vm.selectedArticle.id, vm.selectedLocation.id).then(function(response) {\n vm.newPrice = \"\";\n vm.selectedArticle = response.data;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n}\n\nangular\n .module('product.articles.pricelist', [])\n .config(stateConfig)\n .controller('PriceListController', PriceListController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.priceListSearch',{\n url: '/pricelist?currentPage&filter&pageSize',\n views: {'productList@product': {\n templateUrl: 'main/product/articles/pricelistmgmt.tpl.html',\n controller: 'PriceListManagementController as vm'\n }},\n resolve: {\n searchTerms: searchTermResolver\n }\n });\n}\n\n// @ngInject\nfunction searchTermResolver($stateParams) {\n return {\n filter: $stateParams.filter,\n currentPage: $stateParams.currentPage,\n pageSize: $stateParams.pageSize\n };\n}\n\n// @ngInject\nfunction PriceListManagementController($state, searchTerms) {\n var vm = this;\n\n //Properties\n vm.articles = [];\n vm.filter = '';\n vm.currentPage = 1;\n vm.pageSize = 15;\n vm.totalItems = [];\n\n //Methods\n vm.selectArticle = selectArticle;\n\n activate();\n\n function activate() {\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.currentPage = searchTerms.currentPage > 1 ? searchTerms.currentPage : 1;\n vm.pageSize = searchTerms.pageSize >= 20 ? searchTerms.pageSize : 20;\n }\n\n function selectArticle(article) {\n $state.go('product.priceListSearch.pricelist',\n {\n articleId: article.articleId,\n filter: article.searchTerms.filter,\n currentPage: article.searchTerms.currentPage,\n pageSize: article.searchTerms.pageSize\n }\n );\n }\n}\n\nangular\n .module('product.pricelistmgmt', ['product.articles.pricelist', 'product.articles.articleLabelsPrintDialog', 'product.articles.articleNewIntrastatDialog'])\n .config(stateConfig)\n .controller('PriceListManagementController', PriceListManagementController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.brands.new', {\n url:'/new',\n views: {\"productView@product\": {\n templateUrl: 'main/product/brands/brand/brand.tpl.html',\n controller: 'BrandController as vm'\n }},\n resolve: {\n brand: function() { return {}; },\n mainGroups: mainGroupsResolver,\n isNewBrand: function() { return true; },\n companies: companiesResolver,\n brandCategories: brandCategoriesResolver,\n barcodeTypes: barcodeTypesResolver,\n tenantConfig: tenantConfigResolver,\n vats: vatsResolver,\n variantGroups: variantGroupsResolver,\n salesChannels: salesChannelResolver\n }\n });\n\n $stateProvider.state('product.brands.brand', {\n url:'/{brandId}',\n views: {\"productView@product\": {\n templateUrl: 'main/product/brands/brand/brand.tpl.html',\n controller: 'BrandController as vm'\n }},\n resolve: {\n brand: brandResolver,\n mainGroups: mainGroupsResolver,\n isNewBrand: function() { return false; },\n companies: companiesResolver,\n brandCategories: brandCategoriesResolver,\n barcodeTypes: barcodeTypesResolver,\n tenantConfig: tenantConfigResolver,\n vats: vatsResolver,\n variantGroups: variantGroupsResolver,\n salesChannels: salesChannelResolver\n }\n });\n\n}\n\n// @ngInject\nfunction mainGroupsResolver(BrandsApiService) {\n return BrandsApiService.getMainGroups();\n}\n\n// @ngInject\nfunction brandResolver($stateParams, BrandsApiService) {\n return BrandsApiService.getBrand($stateParams.brandId);\n}\n\n// @ngInject\nfunction companiesResolver(BrandsApiService) {\n return BrandsApiService.getCompanies();\n}\n\n// @ngInject\nfunction brandCategoriesResolver(BrandsApiService) {\n return BrandsApiService.getBrandCategories();\n}\n\n// @ngInject\nfunction barcodeTypesResolver(BrandsApiService) {\n return BrandsApiService.getBarcodeTypes();\n}\n\n// @ngInject\nfunction tenantConfigResolver(BrandsApiService) {\n return BrandsApiService.getTenantConfig();\n}\n\n// @ngInject\nfunction vatsResolver(VatsApiService) {\n return VatsApiService.getVats();\n}\n\n//@ngInject\nfunction variantGroupsResolver(BrandsApiService) {\n return BrandsApiService.getVariantGroups();\n}\n\n//@ngInject\nfunction salesChannelResolver(BrandsApiService) {\n return BrandsApiService.getSalesChannels();\n}\n\n\n// @ngInject\nfunction BrandController($state, vats, brand, mainGroups, loadSpinnerService, BrandsApiService, isNewBrand, companies, variantGroups, brandCategories, barcodeTypes, tenantConfig, salesChannels) {\n var vm = this;\n\n var brandCopy = {};\n\n vm.brand = brand;\n vm.mainGroups = [];\n vm.selectedMainGroups = [];\n vm.selectedCompanies = [];\n vm.removedCompanies = [];\n vm.companies = companies;\n vm.brandCategories = brandCategories;\n vm.barcodeTypes = barcodeTypes;\n vm.vats = vats;\n vm.salesChannels = salesChannels;\n\n vm.addMainGroups = addMainGroups;\n vm.removeCompany = removeCompany;\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveBrand = saveBrand;\n\n vm.isNewBrand = isNewBrand;\n vm.isEditing = vm.isNewBrand;\n\n vm.tenantConfig = tenantConfig;\n vm.isAllInformationValid = isAllInformationValid;\n vm.isBrandCodeValid = isBrandCodeValid;\n vm.isBrandCategoryValid = isBrandCategoryValid;\n vm.isBarcodeTypeValid = isBarcodeTypeValid;\n vm.isBrandDescriptionValid = isBrandDescriptionValid;\n\n vm.variantGroups = variantGroups;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n console.log(\"VariantGroups\");\n console.log(vm.variantGroups);\n\n activate();\n\n function activate() {\n prepareData();\n\n if (vm.isNewBrand) {\n vm.brand = {};\n vm.brand['company'] = vm.companies[0];\n }\n\n }\n\n function addMainGroups() {\n var brands = [vm.brand];\n var mainGroups = vm.selectedMainGroups;\n\n loadSpinnerService.start('mainSpinner');\n BrandsApiService.createItemGroups(mainGroups, brands).then(function() {\n BrandsApiService.getBrand(vm.brand.id).then(function(response) {\n vm.brand = response;\n prepareData();\n vm.selectedMainGroups = [];\n }, function(error) {\n console.log(error);\n });\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function removeCompany(company) {\n console.log('Removing ' + company.id + ' (' + company.companyName + ') from company list');\n vm.removedCompanies.push(company);\n vm.brand.companies = vm.brand.companies.filter(function (obj) {\n return obj.id !== company.id;\n });\n }\n\n function enableEditing() {\n brandCopy = angular.copy(vm.brand);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.brand = brandCopy;\n vm.isEditing = false;\n vm.selectedMainGroups = [];\n vm.selectedCompanies = [];\n vm.removedCompanies = [];\n }\n\n function saveBrand() {\n if (vm.isNewBrand) {\n saveNewBrand();\n } else {\n updateBrand();\n }\n }\n\n function saveNewBrand() {\n loadSpinnerService.start('mainSpinner');\n\n //Make sure preferred supplier is in list of suppliers\n if (!vm.brand.companies) { vm.brand.companies = []; }\n if (!_.find(vm.brand.companies, function(c) { return c.id === vm.brand.company.id; })) {\n vm.brand.companies.push(vm.brand.company);\n }\n\n BrandsApiService.createBrand(vm.brand, vm.selectedMainGroups,\n vm.selectedCompanies, vm.removedCompanies).then(function(response) {\n vm.brand = response;\n prepareData();\n vm.selectedMainGroups = [];\n vm.selectedCompanies = [];\n vm.removedCompanies = [];\n vm.isNewBrand = false;\n vm.isEditing = false;\n $state.go('product.brands.brand', {brandId: response.id});\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateBrand() {\n loadSpinnerService.start('mainSpinner');\n\n //Make sure preferred supplier is in list of suppliers\n if (!_.find(vm.brand.companies, function(c) { return c.id === vm.brand.company.id; })) {\n vm.brand.companies.push(vm.brand.company);\n }\n\n BrandsApiService.updateBrand(vm.brand, vm.selectedMainGroups,\n vm.selectedCompanies, vm.removedCompanies).then(function(response) {\n vm.brand = response;\n prepareData();\n vm.selectedMainGroups = [];\n vm.selectedCompanies = [];\n vm.removedCompanies = [];\n vm.isEditing = false;\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function prepareData() {\n if (vm.brand === undefined) {\n return;\n }\n\n // Filter out mainGroups that are already added.\n var tempMainGroups = [];\n _.forEach(mainGroups, function(mainGroup) {\n if (!_.find(vm.brand.itemGroups, function(igrp) { return igrp.mainGroup.id === mainGroup.id; })) {\n tempMainGroups.push(mainGroup);\n }\n });\n\n vm.mainGroups = _.sortBy(tempMainGroups, function(mainGroup) {\n return mainGroup.mainGroupCode;\n });\n if (vm.brand.mainGroups === undefined || vm.brand.mainGroups.length === 0) {\n vm.brand.mainGroups = vm.mainGroups;\n }\n\n if (vm.brand.companies === undefined || vm.brand.companies.length === 0) {\n vm.brand.companies = companies;\n }\n vm.brand.companies = _.sortBy(vm.brand.companies, function(company) {\n return company.companyName;\n });\n }\n\n function isAllInformationValid() {\n return (\n !vm.isNewBrand && \n isBrandDescriptionValid()\n ) || (\n isBrandCodeValid() &&\n isBrandCategoryValid() &&\n isBarcodeTypeValid()\n );\n }\n\n function isBrandCodeValid() {\n var isBrandCodeAlreadyAssigned = _.find(vm.tenantConfig.assignedBrandCodes, function(code) {\n return vm.brand.brandCode === code;\n });\n\n if (!isBrandCodeAlreadyAssigned && isNumeric(vm.brand.brandCode) && vm.brand.brandCode.length === vm.tenantConfig.articleBrandCodeLength) {\n return true;\n } else {\n return false;\n }\n }\n\n function isBrandCategoryValid() {\n if (!vm.brand.brandCategory) {\n return false;\n }\n if (vm.brand.brandCategory.id <= 0) {\n return false;\n }\n return true;\n }\n\n function isBarcodeTypeValid() {\n if (!vm.brand.barcodeType) {\n return false;\n }\n if (vm.brand.barcodeType.id <= 0) {\n return false;\n }\n return true;\n }\n\n function isBrandDescriptionValid(){\n return vm.brand.brandDescription && vm.brand.brandDescription.length > 0;\n }\n\n function toggleDisplayForm(itemGroup) {\n console.log(\"Toggling\");\n if (!itemGroup.showEditForm) { itemGroup.showEditForm = false; }\n itemGroup.showEditForm = !itemGroup.showEditForm;\n }\n\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('brands.brand', [])\n .config(stateConfig)\n .controller('BrandController', BrandController);\n","// @ngInject\nfunction BrandsApiService(ResourcesService) {\n\n var endpoint = 'brands';\n\n return {\n getBrands: ResourcesService.apiFactory.get(endpoint),\n getBrand: ResourcesService.apiFactory.get(endpoint),\n createBrand: createBrand,\n updateBrand: updateBrand,\n getTenantConfig: ResourcesService.apiFactory.get(endpoint + '/tenantconfig'),\n getMainGroups: ResourcesService.apiFactory.get(endpoint + '/maingroups'),\n getCompanies: ResourcesService.apiFactory.get(endpoint + '/companies'),\n getBrandCategories: ResourcesService.apiFactory.get(endpoint + '/brandcategories'),\n getSalesChannels: ResourcesService.apiFactory.get(endpoint + '/saleschannels'),\n getVariantGroups: ResourcesService.apiFactory.get(endpoint + '/variantgroups'),\n getBarcodeTypes: ResourcesService.apiFactory.get(endpoint + '/barcodetypes'),\n createItemGroups: createItemGroups\n };\n\n function createBrand(brand, mainGroups, addedCompanies, removedCompanies) {\n\n var args = {\n brand: brand,\n mainGroups: mainGroups,\n addedCompanies: addedCompanies,\n removedCompanies: removedCompanies\n };\n\n return ResourcesService.apiFactory.create(endpoint,'Brand')(args);\n\n }\n\n function updateBrand(brand, mainGroups, addedCompanies, removedCompanies) {\n\n var args = {\n brand: brand,\n mainGroups: mainGroups,\n addedCompanies: addedCompanies,\n removedCompanies: removedCompanies\n };\n\n return ResourcesService.apiFactory.update(endpoint,'Brand')(args);\n }\n\n function createItemGroups(mainGroups, brands) {\n\n var args = {\n mainGroups: mainGroups,\n brands: brands\n };\n\n return ResourcesService.apiFactory.update(endpoint + '/createitemgroups','MainGroup')(args);\n }\n\n}\n\n\nangular.module('brands.api', [])\n .factory('BrandsApiService', BrandsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.brands', {\n url: '/brands?searchTerm',\n views: {'productList@product': {\n templateUrl: 'main/product/brands/brands.tpl.html',\n controller: 'BrandsController as vm'\n }},\n resolve: {\n brands: brandsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction brandsResolver(BrandsApiService,$stateParams) {\n return BrandsApiService.getBrands({page: 0, searchTerm: $stateParams.searchTerm, pageSize: null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction BrandsController($rootScope, $state, $scope, brands, BrandsApiService,loadSpinnerService,searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.brands = brands;\n vm.selectedBrandId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n vm.itemsPerPage = null;\n vm.sortingKey = '';\n vm.sortingDesc = false;\n\n vm.searchTermChange = searchTermChange;\n vm.sortBrands = sortBrands;\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.brandId; }, function(newValue, oldValue) {\n vm.selectedBrandId = parseInt($state.params.brandId, 10);\n });\n $rootScope.$on('Brand.Inserted', function(event, response) {\n });\n $rootScope.$on('Brand.Updated', function(event, response) {\n });\n $rootScope.$on('Brand.Deleted', function(event, response) {\n });\n $rootScope.$on('Brand.Changed', function(event, response) {\n loadBrands();\n });\n }\n\n function loadBrands() {\n loadSpinnerService.start('mainSpinner');\n BrandsApiService.getBrands({page: vm.currentPage - 1, searchTerm: vm.searchTerm, sortingKey: vm.sortingKey, sortingDesc: vm.sortingDesc, pageSize: vm.itemsPerPage}).then(function(response) {\n vm.brands = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadBrands();\n }\n\n function sortBrands(sortingKey){\n vm.sortingKey = sortingKey;\n vm.sortingDesc = !vm.sortingDesc;\n loadBrands();\n }\n\n}\n\nangular\n .module('product.brands', ['brands.api','brands.brand'])\n .config(stateConfig)\n .controller('BrandsController', BrandsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('product.businessareas.new', {\n url:'/new',\n views: {\n 'productView@product': {\n templateUrl: 'main/product/businessareas/businessarea/businessarea.tpl.html',\n controller: 'BusinessAreaController as vm'\n }},\n resolve: {\n businessarea: function() { return {}; },\n isNewBusinessArea: function() {return true;}\n }\n });\n\n $stateProvider.state('product.businessareas.businessarea', {\n url:'/{businessareaId}',\n views: {\n 'productView@product': {\n templateUrl: 'main/product/businessareas/businessarea/businessarea.tpl.html',\n controller: 'BusinessAreaController as vm'\n }},\n resolve: {\n businessarea: businessareaResolver,\n isNewBusinessArea: function() {return false;}\n }\n });\n\n}\n\n// @ngInject\nfunction businessareaResolver($stateParams, BusinessAreasApiService) {\n return BusinessAreasApiService.getBusinessArea($stateParams.businessareaId);\n}\n\n// @ngInject\nfunction BusinessAreaController($state, businessarea, loadSpinnerService, BusinessAreasApiService, ToasterService, confirmationDialogService, $translate, isNewBusinessArea) {\n var vm = this;\n\n var businessareaCopy = {};\n\n vm.businessarea = businessarea;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveBusinessArea = saveBusinessArea;\n vm.deleteBusinessArea = deleteBusinessArea;\n\n vm.isNewBusinessArea = isNewBusinessArea;\n vm.isEditing = vm.isNewBusinessArea;\n\n vm.isBusinessAreaCodeValid = isBusinessAreaCodeValid;\n vm.isAllInformationValid = isAllInformationValid;\n\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewBusinessArea) {\n vm.businessarea = {};\n }\n\n }\n\n function enableEditing() {\n businessareaCopy = angular.copy(vm.businessarea);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.businessarea = businessareaCopy;\n vm.isEditing = false;\n }\n\n function saveBusinessArea() {\n if (vm.isNewBusinessArea) {\n saveNewBusinessArea();\n } else {\n updateBusinessArea();\n }\n }\n\n function saveNewBusinessArea() {\n loadSpinnerService.start('mainSpinner');\n BusinessAreasApiService.createBusinessArea(vm.businessarea).then(function(response) {\n vm.businessarea = response;\n prepareData();\n vm.isNewBusinessArea = false;\n vm.isEditing = false;\n $state.go('product.businessareas.businessarea', {businessareaId: vm.businessarea.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateBusinessArea() {\n loadSpinnerService.start('mainSpinner');\n\n BusinessAreasApiService.updateBusinessArea(vm.businessarea).then(function(response) {\n vm.businessarea = response;\n prepareData();\n vm.isNewBusinessArea = false;\n vm.isEditing = false;\n $state.go('product.businessareas.businessarea', {businessareaId: vm.businessarea.id});\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteBusinessArea() {\n confirmationDialogService\n .showDialog($translate.instant('businessarea.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n BusinessAreasApiService.deleteBusinessArea(vm.businessarea.id).then(function(response) {\n vm.businessarea = response;\n prepareData();\n vm.isNewBusinessArea = false;\n vm.isEditing = false;\n $state.go('product.businessareas');\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(businessarea) {\n businessarea.showEditForm = !businessarea.showEditForm;\n }\n\n function prepareData() {\n if (vm.businessarea === undefined) {\n return;\n }\n\n vm.businessareaCopy = angular.copy(vm.businessarea);\n }\n\n function isAllInformationValid() {\n return isBusinessAreaCodeValid();\n }\n\n function isBusinessAreaCodeValid() {\n if (!vm.businessarea.code) { return false; }\n if (vm.businessarea.code.length > 20) { return false; }\n\n return true;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('businessareas.businessarea', [])\n .config(stateConfig)\n .controller('BusinessAreaController', BusinessAreaController);\n","// @ngInject\nfunction BusinessAreasApiService(ResourcesService) {\n\n var endpoint = 'businessareas';\n\n return {\n getBusinessAreas: ResourcesService.apiFactory.get(endpoint),\n getBusinessArea: ResourcesService.apiFactory.get(endpoint),\n getLanguages: ResourcesService.apiFactory.get(endpoint + '/languages'),\n createBusinessArea: ResourcesService.apiFactory.create(endpoint, 'BusinessArea'),\n updateBusinessArea: ResourcesService.apiFactory.update(endpoint, 'BusinessArea'),\n deleteBusinessArea: ResourcesService.apiFactory.delete(endpoint, 'BusinessArea')\n };\n\n}\n\nangular\n .module('businessareas.api', [])\n .factory('BusinessAreasApiService', BusinessAreasApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.businessareas', {\n url: '/businessareas?searchTerm',\n views: {\n 'productList': {\n templateUrl: 'main/product/businessareas/businessareas.tpl.html',\n controller: 'BusinessAreasController as vm'\n }},\n resolve: {\n businessareas: businessareasResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction businessareasResolver(BusinessAreasApiService, $stateParams) {\n return BusinessAreasApiService.getBusinessAreas({ page: 0, searchTerm:$stateParams.searchTerm, pageSize: null});\n}\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction BusinessAreasController($rootScope, $state, $scope, businessareas, BusinessAreasApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.businessareas = businessareas;\n vm.selectedBusinessAreaId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.businessAreaId; }, function(newValue, oldValue) {\n vm.selectedBusinessAreaId = parseInt($state.params.businessAreaId,10);\n });\n $rootScope.$on('BusinessArea.Inserted', function(event, response) {\n });\n $rootScope.$on('BusinessArea.Updated', function(event, response) {\n });\n $rootScope.$on('BusinessArea.Deleted', function(event, response) {\n });\n $rootScope.$on('BusinessArea.Changed', function(event, response) {\n loadBusinessAreas();\n });\n }\n\n function loadBusinessAreas() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n BusinessAreasApiService.getBusinessAreas(request).then(function(response) {\n vm.businessareas = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadBusinessAreas();\n }\n\n}\n\nangular\n .module('product.businessareas', ['businessareas.api','businessareas.businessarea'])\n .config(stateConfig)\n .controller('BusinessAreasController', BusinessAreasController);\n","angular.module('components.caArticleSearchMultiSelect', [])\n .component('caArticleSearchMultiSelect', {\n templateUrl: 'main/product/components/articlesearchmultiselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n company: '<',\n selectSameTwiceAllowed: '<',\n articlesToExclude: '<',\n pageSize: '<',\n disabled: '<',\n onArticlesRetrieved: '&'\n },\n controller: ['$q', '$scope', 'ProductsApiService', 'loadSpinnerService', 'ToasterService', controller]\n });\n\n// @ngInject\nfunction controller($q, $scope, ProductsApiService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.searchResultArticles = [];\n vm.articlesToAdd = [];\n vm.result = [];\n vm.currentPage = 1;\n\n vm.refreshArticles = refreshArticles;\n vm.addArticles = addArticles;\n\n function onInit() {\n if (!vm.selectSameTwiceAllowed) {\n vm.selectSameTwiceAllowed = false;\n }\n\n if (!vm.pageSize) {\n vm.pageSize = 20;\n }\n\n $scope.$watch(function() { return (vm.company !== undefined) ? vm.company.id : undefined; },\n function() {\n vm.articlesToAdd = [];\n refreshArticles();\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n\n // Refreshes the contents of the drop-down-list of selectable articles.\n function refreshArticles(filter) {\n var companyId = (vm.company !== undefined) ? vm.company.id : undefined;\n var request = {\n currentPage: vm.currentPage,\n filter: filter,\n pageSize: vm.pageSize,\n companyId: companyId\n };\n ProductsApiService.getProducts(request).then(function(response) {\n vm.searchResultArticles = [];\n var excludeList = [];\n if (vm.articlesToExclude !== undefined) {\n excludeList = vm.articlesToExclude.map(function(oa) {\n return { id: oa.articleId };\n });\n }\n\n for (var i = 0; i < response.data.results.length; i++) {\n var article = response.data.results[i];\n if (!_.find(excludeList, {'id': article.id})) {\n vm.searchResultArticles.push(article);\n }\n }\n }, function(error) {\n ToasterService.showError(error.errors);\n });\n }\n\n function addArticles() {\n vm.result = [];\n var promises = [];\n loadSpinnerService.start(\"mainSpinner\");\n _.forEach(vm.articlesToAdd, function(article) {\n var articleFetchPromise = ProductsApiService.getProduct(article.id);\n promises.push(articleFetchPromise);\n });\n\n $q.all(promises).then(function(responses) {\n _.forEach(responses, function(response) {\n vm.result.push(response);\n });\n vm.onArticlesRetrieved({articles: vm.result});\n vm.articlesToAdd = [];\n refreshArticles();\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n}\n","angular.module('components.caItemGroupInline', [])\n .component('caItemGroupInline', {\n templateUrl: 'main/product/components/itemGroupInline.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n itemGroup: '=',\n vats: '<',\n variantGroups: '<'\n },\n controller: itemGroupInlineController\n }); \n\n// @ngInject\nfunction itemGroupInlineController() {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n function onInit() {\n vm.variantGroup1s = _.filter(vm.variantGroups, function(group) {\n if (!vm.itemGroup.mainGroup.variant1 || !group.variant) {\n return false;\n }\n return group.variant.id === vm.itemGroup.mainGroup.variant1.id;\n });\n\n vm.variantGroup2s = _.filter(vm.variantGroups, function(group) {\n if (!vm.itemGroup.mainGroup.variant2 || !group.variant) {\n return false;\n }\n\n return group.variant.id === vm.itemGroup.mainGroup.variant2.id;\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.departments.new', {\n url: '/new',\n views: {\n \"productView@product\": {\n templateUrl: 'main/product/departments/department/department.tpl.html',\n controller: 'DepartmentController as vm'\n }\n },\n resolve: {\n department: function () { return {}; },\n mainGroups: mainGroupsResolver,\n createNew: function () { return true; }\n }\n });\n\n $stateProvider.state('product.departments.department', {\n url: '/{departmentId}',\n views: {\n \"productView@product\": {\n templateUrl: 'main/product/departments/department/department.tpl.html',\n controller: 'DepartmentController as vm'\n }\n },\n resolve: {\n department: departmentsResolver,\n mainGroups: mainGroupsResolver,\n createNew: function () { return false; }\n }\n });\n}\n\n\n// @ngInject\nfunction departmentsResolver($stateParams, DepartmentsApiService) {\n return DepartmentsApiService.getDepartment($stateParams.departmentId);\n}\n\n// @ngInject\nfunction mainGroupsResolver(DepartmentsApiService) {\n return DepartmentsApiService.getMainGroups();\n}\n\n// @ngInject\nfunction DepartmentController($state, department, mainGroups, loadSpinnerService, createNew, DepartmentsApiService, $scope, $translate, ToasterService) {\n var vm = this;\n\n //properties\n vm.department = department;\n vm.isNew = false;\n vm.isEditing = false;\n vm.mainGroups = mainGroups;\n vm.departmentCopy = {};\n\n //functions\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.save = save;\n\n //initialize\n if (createNew) {\n vm.department = { mainGroup: {} };\n vm.department.mainGroup = angular.copy(vm.mainGroups[0]);\n vm.isNew = true;\n vm.isEditing = true;\n\n }\n\n function enableEditing() {\n vm.isEditing = true;\n vm.departmentCopy = angular.copy(vm.department);\n }\n\n function cancelEditing() {\n vm.isEditing = false;\n vm.department = vm.departmentCopy;\n }\n\n function save() {\n\n DepartmentsApiService.save(vm.department).then(function (result) {\n vm.department.id = result.id;\n vm.isEditing = false;\n vm.isNew = false;\n ToasterService.showSuccess('\"' + vm.department.departmentCode + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"article.department\"));\n\n }, function (error) {\n ToasterService.showError(error.message, $translate.instant(\"article.department\"));\n }).finally(function () {\n $state.go('product.departments.department', { subCategoryId: vm.department.id });\n });\n }\n}\n\nangular\n .module('departments.department', [])\n .config(stateConfig)\n .controller('DepartmentController', DepartmentController);\n","// @ngInject\nfunction DepartmentsApiService(ResourcesService) {\n\n var endpoint = 'departments';\n\n return {\n getPage: ResourcesService.apiFactory.get(endpoint + '/page'),\n getDepartment: ResourcesService.apiFactory.get(endpoint),\n save: ResourcesService.apiFactory.save(endpoint + '/save', 'Department'),\n getMainGroups: ResourcesService.apiFactory.get(endpoint + '/maingroups')\n };\n\n}\n\nangular.module('departments.api', [])\n .factory('DepartmentsApiService', DepartmentsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.departments', {\n url: '/departments?searchTerm',\n views: {\n 'productList@product': {\n templateUrl: 'main/product/departments/departments.tpl.html',\n controller: 'DepartmentsController as vm'\n }\n },\n resolve: {\n departments: departmentsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n\n// @ngInject\nfunction departmentsResolver(DepartmentsApiService, $stateParams) {\n return DepartmentsApiService.getPage({ page: 1, pageSize: 19, searchTerm: $stateParams.searchTerm});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction DepartmentsController($rootScope, $state, departments, $scope, DepartmentsApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.itemsPerPage = 19;\n vm.selectedDepartmentId = 0;\n vm.departments = departments.results;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n vm.totalRows = departments.total;\n\n vm.searchTermChanged = searchTermChanged;\n vm.pageChanged = pageChanged;\n\n activate();\n\n function activate() {\n $rootScope.$on('Department.Changed', function() {\n loadDepartments();\n });\n }\n\n function loadDepartments() {\n loadSpinnerService.start('mainSpinner');\n DepartmentsApiService.getPage({ page: vm.currentPage, pageSize: vm.itemsPerPage, searchTerm: vm.searchTerm}).then(function (response) {\n vm.departments = response.results;\n vm.totalRows = response.total;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n function searchTermChanged() {\n vm.currentPage = 1;\n loadDepartments();\n }\n\n function pageChanged() {\n loadDepartments();\n }\n}\n\n\nangular\n .module('product.departments', ['departments.api','departments.department'])\n .config(stateConfig)\n .controller('DepartmentsController', DepartmentsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.importfileslist.importeditor', {\n url: '/editor/{importFileId}',\n views: {'wideColumnView@product': {\n templateUrl: 'main/product/importeditor/importeditor.tpl.html',\n controller: 'ArticleImportEditorController as vm'\n }},\n resolve: {\n importFile: importFileResolver,\n collections: collectionsResolver,\n itemGroups: itemGroupsResolver,\n articleTypes: articleTypesResolver\n }\n });\n}\n\n// @ngInject\nfunction importFileResolver($stateParams, FileDataImportApiService) {\n return FileDataImportApiService.getImportFile($stateParams.importFileId);\n}\n\n// @ngInject\nfunction collectionsResolver(FileDataImportApiService) {\n return FileDataImportApiService.getArticleCollections();\n}\n\n// @ngInject\nfunction articleTypesResolver(ArticleTypesApiService, $stateParams) {\n return ArticleTypesApiService.getAll($stateParams.searchTerm);\n}\n\n// @ngInject\nfunction itemGroupsResolver(FileDataImportApiService) {\n return FileDataImportApiService.getItemGroups();\n}\n\n// @ngInject\nfunction ArticleImportEditorController($scope, $state, importFile, collections, articleTypes, itemGroups, FileDataImportApiService, loadSpinnerService,\n ToasterService, $translate, AuthService) {\n var vm = this;\n var overviewGrid = {};\n var articleGroupingsGrid = {};\n var intrastatCodeLength = 12;\n\n var oldArticleGroupingRowValues = {\n alternativeArticleNumber: \"\",\n articleName: \"\",\n itemGroupString: \"\",\n purchaseCost: \"\",\n salesPrice: \"\",\n collection: \"\"\n };\n\n var errorColor = 'red';\n var warningColor = '#ffff33';\n var noErrorColor = 'green';\n\n vm.importFile = importFile;\n //default sort\n vm.importFile.articlesOrdersImportRows = _.sortBy(vm.importFile.articlesOrdersImportRows,['alternativeArticleNumber','variant1Name', 'variant2Name']);\n\n var importFileCollection = new wijmo.collections.CollectionView(vm.importFile.articlesOrdersImportRows);\n\n vm.validationErrors = [];\n\n vm.orderInfo = {\n orderNumberExternal: 0,\n plannedDeliveryDate: new Date()\n };\n\n // --- Read only data sets ---\n vm.collections = collections;\n vm.collectionCodes = [];\n vm.itemGroups = [];\n vm.itemGroupNamesAndCodes = [];\n vm.articleTypes = articleTypes;\n vm.articleTypeNames = [];\n\n // --- Overview section and general functions. ---\n vm.captureOverviewGrid = captureOverviewGrid;\n vm.saveImportFile = saveImportFile;\n vm.saveAndFinalize = saveAndFinalize;\n vm.wjAutoCompleteSetDefaultValue = wjAutoCompleteSetDefaultValue;\n vm.setWjDefaultItemGroup = setWjDefaultItemGroup;\n vm.setWjDefaultArticleType = setWjDefaultArticleType;\n\n // --- Overview grid style ---\n vm.getAlternativeArticleNumberStyle = getAlternativeArticleNumberStyle;\n vm.getItemGroupStyle = getItemGroupStyle;\n vm.getArticleTypeStyle = getArticleTypeStyle;\n vm.getColorVariantStyle = getColorVariantStyle;\n vm.getSizeVariantStyle = getSizeVariantStyle;\n vm.getBarcodeStyle = getBarcodeStyle;\n vm.getCollectionStyle = getCollectionStyle;\n vm.getPricesStyle = getPricesStyle;\n vm.getIntrastatStyle = getIntrastatStyle;\n vm.getDepartmentStyle = getDepartmentStyle;\n\n // --- Articles section variables and vm exposed functions. ---\n vm.distinctAltArticleNumbers = [];\n vm.distinctArticleNames = [];\n vm.altArticleNumberChange = {\n from: \"\",\n to: \"\"\n };\n vm.articleNameChange = {\n from: \"\",\n to: \"\"\n };\n vm.changeAllAltArticleNumbers = changeAllAltArticleNumbers;\n vm.changeAllArticleNames = changeAllArticleNames;\n vm.rowsGroupedByArticle = [];\n vm.captureArticleGroupingsGrid = captureArticleGroupingsGrid;\n vm.registerOldArticleGroupingInfo = registerOldArticleGroupingInfo;\n vm.copyArticleGroupInformationToAllRelatedRows = copyArticleGroupInformationToAllRelatedRows;\n\n // --- Colors section variables and vm exposed functions ---\n vm.distinctColors = [];\n vm.colorChange = {\n from: \"\",\n to: \"\"\n };\n vm.changeAllColors = changeAllColors;\n vm.rowsGroupedByColor = {};\n vm.collectionChanged = collectionChanged;\n vm.itemGroupChanged = itemGroupChanged;\n vm.articleTypeChanged = articleTypeChanged;\n\n // --- View switching ---\n vm.switchToOverview = switchToOverview;\n vm.switchToArticles = switchToArticles;\n vm.switchToArticleVariants = switchToArticleVariants;\n vm.switchToColors = switchToColors;\n vm.switchToSizes = switchToSizes;\n vm.switchToSubCategories = switchToSubCategories;\n vm.viewVisibility = {\n overview: true,\n articles: false,\n articleVariants: false,\n colors: false,\n sizes: false,\n subCategories: false\n };\n vm.setIsEditingTrue = setIsEditingTrue;\n vm.setIsEditingFalse = setIsEditingFalse;\n vm.isEditing = false;\n\n vm.isFileDataOkay = isBarcodeOnWrongArticle;\n\n vm.showWarningToaster = showWarningToaster;\n vm.canAccess = AuthService.canAccess;\n vm.isAnyBarcodeOnWrongArticle = isAnyBarcodeOnWrongArticle;\n\n vm.printDebug = printDebug;\n vm.tempvar = \"\";\n\n activate();\n\n function activate() {\n\n _.forEach(vm.collections, function(collection) {\n vm.collectionCodes.push(collection.collectionCode);\n });\n\n if (vm.importFile.company) {\n vm.itemGroups = _.filter(itemGroups, function(itemGroup) {\n var containsCompany = false;\n _.forEach(itemGroup.brand.companies, function(company) {\n if (company.id === vm.importFile.company.id) {\n containsCompany = true;\n }\n });\n return containsCompany;\n });\n _.forEach(vm.itemGroups, function(itemGroup) {\n vm.itemGroupNamesAndCodes.push(itemGroup.itemGroupCode + ' ' + itemGroup.itemGroupShortName);\n });\n }\n\n vm.importFile.shouldGenerateOrder = false;\n\n $scope.$watch(function() { return vm.importFile.shouldGenerateOrder; }, function() {\n var hasError = false;\n if (vm.importFile.shouldGenerateOrder) {\n hasError = validateOrderInformation();\n }\n if (hasError) {\n vm.importFile.shouldGenerateOrder = false;\n applyScope();\n }\n });\n\n vm.articleTypeNames = _.map(vm.articleTypes, function (o) { return o.articleTypeName; }); // + ' (' + o.articleSystemType + ')'; });\n }\n\n function captureOverviewGrid(sender) {\n overviewGrid = sender;\n overviewGrid.itemsSource = importFileCollection;\n }\n\n // =================================================\n // Editor view switching\n // =================================================\n function switchToOverview() {\n setVisibilityToNone();\n vm.viewVisibility.overview = true;\n refreshOverviewGrid();\n applyScope();\n }\n\n function switchToArticles() {\n constructDistinctArticleData();\n groupRowsByArticle();\n\n setVisibilityToNone();\n vm.viewVisibility.articles = true;\n applyScope();\n }\n\n function switchToArticleVariants() {\n // Prep work here.\n setVisibilityToNone();\n vm.viewVisibility.articleVariants = true;\n applyScope();\n }\n\n function switchToColors() {\n constructDistinctColorData();\n groupRowsByColor();\n\n setVisibilityToNone();\n vm.viewVisibility.colors = true;\n applyScope();\n }\n\n function switchToSizes() {\n // Prep work here.\n setVisibilityToNone();\n vm.viewVisibility.sizes = true;\n applyScope();\n }\n\n function switchToSubCategories() {\n // Prep work here.\n setVisibilityToNone();\n vm.viewVisibility.subCategories = true;\n applyScope();\n }\n\n // Set all visibility determining variables to false.\n function setVisibilityToNone() {\n vm.viewVisibility.overview = false;\n vm.viewVisibility.articles = false;\n vm.viewVisibility.articleVariants = false;\n vm.viewVisibility.colors = false;\n vm.viewVisibility.sizes = false;\n vm.viewVisibility.subCategories = false;\n }\n\n // =================================================\n // General\n // =================================================\n // Sends that updated data to the backend and retreives the result (meaning an updated data structure potentially\n // containing references to linked data structures)\n function saveImportFile() {\n\n _.forEach(vm.importFile.articlesOrdersImportRows, function(importRow) {\n //importRow.plannedDeliveryDate = vm.orderInfo.plannedDeliveryDate;\n importRow.orderNumberExternal = vm.orderInfo.orderNumberExternal;\n });\n\n vm.validationErrors = [];\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiService.updateArticlesOrdersImportFile(vm.importFile).then(function(response) {\n console.log(response);\n\n vm.importFile = response;\n overviewGrid.itemsSource = new wijmo.collections.CollectionView(vm.importFile.articlesOrdersImportRows);\n\n refreshOverviewGrid();\n constructDistinctArticleData();\n groupRowsByArticle();\n applyScope();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n // Finalizes the import file, generating new data structures in the backend. This decision is final.\n function saveAndFinalize() {\n\n _.forEach(vm.importFile.articlesOrdersImportRows, function(importRow) {\n //importRow.plannedDeliveryDate = vm.orderInfo.plannedDeliveryDate;\n importRow.orderNumberExternal = vm.orderInfo.orderNumberExternal;\n });\n\n vm.validationErrors = [];\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiService.updateAndFinalizeArticlesOrdersImportFile(vm.importFile).then(function(response) {\n console.log(response);\n\n $state.go('product.importfileslist');\n }, function(error) {\n console.log(error);\n\n vm.validationErrors.push(error.message);\n\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n // Needed to determine the value that value that the autoComplete should show on load.\n function wjAutoCompleteSetDefaultValue(sender, rowItem, propertyName) {\n sender.selectedValue = rowItem[propertyName];\n }\n\n // Needed to determine the value that the autoComplete should show when switching to the view\n function setWjDefaultItemGroup(sender, rowItem) {\n var startingItem = _.find(vm.itemGroupNamesAndCodes, function(item) {\n return item.indexOf(rowItem.itemGroupString) > -1;\n });\n sender.selectedValue = startingItem;\n }\n\n function setWjDefaultArticleType(sender, rowItem) {\n var startingItem = _.find(vm.articleTypeNames, function(item) {\n return item.indexOf(rowItem.articleTypeString) > -1;\n });\n sender.selectedValue = startingItem;\n }\n\n // ================================================================\n // Overview grid style (Color code cells depending on situation)\n // ================================================================\n // Alternative Article Number\n function getAlternativeArticleNumberStyle(cellItem) {\n var style = {};\n if (cellItem.alternativeArticleNumber === undefined || cellItem.alternativeArticleNumber === \"\" || isBarcodeOnWrongArticle(cellItem)) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else if (cellItem.article === undefined || (cellItem.article !== undefined && cellItem.alternativeArticleNumber.toLowerCase() !== cellItem.article.alternativeArticleNumber.toLowerCase())) {\n style['background-color'] = warningColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n // Intrastat\n function getIntrastatStyle(cellItem) {\n var style = {};\n\n style['color'] = noErrorColor;\n\n if (cellItem.intrastatCode && cellItem.intrastatCode.length !== intrastatCodeLength) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n }\n\n return style;\n }\n\n // Item Group\n function getItemGroupStyle(cellItem) {\n var style = {};\n\n var containsCompany = false;\n if (cellItem.itemGroup && cellItem.itemGroup.brand) {\n _.forEach(cellItem.itemGroup.brand.companies, function(company) {\n if (company.id === vm.importFile.company.id) {\n containsCompany = true;\n }\n });\n }\n\n if (cellItem.itemGroup === undefined || containsCompany) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n // Intrastat\n function getArticleTypeStyle(cellItem) {\n var style = {};\n\n style['color'] = noErrorColor;\n\n return style;\n }\n\n // Color variant\n function getColorVariantStyle(cellItem) {\n var style = {};\n if (cellItem.variant1Name === undefined || cellItem.variant1Name === \"\") {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else if (cellItem.variantDetail1 === undefined && cellItem.variant1Name !== \"\") {\n style['background-color'] = warningColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n // Size variant\n function getSizeVariantStyle(cellItem) {\n var style = {};\n if (cellItem.variantDetail2 === undefined /*cellItem.variant2Name === undefined || cellItem.variant2Name === \"\"*/) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else if (cellItem.variantDetail2 === undefined && cellItem.variant2Name !== \"\") {\n style['background-color'] = warningColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n // Barcode\n function getBarcodeStyle(cellItem) {\n var style = {};\n var itemsWithSameBarcode = _.filter(vm.importFile.articlesOrdersImportRows, function(row) {\n return row.barcode === cellItem.barcode;\n });\n\n var existsDifferentArticleWithSameBarcode = false;\n for (var i = 0; i < itemsWithSameBarcode.length; i++) {\n if (itemsWithSameBarcode[i].alternativeArticleNumber !== cellItem.alternativeArticleNumber ||\n itemsWithSameBarcode[i].variant1Name !== cellItem.variant1Name ||\n itemsWithSameBarcode[i].variant2Name !== cellItem.variant2Name) {\n existsDifferentArticleWithSameBarcode = true;\n break;\n }\n }\n\n if (cellItem.barcode === undefined || cellItem.barcode === \"\" || existsDifferentArticleWithSameBarcode) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else if (cellItem.articleVariant === undefined) {\n style['background-color'] = warningColor;\n } else {\n style['color'] = noErrorColor;\n }\n\n return style;\n }\n\n // Collection\n function getCollectionStyle(cellItem) {\n var style = {};\n if (cellItem.articleCollection === undefined) {\n style['color'] = 'white';\n style['background-color'] = errorColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n // Prices\n function getPricesStyle(cellItem) {\n var style = {};\n if (cellItem.purchaseCost * 2 > cellItem.salesPrice || cellItem.purchaseCost * 6 < cellItem.salesPrice) {\n style['background-color'] = warningColor;\n } else {\n style['color'] = noErrorColor;\n }\n return style;\n }\n\n // Department\n function getDepartmentStyle(cellItem) {\n var style = {};\n if (cellItem.departmentCode !== \"\" && (cellItem.department === undefined || cellItem.department.id === undefined)) {\n style['background-color'] = errorColor;\n style['color'] = 'white';\n } else {\n style['color'] = noErrorColor;\n }\n\n return style;\n }\n\n\n // =================================================\n // Articles section\n // =================================================\n function constructDistinctArticleData() {\n vm.distinctAltArticleNumbers = [];\n vm.distinctArticleNames = [];\n\n var uniqueObjectsWithAltArticleNumbers = _.uniq(vm.importFile.articlesOrdersImportRows, false, function(item) {\n return item.alternativeArticleNumber;\n });\n\n var uniqueObjectsWithArticleNames = _.uniq(vm.importFile.articlesOrdersImportRows, false, function(item) {\n return item.articleName;\n });\n\n _.forEach(uniqueObjectsWithAltArticleNumbers, function(item) {\n vm.distinctAltArticleNumbers.push(item.alternativeArticleNumber);\n });\n\n _.forEach(uniqueObjectsWithArticleNames, function(item) {\n vm.distinctArticleNames.push(item.articleName);\n });\n }\n\n function groupRowsByArticle() {\n vm.rowsGroupedByArticle = [];\n\n var fullArticleGrouping = _.groupBy(vm.importFile.articlesOrdersImportRows, function(importRow) {\n return getArticleGroupingKey(importRow);\n });\n\n var groupingKeys = Object.keys(fullArticleGrouping);\n\n _.forEach(groupingKeys, function(key) {\n vm.rowsGroupedByArticle.push(fullArticleGrouping[key][0]);\n });\n\n articleGroupingsGrid.itemsSource = new wijmo.collections.CollectionView(vm.rowsGroupedByArticle);\n }\n\n function changeAllAltArticleNumbers() {\n var rowsToChange = _.filter(vm.importFile.articlesOrdersImportRows, {alternativeArticleNumber: vm.altArticleNumberChange.from});\n\n for (var i = 0; i < rowsToChange.length; i++) {\n rowsToChange[i].alternativeArticleNumber = vm.altArticleNumberChange.to;\n }\n vm.altArticleNumberChange.from = vm.altArticleNumberChange.to;\n\n constructDistinctArticleData();\n groupRowsByArticle();\n }\n\n function changeAllArticleNames() {\n var rowsToChange = _.filter(vm.importFile.articlesOrdersImportRows, { articleName: vm.articleNameChange.from });\n\n for (var i = 0; i < rowsToChange.length; i++) {\n rowsToChange[i].articleName = vm.articleNameChange.to;\n }\n vm.articleNameChange.from = vm.articleNameChange.to;\n\n constructDistinctArticleData();\n groupRowsByArticle();\n }\n\n function captureArticleGroupingsGrid(sender) {\n articleGroupingsGrid = sender;\n articleGroupingsGrid.itemsSource = new wijmo.collections.CollectionView(vm.rowsGroupedByArticle);\n }\n\n function registerOldArticleGroupingInfo() {\n var row = articleGroupingsGrid.itemsSource.currentEditItem;\n\n oldArticleGroupingRowValues.alternativeArticleNumber = row.alternativeArticleNumber;\n oldArticleGroupingRowValues.articleName = row.articleName;\n oldArticleGroupingRowValues.articleTypeString = row.articleTypeString;\n oldArticleGroupingRowValues.itemGroupString = row.itemGroupString;\n oldArticleGroupingRowValues.purchaseCost = row.purchaseCost;\n oldArticleGroupingRowValues.salesPrice = row.salesPrice;\n oldArticleGroupingRowValues.collection = row.collection;\n }\n\n function copyArticleGroupInformationToAllRelatedRows(rowItem) {\n\n var row;\n if (typeof rowItem === 'undefined') {\n row = articleGroupingsGrid.itemsSource.currentEditItem;\n } else {\n row = rowItem;\n }\n\n var key = getArticleGroupingKey(oldArticleGroupingRowValues);\n\n var fullArticleGrouping = _.groupBy(vm.importFile.articlesOrdersImportRows, function(importRow) {\n return getArticleGroupingKey(importRow);\n });\n\n var rowsToUpdate = fullArticleGrouping[key];\n\n _.forEach(rowsToUpdate, function(rowToUpdate) {\n rowToUpdate.alternativeArticleNumber = row.alternativeArticleNumber;\n rowToUpdate.articleName = row.articleName;\n rowToUpdate.articleTypeString = row.articleTypeString;\n rowToUpdate.itemGroupString = row.itemGroupString;\n rowToUpdate.purchaseCost = row.purchaseCost;\n rowToUpdate.salesPrice = row.salesPrice;\n rowToUpdate.collection = row.collection;\n });\n }\n\n function getArticleGroupingKey(importRow) {\n return importRow.alternativeArticleNumber + \" \" +\n importRow.articleName + \" \" +\n importRow.itemGroupString + \" \" +\n importRow.purchaseCost + \" \" +\n importRow.salesPrice + \" \" +\n importRow.collection;\n }\n\n // =================================================\n // Colors section\n // =================================================\n function constructDistinctColorData() {\n vm.distinctColors = [];\n\n var uniqueObjectsByColor = _.uniq(vm.importFile.articlesOrdersImportRows, false, function(item) {\n return item.variant1Name;\n });\n\n _.forEach(uniqueObjectsByColor, function(item) {\n vm.distinctColors.push(item.variant1Name);\n });\n }\n\n function groupRowsByColor() {\n vm.rowsGroupedByColor = {};\n\n vm.rowsGroupedByColor = _.groupBy(vm.importFile.articlesOrdersImportRows, function(importRow) {\n return importRow.variant1Name;\n });\n }\n\n function changeAllColors() {\n var rowsToChange = _.filter(vm.importFile.articlesOrdersImportRows, { variant1Name: vm.colorChange.from });\n\n for (var i = 0; i < rowsToChange.length; i++) {\n rowsToChange[i].variant1Name = vm.colorChange.to;\n }\n vm.colorChange.from = vm.colorChange.to;\n\n constructDistinctColorData();\n }\n\n function collectionChanged(s, rowItem) {\n if (!s.selectedItem || s.isDroppedDown) {\n return;\n }\n\n oldArticleGroupingRowValues.alternativeArticleNumber = rowItem.alternativeArticleNumber;\n oldArticleGroupingRowValues.articleName = rowItem.articleName;\n oldArticleGroupingRowValues.articleTypeString = rowItem.articleTypeString;\n oldArticleGroupingRowValues.itemGroupString = rowItem.itemGroupString;\n oldArticleGroupingRowValues.purchaseCost = rowItem.purchaseCost;\n oldArticleGroupingRowValues.salesPrice = rowItem.salesPrice;\n oldArticleGroupingRowValues.collection = rowItem.collection;\n\n var selectedItem = s.selectedItem;\n\n rowItem.collection = selectedItem;\n\n copyArticleGroupInformationToAllRelatedRows(rowItem);\n }\n\n function itemGroupChanged(s, rowItem) {\n if (!s.selectedItem || s.isDroppedDown) {\n return;\n }\n\n oldArticleGroupingRowValues.alternativeArticleNumber = rowItem.alternativeArticleNumber;\n oldArticleGroupingRowValues.articleName = rowItem.articleName;\n oldArticleGroupingRowValues.articleTypeString = rowItem.articleTypeString;\n oldArticleGroupingRowValues.itemGroupString = rowItem.itemGroupString;\n oldArticleGroupingRowValues.purchaseCost = rowItem.purchaseCost;\n oldArticleGroupingRowValues.salesPrice = rowItem.salesPrice;\n oldArticleGroupingRowValues.collection = rowItem.collection;\n\n var selectedItem = s.selectedItem;\n\n rowItem.itemGroupString = selectedItem.split(' ')[0];\n\n copyArticleGroupInformationToAllRelatedRows(rowItem);\n }\n\n function articleTypeChanged(s, rowItem) {\n if (!s.selectedItem || s.isDroppedDown) {\n return;\n }\n\n oldArticleGroupingRowValues.articleTypeString = rowItem.articleTypeString;\n\n var selectedItem = s.selectedItem;\n\n rowItem.articleTypeString = selectedItem.split(' ')[0];\n\n copyArticleGroupInformationToAllRelatedRows(rowItem);\n }\n\n function isAnyBarcodeOnWrongArticle() {\n var returnValue = false;\n _.forEach(vm.importFile.articlesOrdersImportRows, function(row) {\n if (row === undefined || row === null) {\n return;\n }\n var result = isBarcodeOnWrongArticle(row);\n if (result === true) {\n returnValue = true;\n return false; // Break _.forEach()\n }\n });\n return returnValue;\n }\n\n function isBarcodeOnWrongArticle(row) {\n // if ((row.article === undefined || (row.article !== undefined && row.alternativeArticleNumber !== row.article.alternativeArticleNumber)) &&\n // row.articleVariant !== undefined && (row.article !== undefined && row.articleVariant.article.id === row.article.id)) {\n // return true;\n // }\n\n if (row.articleVariant === undefined) {\n return false;\n }\n\n var articleNumberIsntTheSame = (row.article !== undefined && row.alternativeArticleNumber !== row.article.alternativeArticleNumber);\n var articleDidntExistButArticleVariantDid = (row.articleVariant.article !== undefined && row.article === undefined);\n var articleIdIsntTheSame = (row.article !== undefined && row.articleVariant.article !== undefined && row.articleVariant.article.id !== row.article.id);\n\n if (articleNumberIsntTheSame ||\n articleDidntExistButArticleVariantDid ||\n articleIdIsntTheSame) {\n return true;\n }\n\n return false;\n }\n\n function setIsEditingTrue() {\n vm.isEditing = true;\n applyScope();\n }\n\n function setIsEditingFalse() {\n vm.isEditing = false;\n applyScope();\n }\n\n function refreshOverviewGrid() {\n overviewGrid.invalidate();\n }\n\n function applyScope() {\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n }\n\n function validateOrderInformation() {\n var hasError = false;\n\n if (vm.importFile.company === undefined) {\n showWarningToaster($translate.instant('import.companyIsMissing'));\n hasError = true;\n }\n if (vm.importFile.location === undefined) {\n showWarningToaster($translate.instant('import.locationIsMissing'));\n hasError = true;\n }\n\n var someRowsAreWithoutQuantity = _.some(vm.importFile.articlesOrdersImportRows, function(importRow) {\n return importRow.quantity === undefined || importRow.quantity === \"\";\n });\n\n if (someRowsAreWithoutQuantity) {\n showWarningToaster($translate.instant('import.quantitiesAreMissing'));\n hasError = true;\n }\n\n var someQuantitiesAreMalformed = _.some(vm.importFile.articlesOrdersImportRows, function(importRow) {\n return importRow.quantity.indexOf('.') !== -1;\n });\n\n if (someQuantitiesAreMalformed) {\n showWarningToaster($translate.instant('import.quantitiesAreMalformed'));\n hasError = true;\n }\n\n return hasError;\n }\n\n function showWarningToaster(message) {\n var title = $translate.instant('common.warning');\n ToasterService.showWarning(message, title);\n }\n\n function printDebug() {\n console.log(\"vm.importFile\");\n console.log(vm.importFile);\n\n console.log(\"vm.rowsGroupedByArticle\");\n console.log(vm.rowsGroupedByArticle);\n\n console.log(\"vm.rowsGroupedByColor\");\n console.log(vm.rowsGroupedByColor);\n\n console.log(\"Refreshing grid...\");\n refreshOverviewGrid();\n\n console.log(\"vm.collections\");\n console.log(vm.collections);\n\n console.log(\"vm.itemGroups\");\n console.log(vm.itemGroups);\n\n applyScope();\n }\n}\n\nangular\n .module('importfileslist.importeditor', [])\n .config(stateConfig)\n .controller('ArticleImportEditorController', ArticleImportEditorController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.importfileslist',{\n url: '/importfileslist',\n views: {'wideColumnView@product': {\n templateUrl: 'main/product/importfileslist/importfileslist.tpl.html',\n controller: 'ImportFilesListController as vm'\n }}\n\n });\n}\n\n// @ngInject\nfunction ImportFilesListController($state, loadSpinnerService, FileDataImportApiService, AuthService) {\n console.log(\"ImportFilesListController start\");\n var vm = this;\n\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.itemsPerPage = 15;\n vm.loadImportFiles = loadImportFiles;\n\n vm.importFiles = [];\n\n vm.editImportFile = editImportFile;\n vm.deleteImportFile = deleteImportFile;\n vm.canAccess = AuthService.canAccess;\n\n activate();\n\n function activate() {\n loadImportFiles();\n }\n\n function loadImportFiles() {\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiService.getImportFiles(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function(response) {\n vm.totalItems = response.totalItems;\n vm.importFiles = response.data;\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function editImportFile(importFileId) {\n $state.go('product.importfileslist.importeditor', { importFileId: importFileId });\n }\n\n function deleteImportFile(importId) {\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiService.deleteArticlesOrdersImportFile(importId).then(function() {\n var deletedItem = _.find(vm.importFiles, function(importFile) {\n return importFile.id === importId;\n });\n\n vm.importFiles = _.without(vm.importFiles, deletedItem);\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n}\n\nangular\n .module('product.importfileslist', ['importfileslist.articleimport', 'importfileslist.importeditor'])\n .config(stateConfig)\n .controller('ImportFilesListController', ImportFilesListController);\n","// @ngInject\nfunction IntrastatApiService(ResourcesService) {\n\n var endpoint = 'intrastats';\n\n return {\n getIntrastats: ResourcesService.apiFactory.get(endpoint),\n getIntrastat: ResourcesService.apiFactory.get(endpoint),\n saveIntrastat: ResourcesService.apiFactory.save(endpoint,'Intrastat'),\n deleteIntrastat: ResourcesService.apiFactory.delete(endpoint,'Intrastat')\n };\n\n\n}\n\nangular.module('intrastat.api', [])\n .factory('IntrastatApiService', IntrastatApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.intrastats.new', {\n url:'/new',\n views: {\n 'productView@product': {\n templateUrl: 'main/product/intrastats/intrastat/intrastat.tpl.html',\n controller: 'IntrastatController as vm'\n }},\n resolve: {\n intrastat: function() { return {}; },\n isNewIntrastat: function() {\n return true;\n }\n }\n });\n\n $stateProvider.state('product.intrastats.intrastat', {\n url:'/{intrastatId}',\n views: {\n 'productView@product': {\n templateUrl: 'main/product/intrastats/intrastat/intrastat.tpl.html',\n controller: 'IntrastatController as vm'\n }},\n resolve: {\n intrastat: intrastatResolver,\n isNewIntrastat: function() {\n return false;\n }\n }\n });\n\n}\n\n// @ngInject\nfunction intrastatResolver($stateParams, IntrastatApiService) {\n return IntrastatApiService.getIntrastat($stateParams.intrastatId);\n}\n\n// @ngInject\nfunction IntrastatController($state, intrastat, loadSpinnerService, IntrastatApiService, ToasterService, confirmationDialogService, $translate, isNewIntrastat) {\n var vm = this;\n\n var intrastatCopy = {};\n\n vm.intrastat = intrastat;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveIntrastat = saveIntrastat;\n vm.deleteIntrastat = deleteIntrastat;\n\n vm.isNewIntrastat = isNewIntrastat;\n vm.isEditing = vm.isNewIntrastat;\n vm.isAllInformationValid =isAllInformationValid;\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n\n function activate() {\n prepareData();\n if (vm.isNewIntrastat) {\n vm.intrastat = {};\n }\n }\n\n function isAllInformationValid() {\n return true;\n }\n\n function enableEditing() {\n intrastatCopy = angular.copy(vm.intrastat);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.intrastat = intrastatCopy;\n vm.isEditing = false;\n }\n\n function saveIntrastat() {\n loadSpinnerService.start('mainSpinner');\n IntrastatApiService.saveIntrastat(vm.intrastat).then(function(response) {\n vm.intrastat = response;\n prepareData();\n vm.isNewIntrastat = false;\n vm.isEditing = false;\n $state.go('product.intrastats.intrastat', {intrastatId: vm.intrastat.id});\n }, function(error) {\n console.log(error);\n if (error.status !== 403) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function deleteIntrastat() {\n confirmationDialogService\n .showDialog($translate.instant('intrastat.confirmDelete'))\n .then(function(confirmation) {\n if (confirmation) {\n loadSpinnerService.start('mainSpinner');\n IntrastatApiService.deleteIntrastat(vm.intrastat.id).then(function(response) {\n vm.intrastat = response;\n prepareData();\n vm.isNewIntrastat = false;\n vm.isEditing = false;\n $state.go('product.intrastats');\n }, function(error) {\n console.log(error);\n if (error.status !== 403) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function toggleDisplayForm(intrastat) {\n intrastat.showEditForm = !intrastat.showEditForm;\n }\n\n function prepareData() {\n if (vm.intrastat === undefined) {\n return;\n }\n\n vm.intrastatCopy = angular.copy(vm.intrastat);\n }\n\n\n}\n\nangular\n .module('intrastats.intrastat', [])\n .config(stateConfig)\n .controller('IntrastatController', IntrastatController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.intrastats', {\n url: '/intrastats?searchTerm',\n views: {\n 'productList@product': {\n templateUrl: 'main/product/intrastats/intrastats.tpl.html',\n controller: 'IntrastatsController as vm'\n }},\n resolve: {\n intrastats: intrastatsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction intrastatsResolver(IntrastatApiService, $stateParams) {\n return IntrastatApiService.getIntrastats({ page: 0, searchTerm: $stateParams.searchTerm, itemsPerPage: 20});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n// @ngInject\nfunction IntrastatsController($rootScope, $state, $scope, intrastats, IntrastatApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n\n vm.intrastats = intrastats;\n vm.selectedIntrastatId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.intrastatId; }, function(newValue, oldValue) {\n vm.selectedIntrastatId = parseInt($state.params.intrastatId,10);\n });\n $rootScope.$on('Intrastat.Inserted', function(event, response) {\n });\n $rootScope.$on('Intrastat.Updated', function(event, response) {\n });\n $rootScope.$on('Intrastat.Deleted', function(event, response) {\n });\n $rootScope.$on('Intrastat.Changed', function(event, response) {\n loadIntrastats();\n });\n }\n\n function loadIntrastats() {\n loadSpinnerService.start('mainSpinner');\n var request = { page: (vm.currentPage - 1), searchTerm:vm.searchTerm, pageSize:vm.itemsPerPage};\n IntrastatApiService.getIntrastats(request).then(function(response) {\n vm.intrastats = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadIntrastats();\n }\n\n}\n\nangular\n .module('product.intrastats', ['intrastat.api', 'intrastats.intrastat'])\n .config(stateConfig)\n .controller('IntrastatsController', IntrastatsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('product.maingroups.new', {\n url: '/new',\n views: {\n \"wideColumnView@product\": {\n templateUrl: 'main/product/maingroups/maingroup/maingroup.tpl.html',\n controller: 'MainGroupController as vm'\n }\n },\n resolve: {\n mainGroup: function () {\n return {\n attributeVisibility: {\n intrastat: 'visible',\n meursing: 'visible',\n productHeight: 'visible',\n productLength: 'visible',\n productWeight: 'visible',\n productWidth: 'visible',\n storageLocation: 'visible'\n },\n brands: []\n };\n },\n brands: brandsResolver,\n isNewMainGroup: function () { return true; },\n departments: departmentsResolver,\n tenantConfig: tenantConfigResolver,\n variants: variantsResolver,\n variantGroups: variantGroupsResolver,\n vats: vatsResolver,\n intrastats: intrastatResolver,\n subCategories: subCategoriesResolver,\n salesChannels: salesChannelResolver,\n accounts: accountsResolver,\n businessAreas: businessAreasReasolver\n }\n });\n\n $stateProvider.state('product.maingroups.maingroup', {\n url: '/{mainGroupId}',\n views: {\n \"wideColumnView@product\": {\n templateUrl: 'main/product/maingroups/maingroup/maingroup.tpl.html',\n controller: 'MainGroupController as vm'\n }\n },\n resolve: {\n mainGroup: mainGroupResolver,\n brands: brandsResolver,\n isNewMainGroup: function () { return false; },\n departments: departmentsResolver,\n tenantConfig: tenantConfigResolver,\n variants: variantsResolver,\n variantGroups: variantGroupsResolver,\n vats: vatsResolver,\n intrastats: intrastatResolver,\n subCategories: subCategoriesResolver,\n salesChannels: salesChannelResolver,\n accounts: accountsResolver,\n businessAreas: businessAreasReasolver\n }\n });\n}\n\n// @ngInject\nfunction businessAreasReasolver(MaingroupsApiService) {\n return MaingroupsApiService.getBusinessAreas();\n}\n\n// @ngInject\nfunction intrastatResolver(MaingroupsApiService) {\n return MaingroupsApiService.getIntrastats();\n}\n// @ngInject\nfunction variantGroupsResolver(MaingroupsApiService) {\n return MaingroupsApiService.getVariantGroups();\n}\n\n// @ngInject\nfunction vatsResolver(VatsApiService) {\n return VatsApiService.getVats();\n}\n\n// @ngInject\nfunction variantsResolver(MaingroupsApiService) {\n return MaingroupsApiService.getVariants();\n}\n\n// @ngInject\nfunction mainGroupResolver($stateParams, MaingroupsApiService) {\n return MaingroupsApiService.getMainGroup($stateParams.mainGroupId);\n}\n\n// @ngInject\nfunction brandsResolver(MaingroupsApiService) {\n return MaingroupsApiService.getBrands();\n}\n\n// @ngInject\nfunction departmentsResolver(MaingroupsApiService) {\n return MaingroupsApiService.getDepartments();\n}\n\n// @ngInject\nfunction tenantConfigResolver(MaingroupsApiService) {\n return MaingroupsApiService.getTenantConfig();\n}\n\n//@ngInject\nfunction subCategoriesResolver(MaingroupsApiService) {\n return MaingroupsApiService.getSubCategories();\n}\n\n//@ngInject\nfunction salesChannelResolver(MaingroupsApiService) {\n return MaingroupsApiService.getSalesChannels();\n}\n\n// @ngInject\nfunction accountsResolver(MaingroupsApiService) {\n return MaingroupsApiService.getAccounts();\n}\n\n// @ngInject\nfunction MainGroupController($state, mainGroup, brands, loadSpinnerService, MaingroupsApiService, isNewMainGroup, departments, tenantConfig, variants, vats, variantGroups, intrastats, subCategories, salesChannels, accounts, businessAreas, $translate) {\n var vm = this;\n\n var mainGroupCopy = {};\n\n vm.mainGroup = mainGroup;\n vm.articleCollectionTypes = [\n { id: 0, description: $translate.instant('common.visible'), value:'visible' },\n { id: 1, description: $translate.instant('common.hidden'), value:'hidden' }\n ];\n vm.attributeVisibility = {\n intrastat: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.intrastat; }),\n meursing: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.meursing; }),\n productHeight: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.productHeight; }),\n productLength: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.productLength; }),\n productWeight: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.productWeight; }),\n productWidth: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.productWidth; }),\n storageLocation: _.find(vm.articleCollectionTypes, function(t) { return t.value === vm.mainGroup.attributeVisibility.storageLocation; })\n };\n vm.brands = [];\n vm.selectedBrands = [];\n vm.departments = departments;\n vm.variants = variants;\n vm.variantGroups = variantGroups;\n vm.vats = vats;\n \n vm.intrastats = intrastats;\n vm.subCategories = subCategories;\n vm.salesChannels = salesChannels;\n vm.accounts = accounts;\n vm.businessAreas = businessAreas;\n\n vm.addBrands = addBrands;\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveMainGroup = saveMainGroup;\n\n vm.isNewMainGroup = isNewMainGroup;\n vm.isEditing = vm.isNewMainGroup;\n\n vm.tenantConfig = tenantConfig;\n vm.isVatValid = false;\n vm.isMainGroupVatValid = isMainGroupVatValid;\n vm.isMainGroupCodeValid = isMainGroupCodeValid;\n vm.isMainGroupDescriptionValid = isMainGroupDescriptionValid;\n vm.isAllInformationValid = isAllInformationValid;\n vm.filterVariant1 = filterVariant1;\n vm.preferredVariantGroups2 = [];\n vm.toggleDisplayForm = toggleDisplayForm;\n\n activate();\n \n\n function activate() {\n prepareData();\n if (vm.isNewMainGroup) {\n vm.mainGroup = {};\n vm.mainGroup['isVariant'] = true;\n vm.mainGroup['department'] = vm.departments[0];\n\n if (!vm.mainGroup.variant1) {\n vm.mainGroup.variant1 = _.find(vm.variants, { 'id': vm.tenantConfig.variant1 });\n }\n if (!vm.mainGroup.variant2) {\n vm.mainGroup.variant2 = _.find(vm.variants, { 'id': vm.tenantConfig.variant2 });\n }\n\n }\n vm.preferredVariantGroups2 = _.filter(vm.variantGroups, { variant: { id: vm.mainGroup.variant2.id}});\n }\n\n function addBrands() {\n var mainGroups = [vm.mainGroup];\n var brands = vm.selectedBrands;\n\n loadSpinnerService.start('mainSpinner');\n MaingroupsApiService.createItemGroups({ mainGroups: mainGroups, brands: brands }).then(function () {\n MaingroupsApiService.getMainGroup(vm.mainGroup.id).then(function (response) {\n vm.mainGroup = response;\n prepareData();\n vm.selectedBrands = [];\n }, function (error) {\n console.log(error);\n });\n }, function (error) {\n console.log(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function filterVariant1() {\n return function (item) {\n return item.id !== vm.mainGroup.variant2.id;\n };\n }\n\n function toggleDisplayForm(itemGroup) {\n if (!itemGroup.showEditForm) { itemGroup.showEditForm = false; }\n itemGroup.showEditForm = !itemGroup.showEditForm;\n }\n\n function enableEditing() {\n mainGroupCopy = angular.copy(vm.mainGroup);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.mainGroup = mainGroupCopy;\n vm.isEditing = false;\n vm.selectedBrands = [];\n }\n\n function saveMainGroup() {\n if (vm.isNewMainGroup) {\n saveNewMainGroup();\n } else {\n updateMainGroup();\n }\n }\n\n function saveNewMainGroup() {\n loadSpinnerService.start('mainSpinner');\n\n if (!vm.mainGroup.attributeVisibility) { vm.mainGroup.attributeVisibility = {}; }\n vm.mainGroup.attributeVisibility.intrastat = vm.attributeVisibility.intrastat.value;\n vm.mainGroup.attributeVisibility.meursing = vm.attributeVisibility.meursing.value;\n vm.mainGroup.attributeVisibility.productHeight = vm.attributeVisibility.productHeight.value;\n vm.mainGroup.attributeVisibility.productLength = vm.attributeVisibility.productLength.value;\n vm.mainGroup.attributeVisibility.productWeight = vm.attributeVisibility.productWeight.value;\n vm.mainGroup.attributeVisibility.productWidth = vm.attributeVisibility.productWidth.value;\n vm.mainGroup.attributeVisibility.storageLocation = vm.attributeVisibility.storageLocation.value;\n\n MaingroupsApiService.createMainGroup({mainGroup: vm.mainGroup, brands: vm.selectedBrands}).then(function (response) {\n vm.mainGroup = response;\n prepareData();\n vm.selectedBrands = [];\n vm.isNewMainGroup = false;\n vm.isEditing = false;\n $state.go('product.maingroups.maingroup', { mainGroupId: response.id });\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateMainGroup() {\n loadSpinnerService.start('mainSpinner');\n\n vm.mainGroup.attributeVisibility.intrastat = vm.attributeVisibility.intrastat.value;\n vm.mainGroup.attributeVisibility.meursing = vm.attributeVisibility.meursing.value;\n vm.mainGroup.attributeVisibility.productHeight = vm.attributeVisibility.productHeight.value;\n vm.mainGroup.attributeVisibility.productLength = vm.attributeVisibility.productLength.value;\n vm.mainGroup.attributeVisibility.productWeight = vm.attributeVisibility.productWeight.value;\n vm.mainGroup.attributeVisibility.productWidth = vm.attributeVisibility.productWidth.value;\n vm.mainGroup.attributeVisibility.storageLocation = vm.attributeVisibility.storageLocation.value;\n\n MaingroupsApiService.updateMainGroup({mainGroup: vm.mainGroup, brands: vm.selectedBrands}).then(function (response) {\n vm.mainGroup = response;\n prepareData();\n vm.selectedBrands = [];\n vm.isEditing = false;\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function prepareData() {\n if (vm.mainGroup === undefined) {\n return;\n }\n\n // Filter out brands that are already added.\n var tempBrands = [];\n _.forEach(brands, function (brand) {\n if (!_.find(vm.mainGroup.itemGroups, function (itemGroup) {\n return itemGroup.brand.id === brand.id;\n })) {\n tempBrands.push(brand);\n }\n });\n\n vm.brands = _.sortBy(tempBrands, function (brand) {\n return brand.brandCode;\n });\n\n vm.mainGroup.brands = _.sortBy(vm.mainGroup.brands, function (brand) {\n return brand.brandCode;\n });\n }\n\n function isAllInformationValid() {\n return (\n !vm.isNewMainGroup && \n isMainGroupDescriptionValid()&& \n isMainGroupVatValid()\n ) || (\n isMainGroupCodeValid() \n );\n }\n\n function isMainGroupVatValid() {\n if (vm.mainGroup.vat && vm.mainGroup.vat.id !== -1 && vm.mainGroup.vat.id !== undefined) { \n return true;\n }\n return false;\n }\n\n function isMainGroupCodeValid() {\n var isMainGroupCodeAlreadyAssigned = _.find(vm.tenantConfig.assignedMainGroupCodes, function (code) {\n return vm.mainGroup.mainGroupCode === code;\n });\n\n if (!isMainGroupCodeAlreadyAssigned && isNumeric(vm.mainGroup.mainGroupCode) && vm.mainGroup.mainGroupCode.length === vm.tenantConfig.articleMainGroupCodeLength) {\n return true;\n } else {\n return false;\n }\n }\n\n function isMainGroupDescriptionValid() {\n return vm.mainGroup.mainGroupDescription && vm.mainGroup.mainGroupDescription.length > 0;\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n}\n\nangular\n .module('maingroups.maingroup', [])\n .config(stateConfig)\n .controller('MainGroupController', MainGroupController);\n","// @ngInject\nfunction MaingroupsApiService(ResourcesService) {\n\n var endpoint = 'maingroups';\n\n return {\n getMainGroups: ResourcesService.apiFactory.get(endpoint),\n getMainGroup: ResourcesService.apiFactory.get(endpoint),\n getSubCategories: ResourcesService.apiFactory.get(endpoint + '/subcategories'),\n getIntrastats: ResourcesService.apiFactory.get(endpoint + '/intrastats'),\n getSalesChannels: ResourcesService.apiFactory.get(endpoint + '/saleschannels'),\n getDepartments: ResourcesService.apiFactory.get(endpoint + '/departments'),\n getAccounts: ResourcesService.apiFactory.get(endpoint + '/accounts'),\n getBrands: ResourcesService.apiFactory.get(endpoint + '/brands'),\n getVariantGroups: ResourcesService.apiFactory.get(endpoint + '/variantgroups'),\n getVariants: ResourcesService.apiFactory.get(endpoint + '/variants'),\n getBusinessAreas: ResourcesService.apiFactory.get(endpoint + '/businessareas'),\n getTenantConfig: ResourcesService.apiFactory.get(endpoint + '/tenantconfig'),\n createItemGroups: ResourcesService.apiFactory.update(endpoint + '/createitemgroups','MainGroup'),\n createMainGroup: ResourcesService.apiFactory.create(endpoint,'MainGroup'),\n updateMainGroup: ResourcesService.apiFactory.update(endpoint,'MainGroup')\n };\n\n}\n\n\nangular.module('maingroups.api', [])\n .factory('MaingroupsApiService', MaingroupsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.maingroups', {\n url: '/maingroups?searchTerm',\n views: {'productList@product': {\n templateUrl: 'main/product/maingroups/maingroups.tpl.html',\n controller: 'MainGroupsController as vm'\n }},\n resolve: {\n mainGroups: mainGroupsResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction mainGroupsResolver(MaingroupsApiService, $stateParams) {\n return MaingroupsApiService.getMainGroups({page: 0, searchTerm: $stateParams.searchTerm, itemsPerPage: null});\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction MainGroupsController($rootScope, $state, $scope, mainGroups, MaingroupsApiService,loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.mainGroups = mainGroups;\n vm.selectedMainGroupId = 0;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n vm.sortingKey = '';\n vm.sortingDesc = false;\n\n vm.searchTermChange = searchTermChange;\n vm.sortMainGroups = sortMainGroups\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.mainGroupId; }, function(newValue, oldValue) {\n vm.selectedMainGroupId = parseInt($state.params.mainGroupId,10);\n });\n\n $rootScope.$on('MainGroup.Changed', function(event, response) {\n loadMainGroups();\n });\n }\n\n function loadMainGroups() {\n loadSpinnerService.start('mainSpinner');\n console.log(\"vm.sortingDesc\", vm.sortingDesc)\n MaingroupsApiService.getMainGroups({page: vm.currentPage - 1, searchTerm: vm.searchTerm, sortingKey: vm.sortingKey, sortingDesc: vm.sortingDesc, itemsPerPage: vm.itemsPerPage}).then(function(response) {\n vm.mainGroups = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function sortMainGroups(sortingKey){\n vm.sortingKey = sortingKey;\n vm.sortingDesc = !vm.sortingDesc;\n loadMainGroups();\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadMainGroups();\n }\n\n}\n\nangular\n .module('product.maingroups', ['maingroups.api','maingroups.maingroup'])\n .config(stateConfig)\n .controller('MainGroupsController', MainGroupsController);\n","angular.module('components.caArticleSelection', [])\n .component('caArticleSelection', {\n templateUrl: 'main/product/pricelisteditor/components/articleselection.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n onSearchContextChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller(loadSpinnerService, ToasterService, ProductsApiService, $translate) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n var defaultSalesChannel = { id: null, salesChannelDescription: $translate.instant('common.all') };\n vm.salesChannels = [defaultSalesChannel];\n var defaultArticleCollection = { id: null, collectionDescription: $translate.instant('common.all') };\n vm.articleCollections = [defaultArticleCollection];\n vm.searchTerm = '';\n vm.shouldGetOnlyNewArticles = false;\n vm.shouldGetOnlyCurrentArticles = false;\n vm.shouldGetOnlyArticlesWithSetPrices = false;\n vm.shouldGetOnlyArticlesWithVolumeDiscounts = false;\n vm.minPrice = 0;\n vm.maxPrice = 0;\n vm.usePriceRange = false;\n\n //Methods\n vm.selectedSalesChannel = defaultSalesChannel;\n vm.search = search;\n\n function onInit() {\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.getSalesChannels().then(function(response) {\n vm.salesChannels = response;\n vm.salesChannels.unshift(defaultSalesChannel);\n vm.selectedSalesChannel = vm.salesChannels[0];\n }, function(error) {\n ToasterService.showError(error.message);\n });\n ProductsApiService.getArticleCollections().then(function(response) {\n vm.articleCollections = response;\n vm.articleCollections.unshift(defaultArticleCollection);\n vm.selectedArticleCollection = vm.articleCollections[0];\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n function search() {\n loadSpinnerService.start('mainSpinner');\n\n var minPrice = 0;\n var maxPrice = 0;\n if (vm.usePriceRange) {\n minPrice = vm.minPrice;\n maxPrice = vm.maxPrice;\n }\n\n var salesChannelId = null;\n if (vm.selectedSalesChannel) { salesChannelId = vm.selectedSalesChannel.id; }\n\n var articleCollectionId = null;\n if (vm.selectedArticleCollection) { articleCollectionId = vm.selectedArticleCollection.id; }\n\n var request = {\n articleCollectionId: articleCollectionId,\n maxPrice: maxPrice,\n minPrice: minPrice,\n salesChannelId: salesChannelId,\n searchTerm: vm.searchTerm,\n shouldOnlyGetArticlesWithManualPrices: vm.shouldGetOnlyArticlesWithSetPrices,\n shouldOnlyGetArticlesWithVolumeDiscounts: vm.shouldGetOnlyArticlesWithVolumeDiscounts,\n shouldGetOnlyCurrentArticles: vm.shouldGetOnlyCurrentArticles,\n shouldGetOnlyNewArticles: vm.shouldGetOnlyNewArticles\n };\n\n ProductsApiService.getProductIds(request).then(function(response) {\n var searchContext = {\n articleCollectionId: articleCollectionId,\n articleIds: response.data,\n saleschannelId: salesChannelId\n };\n vm.onSearchContextChanged({ searchContext: searchContext });\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n}\n","angular.module('components.caPricelistGrid', [])\n .component('caPricelistGrid', {\n templateUrl: 'main/product/pricelisteditor/components/pricelistsgrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n articleCollectionId: '<',\n articleIds: '<',\n saleschannelId: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $q, PricelistsApiService, ToasterService, loadSpinnerService, PricelistsHelperService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.editorArticles = [];\n vm.priceListHeads = [];\n vm.useVariantDetail1Level = true;\n vm.useVariantDetail2Level = false;\n vm.volumeDiscounts = [];\n vm.showVolumeDiscountRules = false;\n vm.currentPage = 1;\n vm.itemsPerPage = 20;\n vm.itemsPerPageAlternatives = [\n 20, 50, 100, 150\n ];\n\n vm.priceListPriceDisplaySelections = [\n { type: 'salesPrice', order: 1, label: 'article.salesprice' },\n { type: 'previousPrice', order: 2, label: 'article.previousprice'}\n ];\n vm.priceListPriceDisplaySelection = vm.priceListPriceDisplaySelections[0];\n\n //Methods\n vm.priceListSort = priceListSort;\n vm.save = save;\n vm.handlePriceChange = handlePriceChange;\n\n function onInit() {\n $scope.$watch(function() { return vm.articleIds; }, function() {\n if (vm.articleIds && vm.articleIds.length > 0) {\n loadArticles();\n } else {\n clearArticles();\n }\n });\n\n $scope.$watch(function() { return vm.useVariantDetail1Level; }, function(newValue, oldValue) {\n if (newValue !== undefined && newValue === false) {\n vm.showSku = false;\n vm.showBarcode = false;\n }\n });\n $scope.$watch(function() { return vm.useVariantDetail2Level; }, function(newValue, oldValue) {\n if (newValue !== undefined && newValue === false) {\n vm.showSku = false;\n vm.showBarcode = false;\n }\n });\n\n $scope.$watch(function() { return vm.useVariantDetail1Level; }, function() {\n loadArticles();\n });\n\n $scope.$watch(function() { return vm.useVariantDetail2Level; }, function() {\n loadArticles();\n });\n\n $scope.$watch(function() { return vm.saleschannelId; }, function() {\n loadArticles();\n });\n\n $scope.$watch(function() { return vm.articleCollectionId; }, function() {\n loadArticles();\n });\n\n $scope.$watch(function() { return vm.currentPage; }, function() {\n loadArticles();\n });\n $scope.$watch(function() { return vm.itemsPerPage; }, function() {\n loadArticles();\n });\n\n return PricelistsApiService.getVolumeDiscounts().then(function(response) {\n vm.volumeDiscounts = [];\n vm.volumeDiscounts.push({\n id: 0,\n name: '-'\n });\n _.forEach(response, function(volumeDiscount) {\n vm.volumeDiscounts.push(volumeDiscount);\n });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n function priceListSort(element) {\n if (element.id !== undefined) { // Element is a priceList\n return element.id;\n } else if (element.priceListId !== undefined) { //Element is a priceListItem\n return element.priceListId;\n } else {\n throw 'Unknown element to sort by';\n }\n }\n\n function save() {\n loadSpinnerService.start('mainSpinner');\n PricelistsApiService.savePriceListEditorArticles(vm.editorArticles).then(function(response) {\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function handlePriceChange(priceListItem, editorArticle) {\n var priceRangeToUpdate = _.find(editorArticle.priceListPrices, function(priceListPrice) {\n return priceListItem.priceListId === priceListPrice.priceListId;\n });\n\n var keys = Object.keys(priceListItem);\n _.remove(keys, function(fieldName) {\n return fieldName === \"$$hashKey\" || fieldName === \"trackById\";\n });\n\n _.forEach(keys, function(key) {\n priceRangeToUpdate[key] = priceListItem[key];\n });\n\n if(priceListItem.isCalculatedPrice){\n var priceList = _.find(vm.priceListHeads, function(priceListHead){\n return priceListHead.id === priceListItem.priceListId;\n });\n var exchangeRate = (priceList.exchangeRate !== 0) ? priceList.exchangeRate : 1;\n priceListItem.minPrice = (priceListItem.originalPriceMin * priceList.priceFactor) * exchangeRate;\n priceListItem.maxPrice = (priceListItem.originalPriceMax * priceList.priceFactor) * exchangeRate;\n }\n\n if (priceListItem.isSystemPrice) {\n PricelistsHelperService.recalculateRowPrices(priceListItem, editorArticle, vm.priceListHeads);\n }\n }\n\n function loadArticles() {\n if (vm.articleIds.length === 0 && vm.editorArticles.length === 0) {\n return;\n }\n\n vm.editorArticles = [];\n vm.priceListHeads = [];\n\n var request = {\n articleCollectionId: vm.articleCollectionId,\n articleIds: vm.articleIds,\n useVariantDetail1Level: vm.useVariantDetail1Level,\n useVariantDetail2Level: vm.useVariantDetail2Level,\n saleschannelId: vm.saleschannelId,\n page: vm.currentPage,\n pageSize: vm.itemsPerPage\n };\n\n loadSpinnerService.start('mainSpinner');\n PricelistsApiService.getPriceListEditorArticles(request).then(function(response) {\n vm.editorArticles = response.data.articles.results;\n vm.itemsPerPage = response.data.articles.limit;\n vm.currentPage = response.data.articles.page;\n vm.editorArticlesTotal = response.data.articles.total;\n\n vm.priceListHeads = response.data.priceLists;\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function clearArticles() {\n vm.editorArticles = [];\n vm.priceListHeads = [];\n }\n}\n","angular.module('components.caPriceRangeInput', [])\n .component('caPriceRangeInput', {\n templateUrl: 'main/product/pricelisteditor/components/pricerangeinput.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n priceRangeItem: '<',\n maxPriceFieldName: '<',\n minPriceFieldName: '<',\n onPriceRangeItemChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject \nfunction controller($scope, $q) {\n var vm = this;\n var inputBox = {};\n\n console.log(\"maxPriceFieldName is: \", vm.maxPriceFieldName);\n console.log(\"minPriceFieldName is: \", vm.minPriceFieldName);\n\n var oldPriceRangeItem = {};\n var valueBeforeEditing = \"\";\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.inputBoxDisplayValue = \"\";\n\n vm.inputBoxFocused = inputBoxFocused;\n vm.inputBoxBlurred = inputBoxBlurred;\n vm.handleInputChange = handleInputChange;\n\n vm.captureInputBox = captureInputBox;\n vm.getInputBoxStyle = getInputBoxStyle;\n vm.handleKeypress = handleKeypress;\n\n vm.markForRemoval = markForRemoval;\n\n function onInit() {\n $scope.$watch(function() { return vm.priceRangeItem.maxPrice; }, function() {\n constructDisplayValue();\n });\n\n $scope.$watch(function() { return vm.priceRangeItem.minPrice; }, function() {\n constructDisplayValue();\n });\n\n $scope.$watch(function() { return vm.priceRangeItem.previousMaxPrice; }, function() {\n constructDisplayValue();\n });\n\n $scope.$watch(function() { return vm.priceRangeItem.previousMinPrice; }, function() {\n constructDisplayValue();\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n function inputBoxFocused() {\n storePriceRangeItem();\n if (vm.priceRangeItem.isCalculatedPrice) {\n vm.inputBoxDisplayValue = \"\";\n storeInputValue();\n } else {\n vm.inputBoxDisplayValue = vm.priceRangeItem[vm.maxPriceFieldName].toString();\n storeInputValue();\n }\n }\n\n function inputBoxBlurred() {\n if (vm.inputBoxDisplayValue === \"\" && vm.priceRangeItem[vm.maxPriceFieldName] === vm.priceRangeItem[vm.minPriceFieldName]) {\n vm.inputBoxDisplayValue = vm.priceRangeItem[vm.maxPriceFieldName];\n } else if (vm.priceRangeItem[vm.maxPriceFieldName] !== vm.priceRangeItem[vm.minPriceFieldName]) {\n vm.inputBoxDisplayValue = vm.priceRangeItem[vm.minPriceFieldName].toString() + \" - \" + vm.priceRangeItem[vm.maxPriceFieldName].toString();\n }\n }\n\n function handleInputChange() {\n var inputValueToNumber = _.toNumber(vm.inputBoxDisplayValue);\n if (!isNaN(inputValueToNumber)) {\n vm.priceRangeItem[vm.minPriceFieldName] = inputValueToNumber;\n vm.priceRangeItem[vm.maxPriceFieldName] = inputValueToNumber;\n vm.priceRangeItem.isCalculatedPrice = false;\n\n // Callback\n vm.onPriceRangeItemChanged({priceRangeItem: vm.priceRangeItem});\n } else {\n revertInputValue();\n }\n }\n\n function captureInputBox(ib) {\n inputBox = ib;\n }\n\n function handleKeypress(ev) {\n if (ev.key === 'Escape' && ev.charCode === 0) {\n revertPriceRangeItem();\n }\n }\n\n function markForRemoval() {\n vm.priceRangeItem.shouldBeDeleted = true;\n vm.priceRangeItem.isCalculatedPrice = true;\n\n vm.onPriceRangeItemChanged({priceRangeItem: vm.priceRangeItem});\n }\n\n function getInputBoxStyle() {\n var style = {};\n\n if (!vm.priceRangeItem.isPriceOnAnyPriceList && vm.priceRangeItem.priceListId !== 0) {\n style['background-color'] = 'transparent';\n style['color'] = 'transparent';\n } else if (vm.priceRangeItem.isCalculatedPrice) {\n style['background-color'] = '#dddddd';\n style['color'] = '#777777';\n } else {\n style['background-color'] = 'transparent';\n style['color'] = '#000000';\n }\n\n return style;\n }\n\n function storeInputValue() {\n valueBeforeEditing = vm.inputBoxDisplayValue;\n }\n\n function revertInputValue() {\n vm.inputBoxDisplayValue = valueBeforeEditing;\n }\n\n function storePriceRangeItem() {\n oldPriceRangeItem = angular.copy(vm.priceRangeItem);\n }\n\n function revertPriceRangeItem() {\n vm.priceRangeItem[vm.minPriceFieldName] = oldPriceRangeItem[vm.minPriceFieldName];\n vm.priceRangeItem[vm.maxPriceFieldName] = oldPriceRangeItem[vm.maxPriceFieldName];\n vm.priceRangeItem.isCalculatedPrice = oldPriceRangeItem.isCalculatedPrice;\n constructDisplayValue();\n\n // Callback\n vm.onPriceRangeItemChanged({priceRangeItem: vm.priceRangeItem});\n }\n\n function constructDisplayValue() {\n if (vm.priceRangeItem[vm.maxPriceFieldName] === vm.priceRangeItem[vm.minPriceFieldName]) {\n vm.inputBoxDisplayValue = vm.priceRangeItem[vm.maxPriceFieldName].toString();\n storeInputValue();\n } else {\n vm.inputBoxDisplayValue = vm.priceRangeItem[vm.minPriceFieldName].toString() + ' - ' + vm.priceRangeItem[vm.maxPriceFieldName].toString();\n storeInputValue();\n }\n }\n}\n","angular.module('components.caVolumeDiscountSelector', [])\n .component('caVolumeDiscountSelector', {\n templateUrl: 'main/product/pricelisteditor/components/volumediscountrule.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n priceRangeItem: '=',\n volumeDiscounts: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller() {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.changeVolumeDiscount = changeVolumeDiscount;\n vm.volumeDiscountAllowed = false;\n\n vm.selectedVolumeDiscount = {};\n\n function onInit() {\n vm.volumeDiscountAllowed = (vm.priceRangeItem !== undefined) ? vm.priceRangeItem.priceListId !== 0 && vm.priceRangeItem.isPriceOnAnyPriceList : false;\n\n if (vm.priceRangeItem !== undefined) {\n if (vm.priceRangeItem.volumeDiscounts !== undefined && vm.priceRangeItem.volumeDiscounts.length !== 0) {\n var firstVolumeDiscount = vm.priceRangeItem.volumeDiscounts[0];\n // If all volume discounts are the same\n if (_.every(vm.priceRangeItem.volumeDiscounts, function(vd) { return firstVolumeDiscount.id === vd.id; })) {\n vm.selectedVolumeDiscount = firstVolumeDiscount;\n } else {\n vm.selectedVolumeDiscount = generatePlaceholderVolumeDiscount(vm.priceRangeItem.volumeDiscounts);\n }\n } else {\n vm.selectedVolumeDiscount = _.find(vm.volumeDiscounts, function(vd) { return vd.id === 0; });\n }\n }\n }\n function onChanges() {\n\n }\n function onDestroy() {\n\n }\n\n function changeVolumeDiscount() {\n vm.priceRangeItem.volumeDiscounts.length = 0;\n vm.priceRangeItem.volumeDiscounts.push(vm.selectedVolumeDiscount);\n }\n\n function generatePlaceholderVolumeDiscount(volumeDiscounts) {\n var placeholderVolumeDiscount = {\n id: -1,\n name: \"\"\n };\n\n var uniqueVolumeDiscounts = _.uniqBy(volumeDiscounts, function(vd) { return vd.name; });\n var firstLoop = true;\n _.forEach(uniqueVolumeDiscounts, function(vd) {\n if (firstLoop) {\n placeholderVolumeDiscount.name += vd.name;\n firstLoop = false;\n } else {\n placeholderVolumeDiscount.name += \", \" + vd.name;\n }\n\n });\n\n return placeholderVolumeDiscount;\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.pricelisteditor', {\n url:'/editor',\n views: {\"wideColumnView@product\": {\n templateUrl: 'main/product/pricelisteditor/pricelisteditor.tpl.html',\n controller: 'PriceListEditorController as vm'\n }}\n });\n}\n\n// @ngInject\nfunction PriceListEditorController($scope) {\n var vm = this;\n\n //Properties\n vm.selectedArticleIds = [];\n vm.selectedArticleCollectionId = null;\n vm.selectedSalesChannelId = null;\n\n //Methods\n vm.searchContextChanged = searchContextChanged;\n\n activate();\n\n function activate() {\n }\n\n function searchContextChanged(searchContext) {\n vm.selectedArticleCollectionId = searchContext.articleCollectionId;\n vm.selectedArticleIds = searchContext.articleIds;\n vm.selectedSalesChannelId = searchContext.saleschannelId;\n }\n\n}\n\nangular\n .module('product.priceListEditor', [])\n .config(stateConfig)\n .controller('PriceListEditorController', PriceListEditorController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n\n $stateProvider.state('product.pricelists.new', {\n url:'/new',\n views: {\"productView@product\": {\n templateUrl: 'main/product/pricelists/pricelist/pricelist.tpl.html',\n controller: 'PricelistController as vm'\n }},\n resolve: {\n pricelist: function() { return {}; },\n isNewPricelist: function() { return true; },\n currencies: currenciesResolver,\n psychologicalPrices: psychologicalPriceResolver,\n customerGroups: customerGroupsResolver,\n salesChannels: salesChannelsResolver\n }\n });\n\n $stateProvider.state('product.pricelists.pricelist', {\n url:'/{pricelistId}',\n views: {\"productView@product\": {\n templateUrl: 'main/product/pricelists/pricelist/pricelist.tpl.html',\n controller: 'PricelistController as vm'\n }},\n resolve: {\n pricelist: pricelistResolver,\n isNewPricelist: function() { return false; },\n currencies: currenciesResolver,\n psychologicalPrices: psychologicalPriceResolver,\n customerGroups: customerGroupsResolver,\n salesChannels: salesChannelsResolver\n }\n });\n}\n\n// @ngInject\nfunction pricelistResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getPricelistBrief($stateParams.pricelistId);\n}\n\n// @ngInject\nfunction salesChannelsResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getSalesChannels();\n}\n\n// @ngInject\nfunction currenciesResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getCurrencies();\n}\n\n// @ngInject\nfunction psychologicalPriceResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getPsychologicalPrices();\n}\n\n// @ngInject\nfunction customerGroupsResolver($stateParams, PricelistsApiService) {\n return PricelistsApiService.getCustomerGroups();\n}\n\n// @ngInject\nfunction PricelistController($state, $scope, $rootScope, pricelist, loadSpinnerService, PricelistsApiService, isNewPricelist, currencies, psychologicalPrices, customerGroups, $translate, salesChannels, ToasterService) {\n var vm = this;\n\n //Properties\n var pricelistCopy = {};\n vm.pricelist = pricelist;\n vm.isNewPricelist = isNewPricelist;\n vm.isEditing = vm.isNewPricelist;\n vm.currencies = currencies;\n vm.psychologicalPrices = [{id:0, name: '-'}].concat(psychologicalPrices);\n vm.customerGroups = customerGroups;\n vm.salesChannels = salesChannels;\n\n //Methods\n vm.isAllInformationValid = isAllInformationValid;\n vm.isPricelistCodeValid = isPricelistCodeValid;\n vm.isPricelistNameValid = isPricelistNameValid;\n vm.isSalesChannelCodeValid = isSalesChannelCodeValid;\n vm.hasChosenCurrency = hasChosenCurrency;\n vm.savePricelist = savePricelist;\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n\n activate();\n\n function activate() {\n prepareData();\n\n if (vm.isNewPricelist) {\n vm.pricelist = {\n exchangeRate: 1,\n priceFactor: 1,\n leastNetProfitPercentage: 0\n };\n vm.pricelist.psychologicalPrice = vm.psychologicalPrices[0];\n vm.pricelist.currency = _.find(vm.currencies, function(o) {\n return o.code = 'SEK';\n });\n vm.pricelist.salesChannel = vm.salesChannels[0];\n }\n\n $scope.$watch(function() { return vm.pricelist.currency.id; }, function(newValue, oldValue) {\n vm.pricelist.exchangeRate = vm.pricelist.currency.currencyRate;\n });\n }\n\n function enableEditing() {\n pricelistCopy = angular.copy(vm.pricelist);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.pricelist = pricelistCopy;\n vm.isEditing = false;\n }\n\n function savePricelist() {\n if (vm.isNewPricelist) {\n saveNewPricelist();\n } else {\n updatePricelist();\n }\n }\n\n function saveNewPricelist() {\n loadSpinnerService.start('mainSpinner');\n PricelistsApiService.createPricelist(vm.pricelist).then(function(response) {\n vm.pricelist = response;\n prepareData();\n vm.isNewPricelist = false;\n vm.isEditing = false;\n ToasterService.showSuccess('\"' + vm.pricelist.pricelistName + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"product.pricelists\"));\n $rootScope.$emit('Pricelist.Inserted', response);\n $state.go('product.pricelists.pricelist', {pricelistId: response.id});\n }, function(error) {\n ToasterService.showError(error, $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updatePricelist() {\n loadSpinnerService.start('mainSpinner');\n PricelistsApiService.updatePricelist(vm.pricelist).then(function(response) {\n vm.pricelist = response;\n prepareData();\n vm.isEditing = false;\n ToasterService.showSuccess('\"' + vm.pricelist.pricelistName + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"product.pricelists\"));\n $rootScope.$emit('Pricelist.Changed', response);\n }, function(error) {\n ToasterService.showError(error, $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function prepareData() {\n if (vm.pricelist && vm.pricelist.salesChannel && vm.pricelist.salesChannel.id > 0) {\n var salesChannel = _.find(salesChannels, function(o) { return o.id === vm.pricelist.salesChannel.id; });\n if (salesChannel) {\n vm.pricelist.salesChannel = salesChannel;\n }\n }\n }\n\n function isAllInformationValid() {\n return isPricelistCodeValid() &&\n isPricelistNameValid() &&\n hasChosenCurrency();\n }\n\n function isPricelistCodeValid() {\n return vm.pricelist.pricelistCode && vm.pricelist.pricelistCode.length > 0;\n }\n\n function isSalesChannelCodeValid() {\n return vm.pricelist.salesChannel && vm.pricelist.salesChannel.salesChannelCode.length > 0;\n }\n\n function isPricelistNameValid() {\n return vm.pricelist.pricelistName && vm.pricelist.pricelistName.length > 0;\n }\n\n function hasChosenCurrency() {\n return vm.pricelist.currency && vm.pricelist.currency.id > 0;\n }\n}\n\nangular\n .module('pricelists.pricelist', [])\n .config(stateConfig)\n .controller('PricelistController', PricelistController);\n","// @ngInject\nfunction PricelistsApiService(ResourcesService, $q, DSHttpAdapter, DS) {\n\n var endpoint = 'pricelists';\n\n return {\n getPricelists: getPricelists,\n getPricelist: ResourcesService.apiFactory.get(endpoint),\n getPricelistBrief: ResourcesService.apiFactory.get(endpoint + '/brief'),\n getPricelistBriefs: ResourcesService.apiFactory.get(endpoint + '/briefs'),\n createPricelist: ResourcesService.apiFactory.create(endpoint, 'Pricelist'),\n updatePricelist: ResourcesService.apiFactory.update(endpoint, 'Pricelist'),\n getCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getSalesChannels: ResourcesService.apiFactory.get(endpoint + '/saleschannels'),\n getProduct: ResourcesService.apiFactory.get(endpoint + '/product'),\n getPsychologicalPrices: ResourcesService.apiFactory.get(endpoint + '/psychologicalprices'),\n getCustomerGroups: ResourcesService.apiFactory.get(endpoint + '/customergroups'),\n getPriceListEditorArticles: getPriceListEditorArticles,\n savePriceListEditorArticles: savePriceListEditorArticles,\n updateOverridePrice: updateOverridePrice, //deprecated #8046\n removeOverridePrice: removeOverridePrice, //deprecated #8046\n getVolumeDiscounts: ResourcesService.apiFactory.get(endpoint + '/volumediscounts')\n };\n\n function getPricelists(page, filter, pageSize, companyId) {\n\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n var args = { params: params};\n\n return ResourcesService.apiFactory.get(endpoint)(args);\n }\n\n function getPriceListEditorArticles(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/editoritems', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n\n }\n\n\n function savePriceListEditorArticles(editorArticles) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + endpoint + '/editoritems', editorArticles).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n /**\n * @deprecated In devops #8046\n * @param {*} articleId Article id\n * @param {*} locationId Location id\n * @param {*} newPrice New price\n * @returns {*} ''\n */\n function updateOverridePrice(articleId, locationId, newPrice) {\n var deferred = $q.defer();\n\n var request = {\n articleId: articleId,\n locationId: locationId,\n price: newPrice\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/updatearticlepricelist', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n /**\n * @deprecated In devops #8046\n * @param {*} articleId Article id\n * @param {*} locationId Location id\n * @returns {*} ''\n */\n function removeOverridePrice(articleId, locationId) {\n var deferred = $q.defer();\n\n var request = {\n articleId: articleId,\n locationId: locationId\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/deletearticlepricelist', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('pricelists.api', [])\n .factory('PricelistsApiService', PricelistsApiService);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.pricelists', {\n url: '/pricelists',\n views: {'productList@product': {\n templateUrl: 'main/product/pricelists/pricelists.tpl.html',\n controller: 'PricelistsController as vm'\n }},\n resolve: {\n pricelists: pricelistsResolver\n }\n });\n}\n\n// @ngInject\nfunction pricelistsResolver(PricelistsApiService) {\n return PricelistsApiService.getPricelistBriefs();\n}\n\n// @ngInject\nfunction PricelistsController($rootScope, $state, $scope, pricelists, PricelistsApiService,loadSpinnerService) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.pricelists = pricelists.results;\n vm.selectedPricelistId = 0;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n vm.itemsPerPage = 20;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.pricelistId; }, function(newValue, oldValue) {\n vm.selectedPricelistId = parseInt($state.params.pricelistId, 10);\n });\n $rootScope.$on('Pricelist.Inserted', function(event, response) {\n loadPricelists();\n });\n $rootScope.$on('Pricelist.Changed', function(event, response) {\n loadPricelists();\n });\n }\n\n function loadPricelists() {\n loadSpinnerService.start('mainSpinner');\n PricelistsApiService.getPricelistBriefs().then(function(response) {\n vm.pricelists = response.results;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadPricelists();\n }\n\n}\n\nangular\n .module('product.pricelists', ['pricelists.api','pricelists.pricelist'])\n .config(stateConfig)\n .controller('PricelistsController', PricelistsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product', {\n url: '/product',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/product/product.tpl.html',\n controller: 'MainProductsController as vm'\n });\n}\n\n// @ngInject\nfunction MainProductsController() {\n var vm = this;\n}\n\nangular.module('main.product', [\n 'products.api',\n 'rms2Products.api',\n 'product.service',\n 'variants.api',\n 'variantgroups.api',\n 'product.articles',\n 'product.pricelistmgmt',\n 'product.importfileslist',\n 'product.maingroups',\n 'product.brands',\n 'product.saleschannels',\n 'product.intrastats',\n 'product.productimport',\n 'product.subcategories',\n 'product.pricelists',\n 'product.psychologicalprices',\n 'product.departments',\n 'product.variants',\n 'product.variantgroups',\n 'product.priceListEditor',\n 'product.volumediscounts',\n 'product.businessareas',\n 'product.productimporteditor'\n ])\n .config(stateConfig)\n .controller('MainProductsController', MainProductsController);\n","// @ngInject\nfunction ProductService() {\n return {\n canReadPrices: canReadPrices\n };\n\n function hasLink(links, rel) {\n var link = _.find(links, function (o) {\n return o.rel === rel;\n });\n\n if (link) {\n return true;\n }\n\n return false;\n }\n\n function canReadPrices(links) {\n return hasLink(links, 'read_prices');\n }\n}\n\nangular\n .module('product.service', [])\n .factory('ProductService', ProductService);\n","angular.module('components.caImportFileList', [])\n .component('caImportFileList', {\n templateUrl: 'main/product/productimport/components/filelist.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n importType: '<',\n onImportFileChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($state, $scope, FileDataImportApiServiceV2, $translate, loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n var fileInputDomElement = $(\"#xlf\")[0];\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.itemsPerPage = 15;\n vm.importFiles = [];\n vm.showReload = false;\n\n //Methods\n vm.loadImportFiles = loadImportFiles;\n vm.reloadFile = reloadFile;\n vm.deleteImportFile = deleteImportFile;\n vm.goToOrder = goToOrder;\n vm.goToEditor = goToEditor;\n\n activate();\n\n function activate() {\n fileInputDomElement.addEventListener('change', function handleImportFileChanged(e) {\n var files = e.target.files;\n vm.importFileName = files[0].name;\n var i,f;\n for (i = 0, f = files[i]; i !== files.length; ++i) {\n vm.onImportFileChanged({ file: f });\n vm.showReload = true;\n }\n }, false);\n $scope.$watch(function() { return vm.importType; }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n if (!vm.importFiles || vm.importFiles.length === 0) {\n loadImportFiles();\n }\n if (oldValue === 'existingImportFile') {\n $('.col-lg-6').css('width', '100%');\n } else {\n $('.col-lg-6').css('width', '50%');\n }\n }\n });\n }\n\n function loadImportFiles() {\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiServiceV2.getImportFiles(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function(response) {\n vm.totalItems = response.totalItems;\n vm.importFiles = response.data;\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant('productimport.errorWhileReadingImportFileList'), $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function reloadFile() {\n var target = $(fileInputDomElement)[0];\n var files = target.files;\n var i,f;\n for (i = 0, f = files[i]; i !== files.length; ++i) {\n vm.onImportFileChanged({ file: f, revalidate: true });\n vm.showReload = true;\n }\n }\n\n function deleteImportFile(importId) {\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiServiceV2.deleteProductImportFile(importId).then(function() {\n var deletedItem = _.find(vm.importFiles, function(importFile) {\n return importFile.id === importId;\n });\n\n vm.importFiles = _.without(vm.importFiles, deletedItem);\n }, function(error) {\n console.log(error);\n ToasterService.showError($translate.instant('productimport.errorWhileDeletingImportFile'), $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function goToOrder(order) {\n $state.go('order.modifyorder', { orderId: order.id });\n }\n\n function goToEditor(file) {\n $state.go('product.productimporteditor', { importFileId: file.id });\n }\n}\n","angular.module('components.caMapOrDate', [])\n .component('caMapOrDate', {\n templateUrl: 'main/product/productimport/components/mapordate.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n dateModel: '=',\n dateMin: '<',\n dateMax: '<',\n columnNames: '<',\n columnModel: '=',\n columnOrderBy: '<',\n columnItemRenderer: '<',\n columnFilterBy: '<',\n columnPlaceholder: '<',\n disabledBy: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, GenericComponentService) {\n var vm = this;\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n //Properties\n vm.multiplicity = 'single';\n vm.mandatory = true;\n\n //Methods\n vm.filterColumn = filterColumn;\n\n function onInit() {\n resolveRenderer();\n\n $scope.$watch(function() { return (vm.multiplicity); }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n if (vm.multiplicity === 'single') {\n vm.columnModel = undefined;\n } else if (vm.multiplicity === 'multiple') {\n vm.dateModel = undefined;\n }\n }\n });\n }\n\n function onChanges(changes) {\n if (changes.columnRenderItem) {\n resolveRenderer();\n }\n }\n\n function resolveRenderer() {\n vm.columnRenderItem = GenericComponentService.resolveSelectRenderer(vm.columnItemRenderer);\n }\n\n function filterColumn(query) {\n return GenericComponentService.getSelectFilter(query, vm.columnFilterBy);\n }\n}\n","angular.module('components.caMapOrSelect', [])\n .component('caMapOrSelect', {\n templateUrl: 'main/product/productimport/components/maporselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n choices: '<',\n choiceModel: '=',\n choiceOrderBy: '<',\n choiceItemRenderer: '<',\n choiceFilterBy: '<',\n choicePlaceholder: '<',\n columnNames: '<',\n columnModel: '=',\n columnOrderBy: '<',\n columnItemRenderer: '<',\n columnFilterBy: '<',\n columnPlaceholder: '<',\n disabledBy: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, GenericComponentService) {\n var vm = this;\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n //Properties\n vm.multiplicity = 'single';\n vm.mandatory = true;\n\n //Methods\n vm.filterChoice = filterChoice;\n vm.filterColumn = filterColumn;\n\n function onInit() {\n resolveRenderer();\n\n $scope.$watch(function() { return (vm.multiplicity); }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n if (vm.multiplicity === 'single') {\n vm.columnModel = undefined;\n } else if (vm.multiplicity === 'multiple') {\n vm.choiceModel = undefined;\n }\n }\n });\n }\n\n function onChanges(changes) {\n if (changes.choiceRenderItem || changes.columnRenderItem) {\n resolveRenderer();\n }\n }\n\n function resolveRenderer() {\n vm.choiceRenderItem = GenericComponentService.resolveSelectRenderer(vm.choiceItemRenderer);\n vm.columnRenderItem = GenericComponentService.resolveSelectRenderer(vm.columnItemRenderer);\n }\n\n function filterChoice(query) {\n return GenericComponentService.getSelectFilter(query, vm.choiceFilterBy);\n }\n function filterColumn(query) {\n return GenericComponentService.getSelectFilter(query, vm.columnFilterBy);\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.productimport',{\n url: '/productimport',\n views: {'wideColumnView@product': {\n templateUrl: 'main/product/productimport/productimport.tpl.html',\n controller: 'ProductImportController as vm'\n }},\n resolve: {\n suppliers: suppliersResolver,\n locations: locationsResolver,\n articleCollections: articleCollectionsResolver,\n orderCollections: orderCollectionsResolver\n }\n });\n}\n\n// @ngInject\nfunction suppliersResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getSuppliers();\n}\n\n// @ngInject\nfunction locationsResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getLocations();\n}\n// @ngInject\nfunction articleCollectionsResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getArticleCollections();\n}\n// @ngInject\nfunction orderCollectionsResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getOrderCollections();\n}\n\n// @ngInject\nfunction ProductImportController($state, $scope, $translate, loadSpinnerService, ToasterService, confirmationDialogService,\n FileDataImportApiServiceV2, suppliers, locations, articleCollections, orderCollections, $sce) {\n var vm = this;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n //Properties\n vm.importType = 'newImportFile';\n vm.importFileType = 'productImport';\n vm.importSku = false;\n vm.usePricesFromExistingProducts = { \n forPurchaseCost : false,\n forSalesPrice : false,\n forPreviousPrice : false\n };\n vm.importFile = {};\n vm.JSonAdaptedSheetData = undefined;\n vm.importFileColumnNames =[];\n vm.importMapping = {\n column: {}\n };\n vm.productImportRequest = {\n articleCollection: undefined,\n fileName: '',\n importRows: [],\n importType: '',\n location: undefined,\n orderCollection: undefined,\n plannedDeliveryDate: new Date(),\n supplier: undefined\n };\n vm.suppliers = suppliers;\n \n vm.locations = locations;\n vm.articleCollections = articleCollections;\n vm.orderCollections = orderCollections;\n vm.errorList = [];\n vm.assumptionList = [];\n vm.readyForSave = false;\n vm.readyForImport = false;\n vm.useMainGroupAndBrand = false;\n vm.isAllowedToImportSku = false;\n\n //Methods\n vm.handleImportFile = handleImportFile;\n vm.saveSupplierMapping = saveSupplierMapping;\n vm.validateImportFile = validateImportFile;\n vm.goToEditor = goToEditor;\n vm.mandatoryAccordionAvailable = mandatoryAccordionAvailable;\n vm.mappingsAccordionAvailable = mappingsAccordionAvailable;\n vm.confirmGoToEditor = confirmGoToEditor;\n vm.changeToImportNewFileView = changeToImportNewFileView;\n vm.changeToUseExistingFileView = changeToUseExistingFileView;\n vm.isPurchasingCurrencyCodePopulated = isPurchasingCurrencyCodePopulated;\n vm.getPricesFromProductWarningMessage = getPricesFromProductWarningMessage\n\n activate();\n\n function activate() {\n var currentDate = new Date();\n vm.articleCollections = _.filter(vm.articleCollections, function(coll) {\n var fromDate = new Date(coll.fromDate);\n var toDate = new Date(coll.toDate);\n return fromDate >= currentDate ||\n (fromDate <= currentDate && toDate >= currentDate);\n });\n vm.orderCollections = _.filter(vm.orderCollections, function(coll) {\n var fromDate = new Date(coll.fromDate);\n var toDate = new Date(coll.toDate);\n return fromDate >= currentDate ||\n (fromDate <= currentDate && toDate >= currentDate);\n });\n\n $scope.$watch(function() { return vm.importFileType;}, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n vm.readyForSave = false;\n vm.readyForImport = false;\n }\n });\n $scope.$watch(function() { return (vm.productImportRequest.supplier) ? vm.productImportRequest.supplier.id : undefined; }, function(newValue, oldValue) {\n if (newValue === undefined) { vm.productImportRequest.supplier = undefined; return; }\n if (newValue !== oldValue) {\n loadSpinnerService.start('mainSpinner');\n vm.productImportRequest.supplier.id = vm.productImportRequest.supplier.id;\n FileDataImportApiServiceV2.getColumnMapping(vm.productImportRequest.supplier.id).then(function(response) {\n if (response && response.id !== 0) {\n //Retrieve saved mapping, has a column name eg. \"alternativeArticleNumber\" and the name of the column in the file eg. \"Modell\"\n var keys = Object.keys(response);\n var filteredKeys = _.filter(keys, function(key) { return key !== 'id'; }); //Removes id column\n var dbColumnNames = [];\n _.forEach(filteredKeys, function(key) {\n if (response[key] && response[key].trim().length > 0) {\n if (!_.find(dbColumnNames, function(col) { return col.column === key; })) {\n var nameStr = normalizeString(response[key]);\n var newColumn = { column: key, name: nameStr };\n dbColumnNames.push(newColumn);\n }\n }\n });\n\n //Mappings in the file has already been read into vm.importFileColumnNames\n //Match mapping in db against mappings in vm.importFileColumnNames so to only update those that HAVE a mapping, and only map where it isn't empty\n var matchedColumns = [];\n _.forEach(vm.importFileColumnNames, function(fileCol) {\n var dbColumns = _.filter(dbColumnNames, function (dbCol) { if (dbCol.name.trim().length > 0 && dbCol.name.trim() === fileCol.name.trim()) { return dbCol; }});\n if (dbColumns.length > 0) {\n _.forEach(dbColumns, function(dbc) {\n matchedColumns.push(dbc);\n });\n }\n });\n\n //Compare matched columns with vm.importMapping which is used be the dropdowns\n _.forEach(matchedColumns, function (matchedCol) {\n var fileColumn = _.find(vm.importFileColumnNames, function(fileCol) { if (fileCol.name.trim() === matchedCol.name.trim()) { return fileCol; }});\n if (fileColumn) {\n vm.importMapping.column[matchedCol.column] = fileColumn;\n }\n });\n }\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant('productimport.errorWhileReadingColumnMapping'), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n\n vm.readyForSave = false;\n vm.readyForImport = false;\n\n //Remove error from list if user has chosen value\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'supplier';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.companyCode) ? vm.importMapping.column.companyCode : undefined; }, function(newValue, oldValue) {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'supplier';\n });\n });\n\n //Remove error from list if user has chosen value\n $scope.$watch(function() { return (vm.productImportRequest.location) ? vm.productImportRequest.location.id : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'location';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.locationCode) ? vm.importMapping.column.locationCode : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'location';\n });\n }\n });\n \n\n $scope.$watch(function() { return (vm.productImportRequest.articleCollection) ? vm.productImportRequest.articleCollection.id : undefined; }, function(newValue, oldValue) {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'articleCollection';\n });\n });\n $scope.$watch(function() { return (vm.importMapping.column.articleCollectionCode) ? vm.importMapping.column.articleCollectionCode : undefined; }, function(newValue, oldValue) {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'articleCollection';\n });\n });\n\n $scope.$watch(function() { return (vm.productImportRequest.orderCollection) ? vm.productImportRequest.orderCollection.id : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'orderCollection';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.orderCollectionCode) ? vm.importMapping.column.orderCollectionCode : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'orderCollection';\n });\n }\n });\n\n $scope.$watch(function() { return (vm.importMapping.column.plannedDeliveryDate) ? vm.importMapping.column.plannedDeliveryDate : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'plannedDeliveryDate';\n });\n }\n });\n\n $scope.$watch(function() { return (vm.importMapping.column.alternativeArticleNumber) ? vm.importMapping.column.alternativeArticleNumber : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'importMappingAlternativeArticleNumber';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.purchaseCost) ? vm.importMapping.column.purchaseCost : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'importMappingPurchaseCost';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.salesPrice) ? vm.importMapping.column.salesPrice : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'importMappingSalesPrice';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.salesPrice) ? vm.importMapping.column.salesPrice : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'importMappingSalesPrice';\n });\n }\n });\n $scope.$watch(function() { return (vm.importMapping.column.barcode) ? vm.importMapping.column.barcode : undefined; }, function(newValue, oldValue) {\n if (vm.importFileType === 'orderImport') {\n vm.errorList = _.remove(vm.errorList, function(err) {\n return err.code !== 'assumptionBarcode';\n });\n }\n });\n\n FileDataImportApiServiceV2.getTenantConfig().then(function(response) {\n vm.isAllowedToImportSku = response.data.isAllowedToImportSku;\n });\n }\n\n function getPricesFromProductWarningMessage(){\n var foo = $translate.instant(\"productimport.pricesfromproductwarningmessage\");\n return $sce.trustAsHtml(foo);\n }\n\n function mandatoryAccordionAvailable() {\n return vm.importType === 'newImportFile' &&\n vm.JSonAdaptedSheetData &&\n vm.JSonAdaptedSheetData.length > 0 &&\n vm.importFileColumnNames &&\n vm.importFileColumnNames.length > 0;\n }\n\n function mappingsAccordionAvailable() {\n return vm.importType === 'newImportFile' &&\n vm.JSonAdaptedSheetData &&\n vm.JSonAdaptedSheetData.length > 0 &&\n vm.importFileColumnNames &&\n vm.importFileColumnNames.length > 0 &&\n (vm.productImportRequest.supplier || vm.importMapping.column.companyCode) &&\n (vm.productImportRequest.articleCollection || vm.importMapping.column.articleCollectionCode) &&\n (\n vm.importFileType === 'productImport' ||\n (vm.importFileType === 'orderImport' &&\n (vm.productImportRequest.location || vm.importMapping.column.locationCode) &&\n (vm.productImportRequest.orderCollection || vm.importMapping.column.orderCollectionCode)\n )\n );\n }\n\n function handleImportFile(file, revalidate) {\n var reader = new FileReader();\n vm.productImportRequest.fileName = file.name;\n reader.onload = onLoadFunction;\n loadSpinnerService.start('mainSpinner');\n reader.readAsArrayBuffer(file);\n\n function onLoadFunction(e) {\n try {\n // --- File data read ---\n // From MDN: \"readAsBinaryString is deprecated and readAsArrayBuffer() should be used instead.\"\n\n // ReadAsArrayBuffer solution.\n var data = \"\";\n var bytes = new Uint8Array(e.target.result);\n var length = bytes.byteLength;\n for (var i = 0; i < length; i++) {\n data += String.fromCharCode(bytes[i]);\n }\n\n // --- XLSX ---\n // Read Excel data into a workbook object representation.\n var workbook = XLSX.read(data, {type: 'binary'});\n\n // Getting the name of the first sheet in the workbook.\n var firstSheetName = workbook.SheetNames[0];\n\n // Getting the sheet based on the firstSheetName.\n var workSheet = workbook.Sheets[firstSheetName];\n\n // The JSon representation of the worksheet returned by js-xlsx is pretty similar to how\n // we want our request data to be formatted.\n vm.JSonAdaptedSheetData = XLSX.utils.sheet_to_json(workSheet);\n\n cleanColumnNames();\n\n extractImportFileColumnNames();\n\n vm.errorList = [];\n if (revalidate) {\n validateImportFile();\n }\n } catch (error) {\n console.log(error);\n ToasterService.showError($translate.instant('productimport.errorWhileReadingImportFile'), $translate.instant('common.error'));\n } finally {\n loadSpinnerService.stop('mainSpinner');\n }\n }\n }\n\n function cleanColumnNames() {\n if (vm.JSonAdaptedSheetData.length !== 0) {\n for (var sheetIndex = 0; sheetIndex < vm.JSonAdaptedSheetData.length; sheetIndex++) {\n var sheetData = vm.JSonAdaptedSheetData[sheetIndex];\n var keys = Object.keys(sheetData);\n\n for (var keyIndex = 0; keyIndex < keys.length; keyIndex++) {\n var key = keys[keyIndex];\n var origKey = key;\n var keyStr = normalizeString(key);\n //Check if the key has changed after normalization, if yes replace the kolumn with the new name\n if (origKey !== keyStr) {\n sheetData[keyStr] = sheetData[origKey];\n var index = keys.indexOf(origKey);\n keys[index] = keyStr;\n sheetData = _.pick(sheetData, keys);\n }\n }\n\n vm.JSonAdaptedSheetData[sheetIndex] = sheetData;\n }\n }\n }\n\n // js-xlsx has done most of the work already. All we need to do is extract the javascript object property names\n function extractImportFileColumnNames() {\n if (vm.JSonAdaptedSheetData.length !== 0) {\n vm.importFileColumnNames = [];\n _.forEach(vm.JSonAdaptedSheetData, function(sheetData) {\n var keys = Object.keys(sheetData);\n\n _.forEach(keys, function(key) {\n if (!_.find(vm.importFileColumnNames, function(col) { return col.name === key; })) {\n var nameStr = normalizeString(key);\n if (!_.find(vm.importFileColumnNames, function(col) { return col.name === nameStr; })) {\n var newColumn = { id: vm.importFileColumnNames.length, name: nameStr };\n vm.importFileColumnNames.push(newColumn);\n }\n }\n });\n });\n }\n }\n\n function normalizeString(str) {\n //Make sure string contains only letters, numbers and some special characters\n var retVal = str;\n var r = /[^ ()/\\\\0-9\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]+/g;\n retVal = str.replace(r, '');\n //Make sure there are no extra whitespace\n var r2 = /[\\s]{2,}/g;\n retVal = retVal.replace(r2, ' ');\n //Remove leading and trailing whitespace\n retVal = retVal.trim();\n return retVal;\n }\n\n function saveSupplierMapping() {\n if (!vm.productImportRequest || !vm.productImportRequest.supplier || !vm.productImportRequest.supplier.id) { return; }\n\n //Make sure strings are clean\n _.forEach(vm.importMapping.column, function(mapCol) {\n mapCol.name = normalizeString(mapCol.name);\n });\n\n //Save mapping\n var mappingRequest = {\n alternativeArticleNumber: vm.importMapping.column.alternativeArticleNumber ? vm.importMapping.column.alternativeArticleNumber.name : '',\n articleCollectionCode: vm.importMapping.column.articleCollectionCode ? vm.importMapping.column.articleCollectionCode.name : '',\n articleDescription: vm.importMapping.column.articleDescription ? vm.importMapping.column.articleDescription.name : '',\n articleName: vm.importMapping.column.articleName ? vm.importMapping.column.articleName.name : '',\n articleTypeName: vm.importMapping.column.articleTypeName ? vm.importMapping.column.articleTypeName.name : '',\n barcode: vm.importMapping.column.barcode ? vm.importMapping.column.barcode.name : '',\n externalSku: vm.importMapping.column.externalSku ? vm.importMapping.column.externalSku.name : '',\n supplierSku: vm.importMapping.column.supplierSku ? vm.importMapping.column.supplierSku.name : '',\n departmentCode: vm.importMapping.column.departmentCode ? vm.importMapping.column.departmentCode.name : '',\n intrastatCode: vm.importMapping.column.intrastatCode ? vm.importMapping.column.intrastatCode.name : '',\n itemGroupCode: vm.importMapping.column.itemGroupCode ? vm.importMapping.column.itemGroupCode.name : '',\n locationCode: vm.importMapping.column.locationCode ? vm.importMapping.column.locationCode.name : '',\n orderCollectionCode: vm.importMapping.column.orderCollectionCode ? vm.importMapping.column.orderCollectionCode.name : '',\n orderNumberExternal: vm.importMapping.column.orderNumberExternal ? vm.importMapping.column.orderNumberExternal.name : '',\n plannedDeliveryDate: vm.importMapping.column.plannedDeliveryDate ? vm.importMapping.column.plannedDeliveryDate.name : '',\n previousPrice: vm.importMapping.column.previousPrice ? vm.importMapping.column.previousPrice.name : '',\n purchaseCost: vm.importMapping.column.purchaseCost ? vm.importMapping.column.purchaseCost.name : '',\n quantity: vm.importMapping.column.quantity ? vm.importMapping.column.quantity.name : '',\n salesPrice: vm.importMapping.column.salesPrice ? vm.importMapping.column.salesPrice.name : '',\n subCategory: vm.importMapping.column.subCategory ? vm.importMapping.column.subCategory.name : '',\n companyCode: vm.importMapping.column.supplier ? vm.importMapping.column.supplier.name : '',\n variant1Name: vm.importMapping.column.variant1Name ? vm.importMapping.column.variant1Name.name : '',\n variant2Name: vm.importMapping.column.variant2Name ? vm.importMapping.column.variant2Name.name : '',\n length: vm.importMapping.column.length ? vm.importMapping.column.length.name : '',\n height: vm.importMapping.column.height ? vm.importMapping.column.height.name : '',\n width: vm.importMapping.column.width ? vm.importMapping.column.width.name : '',\n weight: vm.importMapping.column.weight ? vm.importMapping.column.weight.name : '',\n countryCode: vm.importMapping.column.countryCode ? vm.importMapping.column.countryCode.name : ''\n };\n\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiServiceV2.saveColumnMapping(vm.productImportRequest.supplier.id, mappingRequest).then(function(response) {\n ToasterService.showSuccess($translate.instant('productimport.mappingSaved'), $translate.instant('productimport.productImport'));\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant('productimport.errorWhileSavingMapping'), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function validateImportFile() {\n var result = false;\n result = validateMandatoryFields(true);\n vm.readyForSave = result;\n var columnsToCheckForEmptyFields = [\n 'barcode',\n vm.usePricesFromExistingProducts.forPreviousPrice ? 'ignore' : 'previousPrice',\n vm.usePricesFromExistingProducts.forPurchaseCost ? 'ignore' : 'purchaseCost',\n vm.usePricesFromExistingProducts.forSalesPrice ? 'ignore' : 'salesPrice',\n 'variant1Name',\n 'variant2Name'\n ];\n var importMappingColumnsToCheck = [];\n _.forEach(columnsToCheckForEmptyFields, function(columnName) {\n if(columnName !== 'ignore')\n importMappingColumnsToCheck.push(vm.importMapping.column[columnName]);\n });\n\n _.forEach(vm.JSonAdaptedSheetData, function(sheetData) {\n _.forEach(importMappingColumnsToCheck, function(column) {\n if (column && column && column.name.trim().length > 0) {\n if (!sheetData[column.name] || sheetData[column.name].length === 0) {\n result = false;\n var errorStr = $translate.instant('productimport.errorContainsEmptyFields').replace('%1', column.name);\n addErrorList(column, errorStr, true);\n }\n }\n });\n\n var errorStr = '';\n var findMultipleSeparatorsPattern = '[\\\\.\\\\,](?=[^\\\\.\\\\,]*[\\\\.\\\\,])';\n var findMultipleSeparatorsRegExp = new RegExp(findMultipleSeparatorsPattern,'g');\n var findLastCommaPattern = '[\\\\,](?![^\\\\,]*[\\\\,])';\n var findLastCommaRegExp = new RegExp(findLastCommaPattern,'g');\n var findNonDigitCharactersPattern = '[^0-9]';\n var findNonDigitCharactersRegExp = new RegExp(findNonDigitCharactersPattern,'g');\n var findFirstCommaAndAllNumbersBehindItPattern = '[\\\\.\\\\,][0-9]*[0-9]';\n var findFirstCommaAndAllNumbersBehindItRegExp = new RegExp(findFirstCommaAndAllNumbersBehindItPattern,'g');\n var purchaseCost = vm.importMapping.column.purchaseCost;\n if (purchaseCost && sheetData[purchaseCost.name]) {\n if (findMultipleSeparatorsRegExp.test(sheetData[purchaseCost.name])) {\n sheetData[purchaseCost.name] = sheetData[purchaseCost.name].replace(findMultipleSeparatorsRegExp, '');\n addAssumptionList('assumptionPurchaseCostMultipleSeparators', $translate.instant('productimport.assumptionPurchaseCostMultipleSeparators'));\n }\n if (findLastCommaRegExp.test(sheetData[purchaseCost.name])) {\n sheetData[purchaseCost.name] = sheetData[purchaseCost.name].replace(findLastCommaRegExp, '.');\n }\n if (isNaN(Number(sheetData[purchaseCost.name]))) {\n //Check if purchaseCost can be parsed to int/decimal\n result = false;\n errorStr = $translate.instant('productimport.errorPurchaseCostContainsInvalidNumber').replace('%1', purchaseCost.name);\n addErrorList('purchaseCost', errorStr, true);\n }\n }\n var salesPrice = vm.importMapping.column.salesPrice;\n if (salesPrice && sheetData[salesPrice.name]) {\n if (findMultipleSeparatorsRegExp.test(sheetData[salesPrice.name])) {\n sheetData[salesPrice.name] = sheetData[salesPrice.name].replace(findMultipleSeparatorsRegExp, '');\n addAssumptionList('assumptionSalesPriceMultipleSeparators', $translate.instant('productimport.assumptionSalesPriceMultipleSeparators'));\n }\n if (findLastCommaRegExp.test(sheetData[salesPrice.name])) {\n sheetData[salesPrice.name] = sheetData[salesPrice.name].replace(findLastCommaRegExp, '.');\n }\n if (isNaN(Number(sheetData[salesPrice.name]))) {\n //Check if salesPrice can be parsed to int/decimal\n result = false;\n errorStr = $translate.instant('productimport.errorSalesPriceContainsInvalidNumber').replace('%1', salesPrice.name);\n addErrorList('salesPrice', errorStr, true);\n }\n }\n var previousPrice = vm.importMapping.column.previousPrice;\n if (previousPrice && sheetData[previousPrice.name]) {\n if (findMultipleSeparatorsRegExp.test(sheetData[previousPrice.name])) {\n sheetData[previousPrice.name] = sheetData[previousPrice.name].replace(findMultipleSeparatorsRegExp, '');\n addAssumptionList('assumptionPreviousPriceMultipleSeparators', $translate.instant('productimport.assumptionPreviousPriceMultipleSeparators'));\n }\n if (findLastCommaRegExp.test(sheetData[previousPrice.name])) {\n sheetData[previousPrice.name] = sheetData[previousPrice.name].replace(findLastCommaRegExp, '.');\n }\n if (isNaN(Number(sheetData[previousPrice.name]))) {\n //Check if previousPrice can be parsed to int/decimal\n result = false;\n errorStr = $translate.instant('productimport.errorPreviousPriceContainsInvalidNumber').replace('%1', previousPrice.name);\n addErrorList('previousPrice', errorStr, true);\n }\n }\n\n if(vm.importFileType === 'orderImport'){\n var quantity = vm.importMapping.column.quantity;\n if(quantity && sheetData[quantity.name]){\n if (findFirstCommaAndAllNumbersBehindItRegExp.test(sheetData[quantity.name])) {\n sheetData[quantity.name] = sheetData[quantity.name].replace(findFirstCommaAndAllNumbersBehindItRegExp, '');\n addAssumptionList('assumptionQuantityMultipleSeparators', $translate.instant('productimport.assumptionQuantityMultipleSeparators'));\n }\n if (findLastCommaRegExp.test(sheetData[quantity.name])) {\n sheetData[quantity.name] = sheetData[quantity.name].replace(findLastCommaRegExp, '.');\n }\n if (isNaN(Number(sheetData[quantity.name]))) {\n //Check if quantity can be parsed to int/decimal\n result = false;\n errorStr = $translate.instant('productimport.errorPreviousPriceContainsInvalidNumber').replace('%1', quantity.name);\n addErrorList('quantity', errorStr, true);\n }\n }\n }\n\n var intrastatCode = vm.importMapping.column.intrastatCode;\n if (intrastatCode && sheetData[intrastatCode.name]) {\n if (findNonDigitCharactersRegExp.test(sheetData[intrastatCode.name])) {\n sheetData[intrastatCode.name] = sheetData[intrastatCode.name].replace(findNonDigitCharactersRegExp, '');\n }\n if (sheetData[intrastatCode.name].length === 8) {\n //Check if intrastatCode has correct length (8 digits will be filled out with zeros)\n sheetData[intrastatCode.name] = sheetData[intrastatCode.name] + '00';\n }\n if (sheetData[intrastatCode.name].length !== 10) {\n //Check if intrastatCode has correct length (10 digits)\n result = false;\n errorStr = $translate.instant('productimport.errorIntrastatCodeHasIncorrectLength').replace('%1', intrastatCode.name);\n addErrorList('intrastatCodeLength', errorStr, true);\n }\n if (isNaN(Number(sheetData[intrastatCode.name]))) {\n //Check if intrastatCode can be parsed to int/decimal\n result = false;\n errorStr = $translate.instant('productimport.errorIntrastatContainsInvalidNumber').replace('%1', intrastatCode.name);\n addErrorList('previousPrice', errorStr, true);\n }\n }\n var plannedDeliveryDate = vm.importMapping.column.plannedDeliveryDate;\n if (plannedDeliveryDate && sheetData[plannedDeliveryDate.name]) {\n //Check if plannedDeliveryDate can be parsed to datetime\n var dat = sheetData[plannedDeliveryDate.name];\n var canParseDate = true;\n if (Object.prototype.toString.call(dat) === \"[object Date]\") {\n // it is a date\n if (isNaN(dat.getTime())) {\n // date is not valid\n canParseDate = false;\n } else {\n // date is valid\n }\n } else {\n // not a date\n canParseDate = false;\n }\n\n if (!canParseDate) {\n result = false;\n errorStr = $translate.instant('productimport.errorCannotParseDeliveryDate').replace('%1', plannedDeliveryDate.name);\n addErrorList('plannedDeliveryDate', errorStr, true);\n }\n }\n });\n\n vm.readyForImport = result;\n\n return result;\n }\n\n function validateMandatoryFields(outputErrors) {\n var result = true;\n vm.errorList = [];\n //vm.assumptionList = [];\n\n if (!vm.JSonAdaptedSheetData || vm.JSonAdaptedSheetData.length === 0) {\n result = false;\n addErrorList('importFileList', $translate.instant('productimport.errorMustReadImportFile'), outputErrors);\n return result;\n }\n if (!vm.productImportRequest.supplier && (!vm.importMapping.column.companyCode || vm.importMapping.column.companyCode.name.trim().length === 0)) {\n result = false;\n addErrorList('supplier', $translate.instant('productimport.errorMustChooseSupplier'), outputErrors);\n }\n if (vm.importFileType === 'orderImport' &&\n !vm.productImportRequest.location && (!vm.importMapping.column.locationCode || vm.importMapping.column.locationCode.name.trim().length === 0)) {\n result = false;\n addErrorList('location', $translate.instant('productimport.errorMustChooseLocation'), outputErrors);\n }\n if (!vm.productImportRequest.articleCollection && (!vm.importMapping.column.articleCollectionCode || vm.importMapping.column.articleCollectionCode.name.trim().length === 0)) {\n result = false;\n addErrorList('articleCollection', $translate.instant('productimport.errorMustChooseSeason'), outputErrors);\n }\n if (vm.importFileType === 'orderImport' &&\n !vm.productImportRequest.orderCollection && (!vm.importMapping.column.orderCollectionCode || vm.importMapping.column.orderCollectionCode.name.trim().length === 0)) {\n result = false;\n addErrorList('orderCollection', $translate.instant('productimport.errorMustChooseSeason'), outputErrors);\n }\n if (vm.importFileType === 'orderImport' && !vm.productImportRequest.plannedDeliveryDate && (!vm.importMapping.column.plannedDeliveryDate || vm.importMapping.column.plannedDeliveryDate.name.trim().length === 0)) {\n result = false;\n addErrorList('plannedDeliveryDate', $translate.instant('productimport.errorMustChooseDeliveryDate'), outputErrors);\n }\n if (vm.importFileType === 'orderImport' && !vm.productImportRequest.quantity && (!vm.importMapping.column.quantity || vm.importMapping.column.quantity.name.trim().length === 0)) {\n result = false;\n addErrorList('quantity', $translate.instant('productimport.errorMustChooseQuantity'), outputErrors);\n }\n if (isEmpty(vm.importMapping) || isEmpty(vm.importMapping.column)) {\n result = false;\n addErrorList('importMapping', $translate.instant('productimport.errorMustChooseMapping'), outputErrors);\n } else {\n if (!vm.importMapping.column.alternativeArticleNumber || vm.importMapping.column.alternativeArticleNumber.name.trim().length === 0) {\n addAssumptionList('assumptionAlternativeArticleNumber', $translate.instant('productimport.assumptionDoNotUseAlternativeArticleNumber'));\n }\n if ((!vm.importMapping.column.purchaseCost || vm.importMapping.column.purchaseCost.name.trim().length === 0) && !vm.usePricesFromExistingProducts.forPurchaseCost) {\n result = false;\n addErrorList('importMappingPurchaseCost', $translate.instant('productimport.errorMustChoosePurchaseCost'), outputErrors);\n }\n if ((!vm.importMapping.column.salesPrice || vm.importMapping.column.salesPrice.name.trim().length === 0) && !vm.usePricesFromExistingProducts.forSalesPrice) {\n result = false;\n addErrorList('importMappingSalesPrice', $translate.instant('productimport.errorMustChooseSalesPrice'), outputErrors);\n }\n if (vm.importMapping.column.salesPrice && (!vm.importMapping.column.previousPrice || vm.importMapping.column.previousPrice.name.trim().length === 0) && !vm.usePricesFromExistingProducts.forPreviousPrice) {\n addAssumptionList('assumptionPreviousPrice', $translate.instant('productimport.assumptionPreviousPriceIsSalesPrice'));\n } else { vm.assumptionList = _.filter(vm.assumptionList, function(ass) { return ass.code !== 'assumptionPreviousPrice'; }); }\n if (!vm.importMapping.column.barcode || vm.importMapping.column.barcode.name.trim().length === 0) {\n addAssumptionList('assumptionBarcode', $translate.instant('productimport.assumptionBarcodeWillBeGenerated'));\n } else { vm.assumptionList = _.filter(vm.assumptionList, function(ass) { return ass.code !== 'assumptionBarcode'; }); }\n }\n\n return result;\n }\n\n function readyForImport() {\n return isEmpty(vm.importMapping) || isEmpty(vm.importMapping.column) || vm.errorList.length > 0;\n }\n\n function isEmpty(obj) {\n // null and undefined are \"empty\"\n if (obj == null) { return true; }\n\n // Assume if it has a length property with a non-zero value\n // that that property is correct.\n if (obj.length > 0) { return false; }\n if (obj.length === 0) { return true; }\n\n // If it isn't an object at this point\n // it is empty, but it can't be anything *but* empty\n // Is it empty? Depends on your application.\n if (typeof obj !== \"object\") { return true; }\n\n // Otherwise, does it have any properties of its own?\n // Note that this doesn't handle\n // toString and valueOf enumeration bugs in IE < 9\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) { return false; }\n }\n\n return true;\n }\n\n function addErrorList(code, message, outputErrors) {\n if (!outputErrors) { return; }\n if (!_.find(vm.errorList, function (error) { return error.code === code; })) {\n vm.errorList.push({ code: code, message: message });\n }\n }\n\n function addAssumptionList(code, message) {\n if (!_.find(vm.assumptionList, function (assumption) { return assumption.code === code; })) {\n vm.assumptionList.push({ code: code, message: message });\n }\n }\n\n function confirmGoToEditor() {\n //Validate\n if (!validateImportFile()) { return; }\n\n //Save mappings\n saveSupplierMapping();\n\n //Confirm assumptions\n if (vm.assumptionList.length > 0) {\n var assumptionMessage = $translate.instant('productimport.confirmAssumptions1') + '<br><br>';\n assumptionMessage += '<ul>';\n _.forEach(vm.assumptionList, function(assumption) {\n assumptionMessage += '<li>' + assumption.message + '</li>';\n });\n assumptionMessage += '</ul>';\n assumptionMessage += $translate.instant('productimport.confirmAssumptions2');\n confirmationDialogService.showDialog(assumptionMessage).then(function (result) {\n if (result === false) {\n return;\n }\n\n goToEditor();\n });\n } else {\n goToEditor();\n }\n }\n\n function changeToImportNewFileView() {\n vm.importType = 'newImportFile';\n }\n\n function changeToUseExistingFileView() {\n vm.importType = 'existingImportFile';\n }\n\n function isPurchasingCurrencyCodePopulated() {\n return (\n vm.productImportRequest.supplier &&\n vm.productImportRequest.supplier.purchasingCurrency &&\n vm.productImportRequest.supplier.purchasingCurrency.code !== undefined &&\n vm.productImportRequest.supplier.purchasingCurrency.code !== null &&\n vm.productImportRequest.supplier.purchasingCurrency.code !== ''\n );\n }\n\n function goToEditor() {\n if (vm.importMapping.column.salesPrice && (!vm.importMapping.column.previousPrice || vm.importMapping.column.previousPrice.name.trim().length === 0)) {\n vm.importMapping.column.previousPrice = angular.copy(vm.importMapping.column.salesPrice);\n }\n\n //Collect product import rows\n vm.productImportRequest.importRows = [];\n vm.productImportRequest.importType = vm.importFileType;\n vm.productImportRequest.isImportingSku = vm.importSku;\n vm.productImportRequest.usePricesFromExistingProducts = vm.usePricesFromExistingProducts;\n vm.productImportRequest.useMainGroupAndBrand = vm.useMainGroupAndBrand;\n\n var mappingKeys = Object.keys(vm.importMapping.column);\n _.forEach(vm.JSonAdaptedSheetData, function(sheetData) {\n var requestRowDto = {\n alternativeArticleNumber: '',\n articleCollectionCode: '',\n articleDescription: '',\n articleName: '',\n articleTypeName: '',\n barcode: '',\n departmentCode: '',\n intrastatCode: '',\n itemGroupCode: '',\n mainGroupCode: '',\n brandCode: '',\n locationCode: '',\n orderCollectionCode: '',\n orderNumberExternal: '',\n plannedDeliveryDate: '',\n previousPrice: '',\n purchaseCost: '',\n quantity: '',\n salesPrice: '',\n subCategory: '',\n companyCode: '',\n variant1Name: '',\n variant2Name: ''\n };\n _.forEach(mappingKeys, function(mapKey) {\n var mapValue = vm.importMapping.column[mapKey];\n if (mapValue && mapValue !== '') {\n requestRowDto[mapKey] = sheetData[mapValue.name];\n }\n });\n\n vm.productImportRequest.importRows.push(requestRowDto);\n });\n\n //Create file\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('productimport.loadingCreatingImportEntry') });\n FileDataImportApiServiceV2.createProductImportEntry(vm.productImportRequest).then(function(response) {\n if (response && response.id !== 0) {\n $state.go('product.productimporteditor', { importFileId: response.id });\n }\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant('productimport.errorWhileCreatingProductImportEntry'), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n}\n\nangular\n .module('product.productimport', [])\n .config(stateConfig)\n .controller('ProductImportController', ProductImportController);\n","angular.module('components.caImportEditorSummary', [])\n .component('caImportEditorSummary', {\n templateUrl: 'main/product/productimporteditor/components/importeditorsummary.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n importFile: '=',\n updateSummary: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope) {\n var vm = this;\n\n //Properties\n vm.showSummaries = true;\n vm.summaries = [];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n function onInit() {\n $scope.$watch(function() { return vm.updateSummary; }, function() {\n recalculateSummaries();\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n function recalculateSummaries() {\n if (vm.importFile && vm.importFile.importRows && vm.importFile.importRows.length > 0) {\n vm.summaries = [];\n var orders = _.groupBy(vm.importFile.importRows, function(row) { return row.orderNumberExternal + row.companyCode + row.locationCode + row.plannedDeliveryDate; });\n if (Object.keys(orders).length > 0 && vm.importFile.importType.toLowerCase() === \"order\") {\n vm.summaries.push({ title: 'common.orders', count: Object.keys(orders).length });\n }\n var products = _.groupBy(vm.importFile.importRows, function(row) { return row.alternativeArticleNumber; });\n if (Object.keys(products).length > 0) {\n vm.summaries.push({ title: 'common.articles', count: Object.keys(products).length });\n }\n var productVariants = _.groupBy(vm.importFile.importRows, function(row) { return row.barcode; });\n if (Object.keys(productVariants).length > 0) {\n vm.summaries.push({ title: 'common.articlevariants', count: Object.keys(productVariants).length });\n }\n var variant1s = _.groupBy(vm.importFile.importRows, function(row) { return row.variant1Name; });\n if (Object.keys(variant1s).length > 0) {\n vm.summaries.push({ title: 'common.variant1s', count: Object.keys(variant1s).length });\n }\n var variant2s = _.groupBy(vm.importFile.importRows, function(row) { return row.variant2Name; });\n if (Object.keys(variant2s).length > 0) {\n vm.summaries.push({ title: 'common.variant2s', count: Object.keys(variant2s).length });\n }\n }\n }\n}\n","angular.module('components.caImportEditorTextDropdown', [])\n .component('caImportEditorTextDropdown', {\n templateUrl: 'main/product/productimporteditor/components/importeditortextdropdown.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n selectionOptions: '<',\n groupRow: '<',\n editProperty: '<',\n onSelectionChanged: '&',\n onFocus: '&',\n onBlur: '&',\n filterFunction: '<',\n backgroundClass: '<'\n },\n controller: controller\n }); \n\n// @ngInject\nfunction controller($scope) {\n var vm = this;\n var numberOfResults = 100;\n\n vm.placeholderModel = {};\n vm.localSelectionOptions = [];\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.selectionChanged = selectionChanged;\n\n vm.refreshSearchItems = refreshSearchItems;\n\n vm.dropDownToggled = dropDownToggled;\n\n function onInit() {\n refreshSearchItems(\"\");\n initializePlaceholderModel();\n\n $scope.$watch(function() { return vm.groupRow[vm.editProperty]; }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n vm.placeholderModel.value = vm.groupRow[vm.editProperty];\n }\n });\n }\n\n function onChanges(changes) {\n\n }\n function onDestroy() {\n }\n\n function initializePlaceholderModel(search) {\n\n vm.placeholderModel = {\n value: vm.groupRow[vm.editProperty],\n fullName: vm.groupRow[vm.editProperty],\n editProperty: vm.editProperty\n };\n }\n\n function refreshSearchItems(searchTerm) {\n vm.localSelectionOptions = [];\n var splitTerms = searchTerm.split(\" \");\n var regexes = [];\n // constructing regex: /.*searchTerm.*/i\n _.forEach(splitTerms, function(term) { regexes.push(new RegExp(\".*\" + term + \".*\", 'i')); });\n\n var items = vm.selectionOption;\n\n _.forEach(regexes, function(regex) {\n items = _.filter(vm.selectionOptions, function(selectionOption) { return selectionOption.fullName.search(regex) !== -1; });\n });\n\n items = vm.filterFunction(items, vm.editProperty, vm.groupRow);\n items = _.take(items, numberOfResults);\n\n if (items.length === 0 && searchTerm.length > 0) {\n items.unshift({\n value: searchTerm,\n fullName: searchTerm\n });\n }\n\n vm.localSelectionOptions = items;\n\n vm.localSelectionOptions.unshift({ value:\"\",fullName:\"\" });\n }\n\n function selectionChanged() {\n vm.onSelectionChanged({groupRow: vm.groupRow, editProperty: vm.editProperty, value: vm.placeholderModel.value});\n }\n\n function dropDownToggled(isOpen) {\n if (isOpen) {\n vm.onFocus({ propertyName: vm.editProperty, groupRow: vm.groupRow });\n } else {\n vm.onBlur({ propertyName: vm.editProperty, groupRow: vm.groupRow });\n }\n }\n\n}\n","angular.module('components.caImportEditorValidationErrors', [])\n .component('caImportEditorValidationErrors', {\n templateUrl: 'main/product/productimporteditor/components/importeditorvalidationerrors.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n validationErrors: '<',\n selectFileRows: '&',\n deselectFileRows: '&',\n validationErrorChangeCount: '=',\n numberOfFilteredRows: '<'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope) {\n var vm = this;\n\n //Properties\n vm.errors = [];\n vm.warnings = [];\n vm.hiddenWarningDisplayMessages = [];\n vm.showWarnings = true;\n vm.showErrors = true;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.selectValidationError = selectValidationError;\n vm.hideWarning = hideWarning;\n vm.getNumberOfShownErrors = getNumberOfShownErrors;\n vm.getNumberOfShownWarnings = getNumberOfShownWarnings;\n vm.resetFilters = resetFilters;\n vm.resetWarnings = resetWarnings;\n\n function onInit() {\n $scope.$watchCollection('vm.validationErrors', function(oldValue, newValue) {\n vm.errors = _.filter(vm.validationErrors, function(validationError) {\n return validationError.severity === 'error';\n });\n vm.warnings = _.filter(vm.validationErrors, function(validationError) {\n return validationError.severity === 'warning';\n });\n // Hide previously hidden messages\n _.forEach(vm.warnings, function(warning) {\n if (_.find(vm.hiddenWarningDisplayMessages, function(w) { return w === warning.displayMessage; })) {\n warning.hide = true;\n }\n });\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n function resetFilters() {\n vm.deselectFileRows();\n }\n\n function hideWarning(warning) {\n warning.hide = true;\n vm.validationErrorChangeCount++;\n // Remember hidden warning messages\n if (!_.find(vm.hiddenWarningDisplayMessages, function(m) { return m === warning.displayMessage; })) {\n vm.hiddenWarningDisplayMessages.push(warning.displayMessage);\n }\n }\n\n function resetWarnings() {\n vm.hiddenWarningDisplayMessages = [];\n _.forEach(vm.warnings, function(warning) {\n warning.hide = false;\n });\n vm.validationErrorChangeCount++;\n }\n\n function selectValidationError(validationError) {\n if (vm.selectFileRows) {\n vm.selectFileRows({ fileRows: validationError.fileRows, displayMessage: validationError.displayMessage });\n }\n }\n\n function getNumberOfShownWarnings() {\n var count = 0;\n _.forEach(vm.warnings, function(warning) {\n if (!warning.hide) {\n count++;\n }\n });\n return count;\n }\n\n function getNumberOfShownErrors() {\n var count = 0;\n _.forEach(vm.errors, function() { count++; });\n return count;\n }\n}\n","angular.module('components.caImportRowsGrid', [])\n .component('caImportRowsGrid', {\n templateUrl: 'main/product/productimporteditor/components/importrowsgrid.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n importFile: '=',\n validationErrors: '=',\n checkResults: '=',\n selectedFileRowIds: '=',\n tenantCurrency: '<',\n onGroupRowChanged: '&',\n validationErrorChangeCount: '=',\n currencies: '<',\n componentRegistrationHandler: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $translate, ToasterService, FileDataImportApiServiceV2, loadSpinnerService, $q) {\n var vm = this;\n\n //Properties\n var lastFocusedFileRow = {};\n var lastBlurredFileRow = {};\n var highlightingPriorities = [\n { name: 'none', priority: 0 },\n { name: 'foundData', priority: 1 },\n { name: 'warning', priority: 2 },\n { name: 'error', priority: 3 }\n ];\n vm.numberOfLoadingRows = 0;\n vm.currentDisplayedGroups = [];\n vm.itemGroupOptions = [];\n vm.CompanyOptions = [];\n vm.departmentOptions = [];\n vm.subCategoryOptions = [];\n vm.articleTypeOptions = [];\n vm.articleCollectionOptions = [];\n vm.orderCollectionOptions = [];\n vm.displayedColumns = [];\n vm.displayedGroups = [];\n vm.currentPage = 1;\n vm.itemsPerPage = 10;\n vm.fixedItemsPerPageChoices = [5, 10, 15, 20, 25];\n // Data model to convey which grid columns exists between the grid, grid rows and grid cells.\n vm.gridColumnIdentifiers = [];\n vm.groupingLevels = [\n { id: 1, label: 'productimport.none', groupingType: 'none' },\n { id: 2, label: 'productimport.product', groupingType: 'article' },\n { id: 3, label: 'productimport.orderNumberExternal', groupingType: 'ordernumberexternal' },\n { id: 4, label: 'productimport.department', groupingType: 'department' },\n { id: 5, label: 'productimport.subCategory', groupingType: 'subcategory' },\n { id: 6, label: 'productimport.itemgroup', groupingType: 'itemGroup' },\n { id: 7, label: 'productimport.intrastat', groupingType: 'intrastat' },\n { id: 8, label: 'productimport.articleCollection', groupingType: 'articleCollection' },\n { id: 9, label: 'productimport.orderCollection', groupingType: 'orderCollection' },\n { id: 10, label: 'productimport.articleType', groupingType: 'articleTypeName' }\n ];\n vm.currentGroupingLevel = vm.groupingLevels[1];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.deleteFileRow = deleteFileRow;\n vm.textInputBoxFocused = textInputBoxFocused;\n vm.textInputBoxBlurred = textInputBoxBlurred;\n vm.fileRowChanged = fileRowChanged;\n vm.groupRowChanged = groupRowChanged;\n vm.deleteGroupRow = deleteGroupRow;\n vm.saveFileRow = saveFileRow;\n vm.saveGroupRow = saveGroupRow;\n vm.updatePage = updatePage;\n vm.updateValue = updateValue;\n vm.getRowInputStyle = getRowInputStyle;\n vm.getRowInputClass = getRowInputClass;\n vm.getInputTooltip = getInputTooltip;\n vm.getPriceInTenantCurrency = getPriceInTenantCurrency; \n vm.filterChoices = filterChoices;\n vm.isInputReadOnly = isInputReadOnly;\n vm.cleanBarcodes = cleanBarcodes;\n\n\n function onInit() {\n setGridColumnIdentifiers();\n getDropdownSelections();\n sortFileRows(vm.importFile);\n setDisplayedRows(vm.importFile.importRows);\n vm.displayedColumns = vm.gridColumnIdentifiers;\n vm.currentDisplayedGroups = [];\n\n validateImportFileWithId(vm.importFile.id);\n\n vm.componentRegistrationHandler({ component: this });\n\n // Watch for new filter information from outside this component\n $scope.$watch(function() { return vm.selectedFileRowIds; }, function() {\n if (vm.selectedFileRowIds.length !== 0) {\n var relevantFileRows = _.filter(vm.importFile.importRows, function(fileRow) {\n return _.find(vm.selectedFileRowIds, function(id) {\n return id === fileRow.id;\n });\n });\n setDisplayedRows(relevantFileRows);\n } else {\n setDisplayedRows(vm.importFile.importRows);\n }\n });\n\n $scope.$watch(function() { return vm.currentGroupingLevel; }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n vm.selectedFileRowIds = [];\n setDisplayedRows(vm.importFile.importRows);\n }\n });\n\n $scope.$watch(function() { return vm.numberOfLoadingRows; }, function(newValue, oldValue) {\n if (newValue !== oldValue && newValue === 0) { // If all rows are done loading\n validateImportFileWithId(vm.importFile.id);\n }\n });\n\n $scope.$watch(function() { return vm.validationErrorChangeCount; }, function(newValue, oldValue) {\n if (newValue !== oldValue) {\n _.forEach(vm.currentDisplayedGroups, function(g) {\n handleInformationHighlighting(g);\n });\n }\n });\n\n $scope.$watch(function() { return vm.itemsPerPage; }, function(newValue, oldValue) {\n if (newValue && newValue !== oldValue) {\n updatePage();\n }\n });\n\n _.forEach(vm.groupingLevels, function(g) {\n g.label = $translate.instant(g.label);\n });\n }\n\n function onChanges(changes) {\n\n }\n\n function onDestroy() {\n\n }\n\n function validateImportFileWithId(importFileId) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('productimport.loadingValidatingImportRows') });\n var promises = [];\n\n var promise = FileDataImportApiServiceV2.validateImportFileWithId(importFileId);\n promises.push(promise);\n\n promise = FileDataImportApiServiceV2.checkImportFileDataExistence(importFileId);\n promises.push(promise);\n\n $q.all(promises).then(function(responses) {\n var validationResults = responses[0];\n handleValidationErrors(validationResults);\n\n if (vm.checkResults) {\n vm.checkResults.length = 0;\n } else {\n vm.checkResults = [];\n }\n _.forEach(responses[1], function(res) {\n vm.checkResults.push(res);\n });\n _.forEach(vm.displayedGroups, function(groupRow) {\n handleInformationHighlighting(groupRow);\n });\n\n }, function(error) {\n ToasterService.showError($translate.instant('productimport.couldntValidateFile'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n\n }\n\n function sortFileRows(importFile) {\n importFile.importRows = _.orderBy(importFile.importRows, function(importRow) {\n return importRow.alternativeArticleNumber;\n }, function(importRow) {\n return importRow.variant1Name;\n }, function(importRow) {\n return importRow.variant2Name;\n });\n }\n\n // Change what rows are displayed in the grid\n function setDisplayedRows(importRows) {\n var relevantEditProperties = [];\n if (vm.currentGroupingLevel.groupingType === 'article') {\n relevantEditProperties = [\n 'alternativeArticleNumber', 'articleName', 'articleDescription', 'articleTypeName', 'itemGroupCode', 'departmentCode', 'purchaseCost',\n 'salesPrice', 'previousPrice', 'currencyCode', 'subCategory', 'articleCollectionCode', 'orderCollectionCode', 'numberOfRows', 'companyCode', 'countryCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'ordernumberexternal') {\n relevantEditProperties = [\n 'orderNumberExternal', 'alternativeArticleNumber', 'articleName', 'articleDescription', 'articleTypeName', 'itemGroupCode', 'departmentCode', 'purchaseCost',\n 'salesPrice', 'previousPrice', 'currencyCode', 'subCategory', 'articleCollectionCode', 'orderCollectionCode', 'numberOfRows', 'companyCode', 'countryCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'department') {\n relevantEditProperties = [\n 'departmentCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'subcategory') {\n relevantEditProperties = [\n 'subCategory'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'articleTypeName') {\n relevantEditProperties = [\n 'articleTypeName'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'itemGroup') {\n relevantEditProperties = [\n 'itemGroupCode', 'companyCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'intrastat') {\n relevantEditProperties = [\n 'intrastatCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'articleCollection') {\n relevantEditProperties = [\n 'articleCollectionCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else if (vm.currentGroupingLevel.groupingType === 'orderCollection') {\n relevantEditProperties = [\n 'orderCollectionCode'\n ];\n groupRowsByRelevantEditProperties(importRows, relevantEditProperties);\n } else {\n // No grouping\n groupRowsByImportFileRow(importRows);\n }\n }\n\n // When one of the input text boxes of the grid is focused.\n function textInputBoxFocused(editPropertyName, fileRow) {\n var lastRowExists = lastFocusedFileRow !== undefined && lastFocusedFileRow.id !== undefined;\n\n if (lastRowExists && lastFocusedFileRow.id !== fileRow.id && !lastBlurredFileRow.isPristine) {\n // validateGroupRow(lastBlurredFileRow);\n saveGroupRow(lastBlurredFileRow);\n }\n lastFocusedFileRow = fileRow;\n }\n\n function textInputBoxBlurred(editPropertyName, fileRow) {\n lastBlurredFileRow = fileRow;\n }\n\n // Remove a row from the import file from the local data model\n function deleteFileRow(fileRow) {\n fileRow.isLoading = true;\n vm.numberOfLoadingRows = vm.numberOfLoadingRows + 1;\n var promise = FileDataImportApiServiceV2.deleteFileRow(fileRow);\n\n promise.then(function(result) {\n fileRow.isPristine = true;\n _.remove(vm.importFile.importRows, function(row) {\n return row.id === fileRow.id;\n });\n }, function(error) {\n ToasterService.showError($translate.instant('productimport.couldNotSaveFileRow'));\n }).finally(function () {\n vm.numberOfLoadingRows = vm.numberOfLoadingRows - 1;\n fileRow.isLoading = false;\n });\n return promise;\n }\n\n function saveFileRow(fileRow) {\n fileRow.isLoading = true;\n vm.numberOfLoadingRows = vm.numberOfLoadingRows + 1;\n var promise = FileDataImportApiServiceV2.updateFileRow(fileRow);\n\n promise.then(function(result) {\n fileRow.isPristine = true;\n }, function(error) {\n ToasterService.showError($translate.instant('productimport.couldNotSaveFileRow'));\n }).finally(function() {\n fileRow.isLoading = false;\n vm.numberOfLoadingRows = vm.numberOfLoadingRows - 1;\n });\n return promise;\n }\n\n // Note down which file rows has changed since last save.\n function fileRowChanged(fileRow) {\n fileRow.isPristine = false;\n if (vm.onGroupRowChanged) {\n vm.onGroupRowChanged();\n }\n }\n\n function groupRowChanged(groupRow, propertyName) {\n if (vm.onGroupRowChanged) {\n vm.onGroupRowChanged();\n }\n groupRow.isPristine = false;\n _.forEach(groupRow.fileRows, function(fileRow) {\n fileRow.isPristine = false;\n fileRow[propertyName] = groupRow[propertyName];\n });\n }\n\n function resetValidationErrors() {\n vm.validationErrors.length = 0;\n vm.validationErrors = [];\n }\n\n // Organize validation errors\n function handleValidationErrors(validationResults) {\n vm.validationErrors = [];\n _.forEach(validationResults, function(res) {\n var fileRow = res.importRow;\n var newValidationErrors = res.validationErrors;\n _.forEach(newValidationErrors, function(validationError) {\n var validationErrorRow = _.find(vm.validationErrors, function(err) { return err.displayMessage === validationError.displayMessage; });\n if (validationErrorRow === undefined) {\n validationErrorRow = validationError;\n validationErrorRow['fileRows'] = [];\n vm.validationErrors.push(validationErrorRow);\n }\n\n if (!_.find(validationErrorRow.fileRows, function(fr) { return fr.id === fileRow.id; })) {\n validationErrorRow.fileRows.push(fileRow);\n }\n });\n });\n }\n\n function groupRowsByRelevantEditProperties(importRows, relevantEditProperties) {\n vm.displayedGroups = [];\n\n vm.displayedColumns = _.filter(vm.gridColumnIdentifiers, function(identifier) {\n return identifier.editPropertyName === undefined ||\n _.find(relevantEditProperties, function(p) { return p === identifier.editPropertyName; });\n });\n\n var groupings = _.groupBy(importRows, function(importRow) {\n var groupingString = \"\";\n _.forEach(relevantEditProperties, function(propertyName) {\n groupingString += importRow[propertyName];\n });\n return groupingString;\n });\n\n var groupingKeys = Object.keys(groupings);\n var counter = 0;\n _.forEach(groupingKeys, function(key) {\n var groupElements = groupings[key];\n var groupRow = {\n fileRows: groupElements,\n isPristine: true,\n isLoading: false,\n id: counter++,\n currencyCode: (groupElements !== undefined) ? groupElements[0].currencyCode : \"?\",\n tenantCurrencyCode: vm.tenantCurrency.code,\n numberOfRows: groupElements.length\n };\n vm.displayedGroups.push(groupRow);\n\n _.forEach(vm.displayedColumns, function(identifier) {\n if (identifier.editPropertyName !== undefined) {\n var importRow = groupRow.fileRows[0];\n groupRow[identifier.editPropertyName] = importRow[identifier.editPropertyName];\n }\n });\n handleInformationHighlighting(groupRow);\n });\n\n updatePage();\n }\n\n function groupRowsByImportFileRow(importRows) {\n vm.displayedColumns = vm.gridColumnIdentifiers;\n vm.displayedGroups = [];\n var counter = 0;\n\n _.forEach(importRows, function(importRow) {\n var group = {\n fileRows: [importRow],\n isPristine: true,\n isLoading: false,\n id: counter++,\n numberOfRows: 1,\n currencyCode: (importRow !== undefined) ? importRow.currencyCode : \"?\",\n tenantCurrencyCode: vm.tenantCurrency.code\n };\n _.forEach(vm.displayedColumns, function(identifier) {\n if (identifier.editPropertyName !== undefined) {\n group[identifier.editPropertyName] = importRow[identifier.editPropertyName];\n }\n });\n vm.displayedGroups.push(group);\n\n handleInformationHighlighting(group);\n });\n\n updatePage();\n }\n\n function saveGroupRow(groupRow) {\n groupRow.isLoading = true;\n var promises = [];\n _.forEach(groupRow.fileRows, function(fileRow) {\n var promise = saveFileRow(fileRow);\n promises.push(promise);\n });\n $q.all(promises).finally(function() {\n groupRow.isPristine = true;\n groupRow.isLoading = false;\n });\n }\n\n function deleteGroupRow(groupRow) {\n _.forEach(groupRow.fileRows, function(fileRow) {\n deleteFileRow(fileRow);\n });\n _.remove(vm.displayedGroups, function(gr) {\n return gr.id === groupRow.id;\n });\n\n _.remove(vm.currentDisplayedGroups, function(gr) {\n return gr.id === groupRow.id;\n });\n }\n\n function updatePage() {\n var page = [];\n var sourceCollection = vm.displayedGroups;\n var itemsPerPage = vm.itemsPerPage;\n var currentPage = vm.currentPage;\n\n var numberOfItems = Math.min(itemsPerPage, sourceCollection.length);\n var startPosition = itemsPerPage * (currentPage - 1);\n var endPosition = (startPosition + numberOfItems) - 1;\n\n for (var i = startPosition; i <= endPosition; i++) {\n if (i >= sourceCollection.length) {\n continue;\n }\n page.push(sourceCollection[i]);\n }\n\n vm.currentDisplayedGroups = page;\n }\n\n function getDropdownSelections() {\n loadSpinnerService.start('mainSpinner');\n\n var onlyCurrentCollections = true;\n\n FileDataImportApiServiceV2.getItemGroupsOnFileId(vm.importFile.id).then(function(result) {\n vm.itemGroupOptions = [];\n\n _.forEach(result, function(ig) {\n vm.itemGroupOptions.push({\n value: ig.itemGroupCode,\n fullName: ig.itemGroupCode + ' ' + ig.itemGroupLongName,\n companyNamnes: ig.brand.companies.map(function(company) { return company.companyName || \"\"; })\n }); });\n\n var itemGroupElement = _.find(vm.gridColumnIdentifiers, function(e) { return e.editPropertyName === 'itemGroupCode'; });\n if (itemGroupElement) {\n itemGroupElement.selectionElements = vm.itemGroupOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getDepartments().then(function(result) {\n\n vm.departmentOptions = [];\n _.forEach(result, function(d) { vm.departmentOptions.push({ value: d.departmentCode, fullName: '' + d.departmentCode + ' ' + d.departmentDescription }); });\n var departmentElement = _.find(vm.gridColumnIdentifiers, function(ci) { return ci.editPropertyName === 'departmentCode'; });\n if (departmentElement) {\n departmentElement.selectionElements = vm.departmentOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getSubCategories().then(function(result) {\n vm.subCategoryOptions = [];\n _.forEach(result, function(sc) { vm.subCategoryOptions.push({ value: sc.subCategoryCode, fullName: '' + sc.subCategoryCode + ' ' + sc.subCategoryName }); });\n var subCategoryElement = _.find(vm.gridColumnIdentifiers, function(ci) { return ci.editPropertyName === 'subCategory'; });\n if (subCategoryElement) {\n subCategoryElement.selectionElements = vm.subCategoryOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getArticleTypes().then(function(result) {\n vm.articleTypeOptions = [];\n _.forEach(result, function(sc) { vm.articleTypeOptions.push({ value: sc.articleTypeName, fullName: '' + sc.articleTypeName + ' (' + sc.articleSystemType + ')' }); });\n var articleTypeElement = _.find(vm.gridColumnIdentifiers, function(ci) { return ci.editPropertyName === 'articleTypeName'; });\n if (articleTypeElement) {\n articleTypeElement.selectionElements = vm.articleTypeOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getOrderCollections(onlyCurrentCollections).then(function(result) {\n vm.orderCollectionOptions = [];\n _.forEach(result, function(oc) { vm.orderCollectionOptions.push({ value: '' + oc.collectionCode, fullName: '' + oc.collectionCode + ' ' + oc.collectionDescription }); });\n var orderCollectionElement = _.find(vm.gridColumnIdentifiers, function(ci) { return ci.editPropertyName === 'orderCollectionCode'; });\n if (orderCollectionElement) {\n orderCollectionElement.selectionElements = vm.orderCollectionOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getArticleCollections(onlyCurrentCollections).then(function(result) {\n vm.articleCollectionOptions = [];\n _.forEach(result, function(ac) { vm.articleCollectionOptions.push({ value: '' + ac.collectionCode, fullName: '' + ac.collectionCode + ' ' + ac.collectionDescription }); });\n var articleCollectionElement = _.find(vm.gridColumnIdentifiers, function(ci) { return ci.editPropertyName === 'articleCollectionCode'; });\n if (articleCollectionElement) {\n articleCollectionElement.selectionElements = vm.articleCollectionOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getCompanies().then(function(result) {\n vm.CompanyOptions = [];\n _.forEach(result, function(company) {\n vm.CompanyOptions.push({ value: company.companyName, fullName: '' + company.companyName });\n });\n var CompanyElement = _.find(vm.gridColumnIdentifiers, function(e) { return e.editPropertyName === 'companyCode'; });\n if (CompanyElement) {\n CompanyElement.selectionElements = vm.CompanyOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getSalesChannels().then(function(result) {\n vm.saleChannelOptions = [];\n _.forEach(result, function(salesChannel) {\n vm.saleChannelOptions.push({id: salesChannel.id, value: salesChannel.salesChannelCode, fullName: `${salesChannel.salesChannelCode} ${salesChannel.salesChannelDescription}`});\n });\n var saleChannelElement = _.find(vm.gridColumnIdentifiers, function(e) { return e.editPropertyName === 'saleChannels'; });\n if (saleChannelElement) {\n saleChannelElement.selectionElements = vm.saleChannelOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n FileDataImportApiServiceV2.getCountries().then(function(result) {\n vm.countryOptions = [];\n _.forEach(result, function(country) {\n vm.countryOptions.push({id: country.id, value: country.code, fullName: `${country.code} ${country.name}`});\n });\n var countryElement = _.find(vm.gridColumnIdentifiers, function(e) { return e.editPropertyName === 'countryCode'; });\n if (countryElement) {\n countryElement.selectionElements = vm.countryOptions;\n }\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n $q.all().finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateValue(groupRow, editProperty, value) {\n if (editProperty === 'companyCode') {\n groupRow['itemGroupCode'] = \"\";\n _.forEach(groupRow.fileRows, function(fileRow) {\n fileRow['itemGroupCode'] = \"\";\n });\n }\n\n groupRow[editProperty] = '' + value;\n _.forEach(groupRow.fileRows, function(fileRow) {\n fileRow[editProperty] = '' + value;\n fileRow.isPristine = false;\n });\n\n groupRow.isPristine = false;\n }\n\n function handleInformationHighlighting(groupRow) {\n _.forEach(groupRow.fileRows, function(fileRow) {\n var relatedCheckRow = _.find(vm.checkResults, function(chk) { return chk.importRowId === fileRow.id; });\n var relatedErrorRows = _.filter(vm.validationErrors, function(error) {\n var hasError = _.some(error.fileRows, function(errorFileRow) { return errorFileRow.id === fileRow.id; });\n return hasError;\n });\n setHighlightingAndType(relatedCheckRow, relatedErrorRows, fileRow, groupRow);\n });\n\n function setHighlightingAndType(dataCheckRow, validationErrors, fileRow, groupRow) {\n groupRow['highlighting'] = [];\n\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('alternativeArticleNumber', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('articleName', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('articleDescription', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('articleTypeName', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('itemGroupCode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('variant1Name', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('variant2Name', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('locationCode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('departmentCode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('quantity', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('purchaseCost', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('salesPrice', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('previousPrice', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('subCategory', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('intrastatCode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('barcode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('externalSku', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('articleCollectionCode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('orderCollectionCode', dataCheckRow, validationErrors, fileRow, groupRow));\n groupRow.highlighting.push(consolidateDataCheckAndValidationErrors('companyCode', dataCheckRow, validationErrors, fileRow, groupRow));\n }\n\n function consolidateDataCheckAndValidationErrors(propertyName, dataCheckRow, validationErrors, fileRow, groupRow) {\n var highlightRow = {\n propertyName: propertyName,\n highlightType: _.minBy(highlightingPriorities, function(p) { return p.priority; }),\n displayMessage: ''\n };\n var dataCheckMatchesRow = (dataCheckRow !== undefined && groupRow !== undefined && dataCheckRow.importRowId === fileRow.id);\n\n var validationErrorsForThisProperty = _.filter(validationErrors, function (e) {\n return !e.hide && _.some(e.properties, function(p) { return p.toLowerCase() === propertyName.toLowerCase(); });\n });\n\n var validationErrorMatchesRow = (validationErrorsForThisProperty.length !== 0);\n\n if (validationErrorMatchesRow) {\n _.forEach(validationErrorsForThisProperty, function(err) {\n highlightRow.displayMessage += $translate.instant(err.displayMessage) + ' -- ';\n highlightRow.highlightType = getHighestHighlightPriority(highlightRow.highlightType, err.severity);\n });\n } else if (dataCheckMatchesRow) {\n\n // barcode and sku exist on different variants\n var shouldShowError = (propertyName === 'barcode' && (dataCheckRow.barcodeExists !== dataCheckRow.externalSkuExists)) || \n (propertyName === 'externalSku' && (dataCheckRow.barcodeExists !== dataCheckRow.externalSkuExists && !dataCheckRow.barcodeExists));\n\n if (shouldShowError) {\n highlightRow.highlightType = _.find(highlightingPriorities, function(p) { return p.name === 'error'; });\n highlightRow.displayMessage = getDataAlreadyExistsErrorMessage(propertyName, groupRow);\n }\n\n\n var shouldHighlight = (propertyName === 'alternativeArticleNumber' && dataCheckRow.alternativeArticleNumberExists) ||\n (propertyName === 'barcode' && dataCheckRow.barcodeExists) || (propertyName === 'externalSku' && dataCheckRow.externalSkuExists);\n if (shouldHighlight && !shouldShowError) {\n highlightRow.highlightType = _.find(highlightingPriorities, function(p) { return p.name === 'foundData'; });\n highlightRow.displayMessage = getDataAlreadyExistsMessage(propertyName, groupRow);\n }\n }\n\n return highlightRow;\n }\n }\n\n function getHighestHighlightPriority(currentPriority, errorSeverity) {\n var priority = _.minBy(highlightingPriorities, function(p) { return p.priority; });\n var errorPriority = _.find(highlightingPriorities, function(p) { return p.name.toLowerCase() === errorSeverity.toLowerCase(); });\n if (errorPriority === undefined) {\n errorPriority = priority;\n }\n if (priority.priority < errorPriority.priority) {\n priority = errorPriority;\n }\n return priority;\n }\n\n function getRowInputStyle(editProperty, groupRow) {\n var style = {};\n var green = '#22BB22';\n var orange = '#e58d22';\n var red = '#e8563c';\n var white ='#ffffff';\n var black = '#000000';\n var transparent = 'transparent';\n var borderWidth = '2px';\n var borderStyle = 'solid';\n\n var highlightElement = _.find(groupRow.highlighting, function(h) { return h.propertyName === editProperty; });\n\n if (highlightElement !== undefined) {\n style['border-width'] = borderWidth;\n style['border-style'] = borderStyle;\n if (highlightElement.highlightType.name === 'error') {\n style['border-color'] = red;\n style['background-color'] = red;\n style['color'] = white;\n } else if (highlightElement.highlightType.name === 'warning') {\n style['border-color'] = orange;\n style['background-color'] = orange;\n style['color'] = white;\n } else if (highlightElement.highlightType.name === 'foundData') {\n style['border-color'] = green;\n style['background-color'] = green;\n style['color'] = white;\n } else if (highlightElement.highlightType.name === 'none') {\n style['border-width'] = '0px';\n style['background-color'] = transparent;\n style['color'] = black;\n }\n }\n\n var doubleWidthColumns = [\n 'alternativeArticleNumber',\n 'articleName',\n 'articleDescription',\n 'variant1Name',\n 'barcode'\n ];\n if (doubleWidthColumns.indexOf(editProperty) > -1) {\n style['width'] = 'max-content';\n style['min-width'] = '150px';\n }\n\n return style;\n }\n\n function getRowInputClass(editProperty, groupRow) {\n var caClass = '';\n\n var highlightElement = _.find(groupRow.highlighting, function(h) { return h.propertyName === editProperty; });\n\n if (highlightElement !== undefined) {\n if (highlightElement.highlightType.name === 'error') {\n caClass = 'caUiSelectErrorBackground';\n } else if (highlightElement.highlightType.name === 'warning') {\n caClass = 'caUiSelectWarningBackground';\n } else if (highlightElement.highlightType.name === 'foundData') {\n caClass = 'caUiSelectFoundDataBackground';\n } else if (highlightElement.highlightType.name === 'none') {\n caClass = '';\n }\n }\n\n return caClass;\n }\n\n function getDataAlreadyExistsMessage(editProperty, groupRow) {\n var tooltipText = '';\n\n if (editProperty === 'alternativeArticleNumber') {\n tooltipText = $translate.instant('productimport.productAlreadyExists');\n }\n if (editProperty === 'barcode') {\n tooltipText = $translate.instant('productimport.barcodeAlreadyExists');\n }\n if (editProperty === 'externalSku') {\n tooltipText = $translate.instant('productimport.skuAlreadyExists');\n }\n\n return tooltipText;\n }\n\n function getDataAlreadyExistsErrorMessage(editProperty) {\n var tooltipText = '';\n\n if (editProperty === 'barcode') {\n tooltipText = $translate.instant('productimport.SkuAndBarcodeInDifferentArticles');\n }\n if (editProperty === 'externalSku') {\n tooltipText = $translate.instant('productimport.SkuAndBarcodeInDifferentArticles');\n }\n\n return tooltipText;\n }\n\n function getInputTooltip(editProperty, groupRow) {\n var message = '';\n var highlightElement = _.find(groupRow.highlighting, function(h) { return h.propertyName === editProperty; });\n if (highlightElement !== undefined) {\n message = highlightElement.displayMessage;\n if (highlightElement.propertyName === 'itemGroupCode' && message === '' && vm.itemGroupOptions.length > 0 && groupRow.itemGroupCode) {\n var itemGroup = _.find(vm.itemGroupOptions, function(o) { return o.value === groupRow.itemGroupCode; });\n if (itemGroup !== undefined) {\n message = itemGroup.fullName;\n } else {\n message = 'Itemgroup \\'' + groupRow.itemGroupCode + '\\' was not found';\n }\n } else if (highlightElement.propertyName === 'departmentCode' && message === '' && vm.departmentOptions.length > 0 && groupRow.departmentCode) {\n var department = _.find(vm.departmentOptions, function(o) { return o.value === groupRow.departmentCode; });\n if (department !== undefined) {\n message = department.fullName;\n } else {\n message = 'Department \\'' + groupRow.departmentCode + '\\' was not found';\n }\n } else if (highlightElement.propertyName === 'subCategory' && message === '' && vm.subCategoryOptions.length > 0 && groupRow.subCategory) {\n var subCategory = _.find(vm.subCategoryOptions, function(o) { return o.value === groupRow.subCategory; });\n if (subCategory !== undefined) {\n message = subCategory.fullName;\n } else {\n message = 'Subcategory \\'' + groupRow.subCategory + '\\' was not found';\n }\n } else if (highlightElement.propertyName === 'articleTypeName' && message === '' && vm.articleTypeOptions.length > 0 && groupRow.articleTypeName) {\n var articleType = _.find(vm.articleTypeOptions, function(o) { return o.value === groupRow.articleTypeName; });\n if (articleType !== undefined) {\n message = articleType.fullName;\n } else {\n message = 'Product type \\'' + groupRow.articleTypeName + '\\' was not found';\n }\n } else if (highlightElement.propertyName === 'articleCollectionCode' && message === '' && vm.articleCollectionOptions.length > 0 && groupRow.articleCollectionCode) {\n var articleCollection = _.find(vm.articleCollectionOptions, function(o) { return o.value === groupRow.articleCollectionCode; });\n if (articleCollection !== undefined) {\n message = articleCollection.fullName;\n } else {\n message = 'Product collection \\'' + groupRow.articleCollectionCode + '\\' was not found';\n }\n } else if (highlightElement.propertyName === 'orderCollectionCode' && message === '' && vm.orderCollectionOptions.length > 0 && groupRow.orderCollectionCode) {\n var orderCollection = _.find(vm.orderCollectionOptions, function(o) { return o.value === groupRow.orderCollectionCode; });\n if (orderCollection !== undefined) {\n message = orderCollection.fullName;\n } else {\n message = 'Order collection \\'' + groupRow.orderCollectionCode + '\\' was not found';\n }\n }\n }\n\n var doubleWidthColumns = [\n 'alternativeArticleNumber',\n 'articleName',\n 'articleDescription',\n 'variant1Name',\n 'barcode'\n ];\n if (doubleWidthColumns.indexOf(editProperty) > -1 &&\n groupRow[editProperty] &&\n groupRow[editProperty].length > 30 &&\n message.length === 0\n ) {\n message = groupRow[editProperty];\n }\n\n return message;\n }\n\n function getPriceInTenantCurrency(editProperty, groupRow) {\n var rowCurrencyCode = groupRow.currencyCode;\n var rowCurrency = _.find(vm.currencies, function(currency) { return currency.code === rowCurrencyCode });\n var foreignPrice = groupRow[editProperty]\n var tenantDefaultCurrency = vm.tenantCurrency;\n var shouldCalculateLocalCurrency = (editProperty === 'purchaseCost');\n\n if (tenantDefaultCurrency.id != rowCurrency.id && shouldCalculateLocalCurrency) \n {\n return (foreignPrice * rowCurrency.currencyRate).toString() + ` ${tenantDefaultCurrency.code}` ;\n }\n return foreignPrice + ` ${tenantDefaultCurrency.code}`;\n }\n\n function filterChoices(collection, editProperty, groupRow) {\n if (editProperty === 'itemGroupCode') {\n var companyName = groupRow['companyCode'];\n if (companyName !== undefined && companyName !== '') {\n return collection.filter(function(item) {\n return item.companyNamnes.includes(String(companyName));\n });\n }\n }\n\n return collection;\n }\n\n function isInputReadOnly(editPropertyName, groupRow){\n if(!vm.checkResults) return false\n if(editPropertyName === 'externalSku'){\n var alreadyExistingVariant = vm.checkResults.find(x => x.externalSku === groupRow.externalSku)\n if (alreadyExistingVariant && alreadyExistingVariant.externalSkuExists) {\n return true;\n }\n }\n return false\n }\n\n function cleanBarcodes() {\n // vm.importFile.importRows;\n _.forEach(vm.importFile.importRows, function(row) {\n row.barcode = removeDisallowedCharacters(row.barcode);\n row.isPristine = false;\n });\n\n _.forEach(vm.displayedGroups, function(group) {\n group.barcode = removeDisallowedCharacters(group.barcode);\n });\n }\n\n function removeDisallowedCharacters(string) {\n return string.replace(/[^a-zA-Z0-9-]/g, '');\n }\n\n function setGridColumnIdentifiers() {\n vm.gridColumnIdentifiers = [];\n\n vm.gridColumnIdentifiers.push({ label: '', /* Has no edit property */ inputElementType: 'refresh' /* Has no selection elements */ });\n if (vm.importFile.importType === 'order') {\n vm.gridColumnIdentifiers.push({ label: 'order.ordernumber', editPropertyName: 'orderNumberExternal', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'order.destination', editPropertyName: 'locationCode', inputElementType: 'string' /* Has no selection elements */ });\n }\n vm.gridColumnIdentifiers.push({ label: 'article.alternativearticlenumber', editPropertyName: 'alternativeArticleNumber', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.articlename', editPropertyName: 'articleName', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.descriptionShort', editPropertyName: 'articleDescription', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.itemgroup', editPropertyName: 'itemGroupCode', inputElementType: 'textdropdown', selectionElements: [] });\n vm.gridColumnIdentifiers.push({ label: 'article.variantdetail1', editPropertyName: 'variant1Name', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.variantdetail2', editPropertyName: 'variant2Name', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.department', editPropertyName: 'departmentCode', inputElementType: 'textdropdown', selectionElements: [] });\n\n if (vm.importFile.importType === 'order') {\n vm.gridColumnIdentifiers.push({ label: 'article.totalquantity', editPropertyName: 'quantity', inputElementType: 'string' /* Has no selection elements */ });\n }\n\n vm.gridColumnIdentifiers.push({ label: 'article.purchasecost', editPropertyName: 'purchaseCost', inputElementType: 'price' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.salesprice', editPropertyName: 'salesPrice', inputElementType: 'price' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.previousprice', editPropertyName: 'previousPrice', inputElementType: 'price' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.subcategory', editPropertyName: 'subCategory', inputElementType: 'textdropdown', selectionElements: [] });\n vm.gridColumnIdentifiers.push({ label: 'article.articletype', editPropertyName: 'articleTypeName', inputElementType: 'textdropdown', selectionElements: [] });\n vm.gridColumnIdentifiers.push({ label: 'article.intrastatnumber', editPropertyName: 'intrastatCode', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.barcode', editPropertyName: 'barcode', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'productimport.externalSku', editPropertyName: 'externalSku', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'productimport.supplierSku', editPropertyName: 'supplierSku', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.countryCode', editPropertyName: 'countryCode', inputElementType: 'textdropdown', selectionElements: [] });\n\n vm.gridColumnIdentifiers.push({ label: 'order.collection', editPropertyName: 'articleCollectionCode', inputElementType: 'textdropdown', selectionElements: [] });\n\n if (vm.importFile.importType === 'order') {\n vm.gridColumnIdentifiers.push({ label: 'common.orderCollection', editPropertyName: 'orderCollectionCode', inputElementType: 'textdropdown', selectionElements: [] });\n }\n\n vm.gridColumnIdentifiers.push({ label: 'productimport.companyCode', editPropertyName: 'companyCode', inputElementType: 'textdropdown', selectionElements: [] });\n vm.gridColumnIdentifiers.push({ label: 'article.length', editPropertyName: 'length', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.height', editPropertyName: 'height', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.width', editPropertyName: 'width', inputElementType: 'string' /* Has no selection elements */ });\n vm.gridColumnIdentifiers.push({ label: 'article.weight', editPropertyName: 'weight', inputElementType: 'string' /* Has no selection elements */ });\n\n vm.gridColumnIdentifiers.push({ label: 'import.removerow', /* Has no edit property */ inputElementType: 'delete' /* Has no selection elements */ });\n }\n\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.productimporteditor', {\n url: '/productimporteditor/{importFileId}',\n views: {'wideColumnView@product': {\n templateUrl: 'main/product/productimporteditor/productimporteditor.tpl.html',\n controller: 'ProductImportEditorController as vm'\n }},\n resolve: {\n importFile: importFileResolver,\n defaultCurrency: defaultCurrencyResolver,\n locations: locationsResolver,\n currencies: currenciesResolver\n }\n });\n}\n\n// @ngInject\nfunction importFileResolver($stateParams, FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getImportFile($stateParams.importFileId);\n}\n\n// @ngInject\nfunction defaultCurrencyResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getCurrencyDefault();\n}\n\n// @ngInject\nfunction locationsResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getLocations();\n}\n\n// @ngInject\nfunction currenciesResolver(FileDataImportApiServiceV2) {\n return FileDataImportApiServiceV2.getCurrencies();\n}\n\n// @ngInject\nfunction ProductImportEditorController(importFile, FileDataImportApiServiceV2, ToasterService, loadSpinnerService, \n confirmationDialogService, informationDialogService, $translate, $state, defaultCurrency, $q, locations, FeatureSwitchService,\n importFinalizationDialogService, currencies) {\n var vm = this;\n var criticalSeverityLevels = ['error'];\n\n //Properties\n vm.importFile = importFile;\n vm.validationErrors = [];\n vm.dataCheckResults = [];\n vm.selectedFileRowIds = [];\n vm.importUpdateCount = 0;\n vm.defaultCurrency = defaultCurrency;\n vm.selectedDisplayMessage = '';\n vm.validationErrorChangeCount = 0;\n vm.locations = locations;\n vm.selectedLocation = {};\n vm.showAdvancedFunctionsPanel = false;\n vm.hasAdvancedImportModule = FeatureSwitchService.hasAdvancedImport();\n vm.currencies = currencies;\n vm.importGridComponent = {};\n\n //Methods\n vm.selectFileRows = selectFileRows;\n vm.resetSelectedImportRows = resetSelectedImportRows;\n vm.isAllowedToFinalize = isAllowedToFinalize;\n vm.isAllowedToSave = isAllowedToSave;\n vm.saveImportFile = saveImportFile;\n vm.shouldShowValidationErrorsPanel = shouldShowValidationErrorsPanel;\n vm.finalizeImportFile = finalizeImportFile;\n vm.showFinalizeDialog = showFinalizeDialog;\n vm.updateImportSummary = updateImportSummary;\n vm.checkForConnectionWithArticleData = checkForConnectionWithArticleData;\n vm.getMissingSiblingRows = getMissingSiblingRows;\n vm.getPdfLabels = getPdfLabels;\n vm.registerImportGridComponent = registerImportGridComponent;\n vm.removeIncorrectCharactersFromBarcodes = removeIncorrectCharactersFromBarcodes\n \n // Methonds on child components (only available after component initialization)\n var cleanBarcodes = function(){}; // Will hold the function from importrowsgrid.component.js once its initialized\n\n activate();\n\n function activate() {\n setAllRowsPristine();\n }\n\n function showColumn(list, maxResults, field1, field2) {\n var columnVisible = false;\n for (let i = 0; i < Math.min(list.length, maxResults); i++) {\n const element = list[i];\n if (element[field1] !== element[field2]) { columnVisible = true; }\n }\n return columnVisible;\n }\n\n function removeIncorrectCharactersFromBarcodes() {\n confirmationDialogService.showDialog($translate.instant(\"import.cleanbarcodesconfirmation\")).then(function (result) {\n if (result === true) {\n cleanBarcodes();\n }\n });\n }\n\n function registerImportGridComponent(component) {\n cleanBarcodes = component.cleanBarcodes;\n }\n\n function checkForConnectionWithArticleData() {\n var request = {\n importFileId: vm.importFile.id\n };\n var message = '';\n FileDataImportApiServiceV2.checkForConnectionWithArticleData(request).then(function(response) {\n if (response.vitalChanges && response.vitalChanges.length > 0) {\n var maxResults = 20;\n message = $translate.instant(\"productimport.foundTheFollowingChangesToArticleData\") + '. ';\n if (response.vitalChanges.length > maxResults) {\n //var str = 'Visar endast de första {0} skillnaderna';\n var str = $translate.instant('productimport.showingOnlyTheFirstXResults');\n str = str.replace(/\\{0\\}/, maxResults);\n message += str + '.';\n }\n message += '<br><br>';\n\n message += $translate.instant('productimport.confirmConnectWithArticleDataWillOverwriteImportFileData');\n message += '<br><br>';\n\n message += '<table class=\"table\" style=\"width:100%;\">';\n message += '<thead><tr>';\n message += '<th>' + $translate.instant('productimport.barcode') + '</th>';\n message += '<th> </th>';\n if (showColumn(response.vitalChanges, maxResults, 'currentItemGroupCode', 'suggestedItemGroupCode')) { message += '<th>' + $translate.instant('productimport.itemgroup') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentAlternativeArticleNumber', 'suggestedAlternativeArticleNumber')) { message += '<th>' + $translate.instant('productimport.alternativeArticleNumber') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentArticleName', 'suggestedArticleName')) { message += '<th>' + $translate.instant('productimport.articleName') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentArticleDescription', 'suggestedArticleDescription')) { message += '<th>' + $translate.instant('productimport.articleDescription') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentVariant1Name', 'suggestedVariant1Name')) { message += '<th>' + $translate.instant('productimport.variant1Name') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentVariant2Name', 'suggestedVariant2Name')) { message += '<th>' + $translate.instant('productimport.variant2Name') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentDepartmentCode', 'suggestedDepartmentCode')) { message += '<th>' + $translate.instant('productimport.department') + '</th>'; }\n if (showColumn(response.vitalChanges, maxResults, 'currentSubCategoryCode', 'suggestedSubCategoryCode')) { message += '<th>' + $translate.instant('productimport.subCategory') + '</th>'; }\n message += '</tr></thead>';\n\n for (let i = 0; i < Math.min(response.vitalChanges.length, maxResults); i++) {\n const vitalChange = response.vitalChanges[i];\n\n var showItemGroupCode = vitalChange.currentItemGroupCode !== vitalChange.suggestedItemGroupCode;\n var currentItemGroupCode = vitalChange.currentItemGroupCode ? vitalChange.currentItemGroupCode : '';\n var suggestedItemGroupCode = vitalChange.suggestedItemGroupCode ? vitalChange.suggestedItemGroupCode : '';\n if (currentItemGroupCode.length === 0 && suggestedItemGroupCode.length > 0) { currentItemGroupCode = '(' + $translate.instant('common.empty') + ')'; }\n\n var showAlternativeArticleNumber = vitalChange.currentAlternativeArticleNumber !== vitalChange.suggestedAlternativeArticleNumber;\n var currentAlternativeArticleNumber = vitalChange.currentAlternativeArticleNumber ? vitalChange.currentAlternativeArticleNumber : '';\n var suggestedAlternativeArticleNumber = vitalChange.suggestedAlternativeArticleNumber ? vitalChange.suggestedAlternativeArticleNumber : '';\n if (currentAlternativeArticleNumber.length === 0 && suggestedAlternativeArticleNumber.length > 0) { currentAlternativeArticleNumber = '(' + $translate.instant('common.empty') + ')'; }\n\n var showArticleName = vitalChange.currentArticleName !== vitalChange.suggestedArticleName;\n var currentArticleName = vitalChange.currentArticleName ? vitalChange.currentArticleName : '';\n var suggestedArticleName = vitalChange.suggestedArticleName ? vitalChange.suggestedArticleName : '';\n if (currentArticleName.length === 0 && suggestedArticleName.length > 0) { currentArticleName = '(' + $translate.instant('common.empty') + ')'; }\n\n var showArticleDescription = vitalChange.currentArticleDescription !== vitalChange.suggestedArticleDescription;\n var currentArticleDescription = vitalChange.currentArticleDescription ? vitalChange.currentArticleDescription : '';\n var suggestedArticleDescription = vitalChange.suggestedArticleDescription ? vitalChange.suggestedArticleDescription : '';\n if (currentArticleDescription.length === 0 && suggestedArticleDescription.length > 0) { currentArticleDescription = '(' + $translate.instant('common.empty') + ')'; }\n\n var showVariant1Name = vitalChange.currentVariant1Name !== vitalChange.suggestedVariant1Name;\n var currentVariant1Name = vitalChange.currentVariant1Name ? vitalChange.currentVariant1Name : '';\n var suggestedVariant1Name = vitalChange.suggestedVariant1Name ? vitalChange.suggestedVariant1Name : '';\n if (currentVariant1Name.length === 0 && suggestedVariant1Name.length > 0) { currentVariant1Name = '(' + $translate.instant('common.empty') + ')'; }\n\n var showVariant2Name = vitalChange.currentVariant2Name !== vitalChange.suggestedVariant2Name;\n var currentVariant2Name = vitalChange.currentVariant2Name ? vitalChange.currentVariant2Name : '';\n var suggestedVariant2Name = vitalChange.suggestedVariant2Name ? vitalChange.suggestedVariant2Name : '';\n if (currentVariant2Name.length === 0 && suggestedVariant2Name.length > 0) { currentVariant2Name = '(' + $translate.instant('common.empty') + ')'; }\n\n var showDepartmentCode = vitalChange.currentDepartmentCode !== vitalChange.suggestedDepartmentCode;\n var currentDepartmentCode = vitalChange.currentDepartmentCode ? vitalChange.currentDepartmentCode : '';\n var suggestedDepartmentCode = vitalChange.suggestedDepartmentCode ? vitalChange.suggestedDepartmentCode : '';\n if (currentDepartmentCode.length === 0 && suggestedDepartmentCode.length > 0) { currentDepartmentCode = '(' + $translate.instant('common.empty') + ')'; }\n\n var showSubCategoryCode = vitalChange.currentSubCategoryCode !== vitalChange.suggestedSubCategoryCode;\n var currentSubCategoryCode = vitalChange.currentSubCategoryCode ? vitalChange.currentSubCategoryCode : '';\n var suggestedSubCategoryCode = vitalChange.suggestedSubCategoryCode ? vitalChange.suggestedSubCategoryCode : '';\n if (currentSubCategoryCode.length === 0 && suggestedSubCategoryCode.length > 0) { currentSubCategoryCode = '(' + $translate.instant('common.empty') + ')'; }\n\n message += '<tr>';\n message += '<td>' + vitalChange.barcode + '</td>';\n message += '<td>' + $translate.instant('productimport.currentValue') + ':</td>';\n if (showItemGroupCode) { message += '<td>' + currentItemGroupCode + '</td>'; }\n if (showAlternativeArticleNumber) { message += '<td>' + currentAlternativeArticleNumber + '</td>'; }\n if (showArticleName) { message += '<td>' + currentArticleName + '</td>'; }\n if (showArticleDescription) { message += '<td>' + currentArticleDescription + '</td>'; }\n if (showVariant1Name) { message += '<td>' + currentVariant1Name + '</td>'; }\n if (showVariant2Name) { message += '<td>' + currentVariant2Name + '</td>'; }\n if (showDepartmentCode) { message += '<td>' + currentDepartmentCode + '</td>'; }\n if (showSubCategoryCode) { message += '<td>' + currentSubCategoryCode + '</td>'; }\n message += '</tr>';\n\n message += '<tr>';\n message += '<td> </td>';\n message += '<td>' + $translate.instant('productimport.suggestedValue') + ':</td>';\n if (showItemGroupCode) { message += '<td>' + suggestedItemGroupCode + '</td>'; }\n if (showAlternativeArticleNumber) { message += '<td>' + suggestedAlternativeArticleNumber + '</td>'; }\n if (showArticleName) { message += '<td>' + suggestedArticleName + '</td>'; }\n if (showArticleDescription) { message += '<td>' + suggestedArticleDescription + '</td>'; }\n if (showVariant1Name) { message += '<td>' + suggestedVariant1Name + '</td>'; }\n if (showVariant2Name) { message += '<td>' + suggestedVariant2Name + '</td>'; }\n if (showDepartmentCode) { message += '<td>' + suggestedDepartmentCode + '</td>'; }\n if (showSubCategoryCode) { message += '<td>' + suggestedSubCategoryCode + '</td>'; }\n message += '</tr>';\n }\n\n message += '</table>';\n\n confirmationDialogService.showDialog(message).then(function (result) {\n if (result === true) {\n connectWithArticleData();\n }\n });\n } else {\n ToasterService.showSuccess($translate.instant('productimport.foundNoChangesToArticleData'));\n }\n }, function(error) {\n ToasterService.showError($translate.instant('productimport.couldNotCheckForConnectionWithArticleData'));\n }).finally(function() {\n });\n }\n\n function getMissingSiblingRows() \n {\n var request = { \n importFileId: vm.importFile.id,\n grouping: \"Color\",\n rows:[] \n };\n\n _.forEach(vm.importFile.importRows, function(row) {\n request.rows.push({\n barcode: row.barcode,\n salesPrice: row.salesPrice,\n purchaseCost: row.purchaseCost,\n productImportId: vm.importFile.id\n });\n });\n\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiServiceV2.getMissingSiblingRows(request).then(function(response) {\n ToasterService.showSuccess($translate.instant('success'));\n var rows = response.data;\n\n _.forEach(rows, function(r) { \n r.isAutoGeneratedSiblingRow = true;\n vm.importFile.importRows.push(r); \n });\n\n refreshView();\n }, function(error) {\n ToasterService.showError($translate.instant('failure'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function refreshView() {\n vm.importUpdateCount++;\n resetSelectedImportRows();\n }\n\n function getPdfLabels() {\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiServiceV2.getPdfLabels(vm.importFile.id, vm.selectedLocation.id).then(function(response) {\n ToasterService.showSuccess($translate.instant('success'));\n },function(error) {\n ToasterService.showError($translate.instant('failure'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n\n }\n\n function connectWithArticleData() {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('productimport.connectingToArticleData') });\n var request = {\n importFileId: vm.importFile.id\n };\n FileDataImportApiServiceV2.connectWithArticleData(request).then(function(response) {\n ToasterService.showSuccess($translate.instant('productimport.connectWithArticleDataSuccessful'));\n $state.reload();\n }, function(error) {\n ToasterService.showError($translate.instant('productimport.couldNotConnectWithArticleData'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function selectFileRows(fileRows, displayMessage) {\n vm.selectedFileRowIds = [];\n vm.selectedDisplayMessage = displayMessage;\n _.forEach(fileRows, function(fileRow) {\n vm.selectedFileRowIds.push(fileRow.id);\n });\n }\n\n function resetSelectedImportRows() {\n vm.selectedFileRowIds = [];\n vm.selectedDisplayMessage = '';\n }\n\n function isAllowedToFinalize() {\n // Find errors that is severe enough that the file cannot be finalized.\n var isAllowedToFinalize = true;\n var criticalErrors = getCriticalErrors();\n\n if (criticalErrors.length !== 0) {\n isAllowedToFinalize = false;\n }\n return isAllowedToFinalize;\n }\n\n function isAllowedToSave() {\n return true;\n }\n\n function saveImportFile() {\n var fileRowsToSave = [];\n\n _.forEach(vm.importFile.importRows, function(row) {\n if (!row.isPristine) {\n fileRowsToSave.push(row);\n row.productImportId = vm.importFile.id;\n }\n });\n\n loadSpinnerService.start('mainSpinner');\n FileDataImportApiServiceV2.updateFileRows(fileRowsToSave).then(function(response) {\n _.forEach(response, function(r) {\n var localRow = _.find(vm.importFile.importRows, function(row) { return row.id === r.id; });\n localRow.isPristine = true;\n });\n\n if (response.length === 0) {\n ToasterService.showWarning($translate.instant('productimport.noChangesToSave'));\n } else {\n validateImportFileWithId(vm.importFile.id);\n }\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function validateImportFileWithId(importFileId) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('productimport.loadingValidatingImportRows') });\n var promises = [];\n\n var promise = FileDataImportApiServiceV2.validateImportFileWithId(importFileId);\n promises.push(promise);\n\n promise = FileDataImportApiServiceV2.checkImportFileDataExistence(importFileId);\n promises.push(promise);\n\n $q.all(promises).then(function(responses) {\n vm.validationErrors = [];\n handleValidationErrors(responses[0]);\n\n vm.dataCheckResults = [];\n _.forEach(responses[1], function(res) {\n vm.dataCheckResults.push(res);\n });\n\n vm.validationErrorChangeCount++;\n }, function(error) {\n ToasterService.showError($translate.instant('productimport.couldntValidateFile'), \n $translate.instant('inventory.error') + ':', 15000);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function handleValidationErrors(validationResults) {\n vm.validationErrors = [];\n _.forEach(validationResults, function(res) {\n var fileRow = res.importRow;\n var newValidationErrors = res.validationErrors;\n _.forEach(newValidationErrors, function(validationError) {\n var validationErrorRow = _.find(vm.validationErrors, function(err) { return err.displayMessage === validationError.displayMessage; });\n if (validationErrorRow === undefined) {\n validationErrorRow = validationError;\n validationErrorRow['fileRows'] = [];\n vm.validationErrors.push(validationErrorRow);\n }\n\n if (!_.find(validationErrorRow.fileRows, function(fr) { return fr.id === fileRow.id; })) {\n validationErrorRow.fileRows.push(fileRow);\n }\n });\n });\n }\n\n function shouldShowValidationErrorsPanel() {\n var showErrorsPanel = false;\n var criticalErrors = getCriticalErrors();\n var nonHiddenWarnings = _.filter(vm.validationErrors, function(validationError) {\n return validationError.severity === 'warning' && !validationError.hide;\n });\n\n if (nonHiddenWarnings.length + criticalErrors.length > 0) {\n showErrorsPanel = true;\n }\n return showErrorsPanel;\n }\n\n function showFinalizeDialog() {\n if (vm.hasAdvancedImportModule) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('productimport.verifying') });\n FileDataImportApiServiceV2.existsSiblingPrices(vm.importFile.id).then(function(response) {\n if (response.data === true) {\n importFinalizationDialogService.showDialog().then(function(dialogResponse) {\n finalizeImportFile(dialogResponse);\n });\n } else {\n finalizeImportFile();\n }\n }).finally(function() { loadSpinnerService.stop('mainSpinner'); });\n } else {\n finalizeImportFile();\n }\n }\n\n function finalizeImportFile(priceUpdateGroupingLevel) {\n loadSpinnerService.start('mainSpinner', { message: $translate.instant('productimport.finalizingImport') });\n FileDataImportApiServiceV2.finalizeImport(vm.importFile.id, priceUpdateGroupingLevel).then(function(response) {\n ToasterService.showSuccess($translate.instant('productimport.finalizationSuccessful'));\n $state.go('product.productimport');\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('inventory.error') + ':', 15000);\n ToasterService.showError($translate.instant('productimport.couldNotFinalizeImport'), $translate.instant('inventory.error') + ':', 15000);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getCriticalErrors() {\n var criticalErrors = _.filter(vm.validationErrors, function(validationError) {\n return (_.find(criticalSeverityLevels, function(errorType) { return validationError.severity === errorType; }) !== undefined);\n });\n return criticalErrors;\n }\n\n function setAllRowsPristine() {\n _.forEach(vm.importFile.importRows, function(row) {\n row.isPristine = true;\n });\n }\n\n function updateImportSummary() {\n vm.importUpdateCount++;\n }\n}\n\nangular\n.module('product.productimporteditor', [])\n.config(stateConfig)\n.controller('ProductImportEditorController', ProductImportEditorController);\n","// @ngInject\nfunction ProductsApiService($q, $rootScope, DS, DSHttpAdapter, ResourcesService, $cookies, $window) {\n\n var endpoint = 'products';\n\n return {\n createProduct: ResourcesService.apiFactory.create(endpoint, 'Product'),\n downloadArticleLabels: downloadArticleLabels,\n downloadArticleVariantLabels: downloadArticleVariantLabels,\n getAccounts: ResourcesService.apiFactory.get(endpoint + '/accounts'),\n getArticleCollections: ResourcesService.apiFactory.get(endpoint + '/articlecollections'),\n getArticleTypes: ResourcesService.apiFactory.get(endpoint + '/articletypes'),\n getCountries: ResourcesService.apiFactory.get(endpoint + '/countries'),\n getCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies'),\n getDefaultCurrency: ResourcesService.apiFactory.get(endpoint + '/tenantdefault'),\n getIntrastats: ResourcesService.apiFactory.get(endpoint + '/intrastats'),\n getItemGroup: ResourcesService.apiFactory.get(endpoint + '/itemgroup'),\n getItemGroups: ResourcesService.apiFactory.get(endpoint + '/itemgroups'),\n getItemGroupBriefs: ResourcesService.apiFactory.get(endpoint + '/itemgroupbriefs'),\n getItemGroupFlats: ResourcesService.apiFactory.get(endpoint + '/itemgroupflats'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getMainGroup: ResourcesService.apiFactory.get(endpoint + '/maingroup'),\n getOrderCollections: ResourcesService.apiFactory.get(endpoint + '/ordercollections'),\n getProduct: ResourcesService.apiFactory.get(endpoint),\n getProducts: getProducts,\n getProductIds: getProductIds,\n getProductPrices: getProductPrices,\n //getProductStocks: getProductStocks,\n getProductStocks: ResourcesService.apiFactory.get('stock/productstock/'),\n getProductStockLocations: getProductStockLocations,\n getProductVariants: getProductVariants,\n getProductVariantsInTransitValues: getProductVariantsInTransitValues,\n getProductVariantsStocks: getProductVariantsStocks,\n getProductClasses: ResourcesService.apiFactory.get(endpoint + '/articleclasses'),\n getRights: ResourcesService.apiFactory.get('/rights'),\n getSalesChannels: ResourcesService.apiFactory.get(endpoint + '/saleschannels'),\n getSuppliers: getSuppliers,\n getVariant: ResourcesService.apiFactory.get(endpoint + '/variant'),\n // getMultipliers: ResourcesService.apiFactory.get(endpoint + '/multipliers'),\n getMultipliers: getMultipliers,\n ReadMultipliersToEdit: ReadMultipliersToEdit,\n updateMonthMultiplier: updateMonthMultiplier,\n createMonthMultiplier: createMonthMultiplier,\n deleteMonthMultiplier: deleteMonthMultiplier,\n changeMultiplierOnArticle, changeMultiplierOnArticle,\n saveNewIntrastat: saveNewIntrastat,\n updateProduct: updateProduct,\n getAllArticleVariants: getAllArticleVariants,\n changeItemGroup: ResourcesService.apiFactory.update(endpoint + '/changeItemGroup'),\n getArticleChangeVariantDetailObject: getArticleChangeVariantDetailObject,\n getVariantDetailOptions: getVariantDetailOptions,\n getVariantDetailOptionsPaged: getVariantDetailOptionsPaged,\n changeArticleVariantDetail: ResourcesService.apiFactory.update(endpoint + '/changeArticleVariantDetail'),\n hasSimpleWms: hasSimpleWms,\n checkIfBarcodeExists: checkIfBarcodeExists,\n getMetaFieldValues: getMetaFieldValues,\n getMetaFields: getMetaFields,\n upsertMetaFields: upsertMetaFields,\n upsertMetaFieldValues: upsertMetaFieldValues\n };\n\n function getProducts(request) {\n\n var params = {\n filter: '',\n page: 1,\n pageSize: 20\n };\n\n //page, filter, pageSize, companyId, showInactiveArticles\n if (request.currentPage && request.currentPage > 1) {\n params.page = request.currentPage;\n }\n\n if (request.pageSize && request.pageSize > 0) {\n params.pageSize = request.pageSize;\n }\n\n if (!_.isEmpty(request.filter)) {\n params.filter = request.filter;\n }\n\n if (request.companyId) {\n params.companyId = request.companyId;\n }\n\n if (request.showInactiveArticles) {\n params.showInactiveArticles = request.showInactiveArticles;\n }\n\n if (request.matchEntireSearchTerm !== undefined) {\n params.matchEntireSearchTerm = request.matchEntireSearchTerm;\n }\n\n var args = {params: params};\n\n return ResourcesService.apiFactory.get(endpoint)(args);\n }\n\n function getMetaFieldValues(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.rms2Path + 'metafieldvalue/' + articleId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMetaFields() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.rms2Path + 'metafield/').then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function upsertMetaFields(metaFieldsData) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + 'metafield/', metaFieldsData)\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function upsertMetaFieldValues(articleId, values) {\n var deferred = $q.defer();\n\n var data = {\n articleId: articleId,\n metaFieldValues: values\n }\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + 'metafieldvalue/', data)\n .then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getSuppliers(brandId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/suppliers/brand/' + brandId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProductIds(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + '/products/ids', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProductPrices(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + articleId + '/prices').then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProductVariants(page, filter, pageSize, collectionId, onlyWithNegativeEshopStock) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n if (collectionId > 0) {\n params.collectionId = collectionId;\n }\n\n if (onlyWithNegativeEshopStock) {\n params.onlyWithNegativeEshopStock = onlyWithNegativeEshopStock;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articleVariants', {params: params}).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function getProductVariantsStocks(articleVariantsAndLocationIds) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'articlevariants/stocks', articleVariantsAndLocationIds).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProductVariantsInTransitValues(articleVariantsAndLocationIds) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'articlevariants/intransit', articleVariantsAndLocationIds).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadArticleLabels(productId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/' + productId + '/labels', {responseType: 'arraybuffer'}).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'labels.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s]){1,}.pdf/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function downloadArticleVariantLabels(labelRequests) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'products/labels', labelRequests).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function saveNewIntrastat(articleId, articleVariantId, intrastat) {\n var params = {\n articleId: articleId,\n articleVariantId: articleVariantId,\n intrastat: intrastat\n };\n\n return ResourcesService.apiFactory.save('/products/intrastat', 'Intrastat')(params);\n }\n\n function updateProduct(id, data) {\n\n // The internal json stringification of DSHttpAdapter seems to cause some object fields to go\n // missing for some reason.\n data = JSON.stringify(data);\n\n return ResourcesService.apiFactory.update(endpoint + '/' + id, 'Product')(data);\n }\n\n function getAllArticleVariants(page, filter, pageSize, collectionId, onlyWithNegativeEshopStock) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n if (collectionId > 0) {\n params.collectionId = collectionId;\n }\n\n if (onlyWithNegativeEshopStock) {\n params.onlyWithNegativeEshopStock = onlyWithNegativeEshopStock;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articleVariants', {params: params}).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred.promise;\n }\n\n function hasSimpleWms() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/hasSimpleWms').then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n function getProductStockLocations(warehouseId, productId) {\n\n console.log('warehouseId: ' + warehouseId + ', productId: ' + productId);\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/stocklocations/warehouses/' + warehouseId + '/products/' + productId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n /*\n console.log('warehouseId: ' + warehouseId + ', productId: ' + productId);\n return ResourcesService.apiFactory.get(endpoint + '/stocklocations/warehouses/' + warehouseId + '/products/' + productId);\n */\n }\n\n function getArticleChangeVariantDetailObject(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/getchangevariantdetailobject/' + articleId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getVariantDetailOptionsPaged(request) {\n\n var params = {\n filter: '',\n page: 1,\n pageSize: 20,\n variantDetailType: 1\n };\n\n //page, filter, pageSize, companyId, showInactiveArticles\n if (request.currentPage && request.currentPage > 1) {\n params.page = request.currentPage;\n }\n\n if (request.pageSize && request.pageSize > 0) {\n params.pageSize = request.pageSize;\n }\n\n if (!_.isEmpty(request.filter)) {\n params.filter = request.filter;\n }\n\n if (request.variantDetailType) {\n params.variantDetailType = request.variantDetailType;\n }\n\n var args = {params: params};\n\n return ResourcesService.apiFactory.get(endpoint + '/getvariantdetailoptionspaged')(args);\n }\n\n function getVariantDetailOptions(variantDetailType) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/getvariantdetailoptions/' + variantDetailType).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteMonthMultiplier(requestId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.DEL(DS.defaults.basePath + 'products/multiplier/' + requestId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function changeMultiplierOnArticle(articleId, stockLogisticsMonthMultipliersDto) {\n var deferred = $q.defer();\n var jsonRequest = JSON.stringify(stockLogisticsMonthMultipliersDto);\n DSHttpAdapter.PUT(DS.defaults.basePath + 'products/multiplier/' + articleId, jsonRequest).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createMonthMultiplier(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'products/multiplier/', request).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateMonthMultiplier(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'products/multiplier/', request).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMultipliers(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/multiplier/' + articleId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function ReadMultipliersToEdit(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/multiplier/edit/' + articleId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function checkIfBarcodeExists(barcode) {\n var deferred = $q.defer();\n var params = {};\n\n if (_.isUndefined(barcode) || barcode === \"\") {\n return false;\n }\n\n params.barcode = barcode;\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlevariants/barcodeexists', {params: params}).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n}\n\nangular.module('products.api', [])\n .factory('ProductsApiService', ProductsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.psychologicalprices.new', {\n url:'/new',\n views: {\"productView@product\": {\n templateUrl: 'main/product/psychologicalprices/psychologicalprice/psychologicalprice.tpl.html',\n controller: 'PsychologicalPriceController as vm'\n }},\n resolve: {\n psychologicalPrice: function() { return {}; },\n isNewPsychologicalPrice: function() { return true; }\n }\n });\n\n $stateProvider.state('product.psychologicalprices.psychologicalprice', {\n url:'/{psychologicalPriceId}',\n views: {\"productView@product\": {\n templateUrl: 'main/product/psychologicalprices/psychologicalprice/psychologicalprice.tpl.html',\n controller: 'PsychologicalPriceController as vm'\n }},\n resolve: {\n psychologicalPrice: psychologicalPriceResolver,\n isNewPsychologicalPrice: function() { return false; }\n }\n });\n}\n\n// @ngInject\nfunction psychologicalPriceResolver($stateParams, PsychologicalPricesApiService) {\n return PsychologicalPricesApiService.getPsychologicalPrice($stateParams.psychologicalPriceId);\n}\n\n// @ngInject\nfunction PsychologicalPriceController($state, $rootScope, psychologicalPrice, loadSpinnerService, PsychologicalPricesApiService, isNewPsychologicalPrice, ToasterService, $translate) {\n var vm = this;\n\n var psychologicalPriceCopy = {};\n\n vm.psychologicalPrice = psychologicalPrice;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.savePsychologicalPrice = savePsychologicalPrice;\n\n vm.isNewPsychologicalPrice = isNewPsychologicalPrice;\n vm.isEditing = vm.isNewPsychologicalPrice;\n\n vm.isAllInformationValid = isAllInformationValid;\n vm.isPsychologicalPriceNameValid = isPsychologicalPriceNameValid;\n vm.addInterval = addInterval;\n vm.removeInterval = removeInterval;\n vm.clearIntervals = clearIntervals;\n\n activate();\n\n function activate() {\n prepareData();\n\n if (vm.isNewPsychologicalPrice) {\n vm.psychologicalPrice = {priceIntervals:[]};\n vm.newInterval = {minValue: null, maxValue: null, resultValue: null};\n } else {\n vm.newInterval = {minValue: null, maxValue: null, resultValue: null};\n }\n }\n\n function clearIntervals() {\n vm.psychologicalPrice.priceIntervals = [];\n vm.newInterval = {minValue: null, maxValue: null, resultValue: null};\n }\n\n function removeInterval(interval) {\n _.remove(vm.psychologicalPrice.priceIntervals, interval);\n }\n\n function addInterval(interval) {\n var hasError = false;\n var newInterval = { minValue: Number(interval.minValue), maxValue: Number(interval.maxValue), resultValue: Number(interval.resultValue)};\n\n //Validera max och min är numbers\n if (!_.isNumber(newInterval.minValue) || _.isNaN(newInterval.minValue)) {\n newInterval.minValue = 0;\n ToasterService.showError($translate.instant('psychologicalPrice.minValueIsWrong'), $translate.instant('common.error'));\n hasError = true;\n }\n\n if (!_.isNumber(newInterval.maxValue) || _.isNaN(newInterval.maxValue)) {\n newInterval.maxValue = 0;\n ToasterService.showError($translate.instant('psychologicalPrice.maxValueIsWrong'), $translate.instant('common.error'));\n hasError = true;\n }\n\n //Validera max > min\n if (newInterval.minValue > newInterval.maxValue) {\n newInterval.minValue = newInterval.maxValue;\n ToasterService.showError($translate.instant('psychologicalPrice.minValueLargerThanMaxValue'), $translate.instant('common.error'));\n hasError = true;\n }\n\n if (!hasError) {\n vm.psychologicalPrice.priceIntervals.push(newInterval);\n vm.newInterval = getNewRowDefaults(newInterval);\n }\n\n }\n\n function getNewRowDefaults(fromInterval) {\n var diff = fromInterval.maxValue - fromInterval.minValue;\n return {minValue: fromInterval.maxValue, maxValue: fromInterval.maxValue + diff, resultValue: fromInterval.resultValue + diff};\n }\n\n function enableEditing() {\n psychologicalPriceCopy = angular.copy(vm.psychologicalPrice);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.psychologicalPrice = psychologicalPriceCopy;\n vm.isEditing = false;\n }\n\n function savePsychologicalPrice() {\n if (vm.isNewPsychologicalPrice) {\n saveNewPsychologicalPrice();\n } else {\n updatePsychologicalPrice();\n }\n }\n\n function saveNewPsychologicalPrice() {\n loadSpinnerService.start('mainSpinner');\n PsychologicalPricesApiService.createPsychologicalPrice(vm.psychologicalPrice).then(function(response) {\n vm.psychologicalPrice = response;\n prepareData();\n vm.isNewPsychologicalPrice = false;\n vm.isEditing = false;\n ToasterService.showSuccess('\"' + vm.psychologicalPrice.name + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"product.psychologicalprices\"));\n $rootScope.$emit('PsychologicalPrice.Inserted', response);\n $state.go('product.psychologicalprices.psychologicalprice', {psychologicalPriceId: response.id});\n }, function(error) {\n ToasterService.showError(error, $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updatePsychologicalPrice() {\n loadSpinnerService.start('mainSpinner');\n PsychologicalPricesApiService.updatePsychologicalPrice(vm.psychologicalPrice).then(function(response) {\n vm.psychologicalPrice = response;\n prepareData();\n vm.isEditing = false;\n ToasterService.showSuccess('\"' + vm.psychologicalPrice.name + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"product.psychologicalprices\"));\n $rootScope.$emit('PsychologicalPrice.Changed', response);\n }, function(error) {\n ToasterService.showError(error, $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function prepareData() {\n if (vm.psychologicalPrice === undefined) {\n return;\n }\n }\n\n function isAllInformationValid() {\n return !vm.isNewPsychologicalPrice ||\n (isPsychologicalPriceNameValid() &&\n hasPriceIntervals()\n );\n }\n\n function isPsychologicalPriceNameValid() {\n return vm.psychologicalPrice && vm.psychologicalPrice.name && vm.psychologicalPrice.name.length > 0;\n\n }\n\n function hasPriceIntervals() {\n return vm.psychologicalPrice && vm.psychologicalPrice.priceIntervals && vm.psychologicalPrice.priceIntervals.length > 0;\n }\n}\n\nangular\n .module('psychologicalprices.psychologicalprice', [])\n .config(stateConfig)\n .controller('PsychologicalPriceController', PsychologicalPriceController);\n","// @ngInject\nfunction PsychologicalPricesApiService(ResourcesService) {\n\n var endpoint = 'psychologicalprices';\n\n return {\n getPsychologicalPrices: getPsychologicalPrices,\n getPsychologicalPrice: ResourcesService.apiFactory.get(endpoint),\n createPsychologicalPrice: ResourcesService.apiFactory.create(endpoint,'PsychologicalPriceList'),\n updatePsychologicalPrice: ResourcesService.apiFactory.update(endpoint,'PsychologicalPriceList')\n };\n\n\n function getPsychologicalPrices(page, filter, pageSize, companyId) {\n\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n var args = { params: params};\n\n return ResourcesService.apiFactory.get(endpoint)(args);\n }\n\n}\n\n\nangular.module('psychologicalprices.api', [])\n .factory('PsychologicalPricesApiService', PsychologicalPricesApiService);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.psychologicalprices', {\n url: '/psychologicalprices',\n views: {'productList@product': {\n templateUrl: 'main/product/psychologicalprices/psychologicalprices.tpl.html',\n controller: 'PsychologicalPricesController as vm'\n }},\n resolve: {\n psychologicalPrices: psychologicalPricesResolver\n }\n });\n}\n\n// @ngInject\nfunction psychologicalPricesResolver(PsychologicalPricesApiService) {\n return PsychologicalPricesApiService.getPsychologicalPrices();\n}\n\n// @ngInject\nfunction PsychologicalPricesController($rootScope, $state, $scope, psychologicalPrices, PsychologicalPricesApiService,loadSpinnerService) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.psychologicalPrices = psychologicalPrices;\n vm.selectedPsychologicalPriceId = 0;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n vm.itemsPerPage = null;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.psychologicalPriceId; }, function(newValue, oldValue) {\n vm.selectedPsychologicalPriceId = parseInt($state.params.psychologicalPriceId, 10);\n });\n $rootScope.$on('PsychologicalPrice.Inserted', function(event, response) {\n loadPsychologicalPrices();\n });\n $rootScope.$on('PsychologicalPrice.Changed', function(event, response) {\n loadPsychologicalPrices();\n });\n }\n\n function loadPsychologicalPrices() {\n loadSpinnerService.start('mainSpinner');\n PsychologicalPricesApiService.getPsychologicalPrices(vm.currentPage,vm.searchTerm,vm.itemsPerPage).then(function(response) {\n vm.psychologicalPrices = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadPsychologicalPrices();\n }\n\n}\n\nangular\n .module('product.psychologicalprices', ['psychologicalprices.api','psychologicalprices.psychologicalprice'])\n .config(stateConfig)\n .controller('PsychologicalPricesController', PsychologicalPricesController);\n","// @ngInject\nfunction Rms2ProductsApiService($q, $rootScope, DS, DSHttpAdapter, ResourcesService, $cookies, $window) {\n\n var endpoint = 'colourChange';\n\n return {\n getArticleColours: getArticleColours,\n createColourChange: createColourChange\n };\n\n function getArticleColours(articleId) {\n var deferred = $q.defer();\n\n var data = {\n articleId: articleId\n }\n \n DSHttpAdapter.GET(DS.defaults.rms2Path + endpoint + '/' + articleId).then(function (response) {\n console.log(\"GET Response: \", response);\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n \n return deferred.promise;\n }\n\n function createColourChange(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.rms2Path + endpoint, request).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('rms2Products.api', [])\n .factory('Rms2ProductsApiService', Rms2ProductsApiService);","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.saleschannels.new', {\n url:'/new',\n views: {\"productView@product\": {\n templateUrl: 'main/product/saleschannels/saleschannel/saleschannel.tpl.html',\n controller: 'SalesChannelController as vm'\n }},\n resolve: {\n salesChannel: function() { return {}; },\n isNewSalesChannel: function() { return true; },\n tenantConfig: tenantConfigResolver,\n pricelists: pricelistsResolver,\n countries: countriesResolver\n }\n });\n\n $stateProvider.state('product.saleschannels.saleschannel', {\n url:'/{salesChannelId}',\n views: {\"productView@product\": {\n templateUrl: 'main/product/saleschannels/saleschannel/saleschannel.tpl.html',\n controller: 'SalesChannelController as vm'\n }},\n resolve: {\n salesChannel: salesChannelResolver,\n isNewSalesChannel: function() { return false; },\n tenantConfig: tenantConfigResolver,\n pricelists: pricelistsResolver,\n countries: countriesResolver\n }\n });\n\n}\n\n// @ngInject\nfunction salesChannelResolver($stateParams, SalesChannelsApiService) {\n return SalesChannelsApiService.getSalesChannel($stateParams.salesChannelId);\n}\n\n// @ngInject\nfunction tenantConfigResolver(SalesChannelsApiService) {\n return SalesChannelsApiService.getTenantConfig();\n}\n\n// @ngInject\nfunction pricelistsResolver(SalesChannelsApiService) {\n return SalesChannelsApiService.getPricelists();\n}\n\n// @ngInject\nfunction countriesResolver(SalesChannelsApiService) {\n return SalesChannelsApiService.getCountries();\n}\n\n\n// @ngInject\nfunction SalesChannelController($state, salesChannel, loadSpinnerService, SalesChannelsApiService, isNewSalesChannel, tenantConfig, pricelists, countries) {\n var vm = this;\n\n var salesChannelCopy = {};\n\n vm.salesChannel = salesChannel;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveSalesChannel = saveSalesChannel;\n\n vm.isNewSalesChannel = isNewSalesChannel;\n vm.isEditing = vm.isNewSalesChannel;\n\n vm.tenantConfig = tenantConfig;\n vm.isAllInformationValid = isAllInformationValid;\n vm.isSalesChannelCodeValid = isSalesChannelCodeValid;\n vm.pricelists = pricelists;\n vm.countries = countries;\n\n activate();\n\n function activate() {\n prepareData();\n\n if (vm.isNewSalesChannel) {\n vm.salesChannel = {};\n }\n }\n\n function enableEditing() {\n salesChannelCopy = angular.copy(vm.salesChannel);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.salesChannel = salesChannelCopy;\n vm.isEditing = false;\n }\n\n function saveSalesChannel() {\n if (vm.isNewSalesChannel) {\n saveNewSalesChannel();\n } else {\n updateSalesChannel();\n }\n }\n\n function saveNewSalesChannel() {\n loadSpinnerService.start('mainSpinner');\n SalesChannelsApiService.createSalesChannel(vm.salesChannel).then(function(response) {\n vm.SalesChannel = response;\n prepareData();\n vm.isNewSalesChannel = false;\n vm.isEditing = false;\n $state.go('product.saleschannels.saleschannel', {salesChannelId: response.id});\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateSalesChannel() {\n loadSpinnerService.start('mainSpinner');\n SalesChannelsApiService.updateSalesChannel(vm.salesChannel).then(function(response) {\n vm.salesChannel = response;\n prepareData();\n vm.isEditing = false;\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function prepareData() {\n if (vm.salesChannel === undefined) {\n return;\n }\n }\n\n function isAllInformationValid() {\n return !vm.isNewSalesChannel ||\n (isSalesChannelCodeValid());\n }\n\n function isSalesChannelCodeValid() {\n var isSalesChannelCodeAlreadyAssigned = _.find(vm.tenantConfig.assignedSalesChannelCodes, function(code) {\n return vm.salesChannel.salesChannelCode === code;\n });\n\n if (!isSalesChannelCodeAlreadyAssigned) {\n return true;\n } else {\n return false;\n }\n }\n}\n\nangular\n .module('saleschannels.saleschannel', [])\n .config(stateConfig)\n .controller('SalesChannelController', SalesChannelController);\n","// @ngInject\nfunction SalesChannelsApiService(ResourcesService) {\n\n var endpoint = 'saleschannels';\n\n return {\n getSalesChannels: getSalesChannels,\n getSalesChannel: ResourcesService.apiFactory.get(endpoint),\n createSalesChannel: createSalesChannel,\n updateSalesChannel: updateSalesChannel,\n getTenantConfig: ResourcesService.apiFactory.get(endpoint + '/tenantconfig'),\n getPricelists: ResourcesService.apiFactory.get(endpoint + '/pricelists'),\n getCountries: ResourcesService.apiFactory.get(endpoint + '/countries')\n };\n\n function getSalesChannels(page, filter, pageSize, companyId) {\n\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n var args = { params: params};\n\n return ResourcesService.apiFactory.get(endpoint)(args);\n }\n\n function createSalesChannel(salesChannel) {\n\n var args = {\n salesChannel: salesChannel\n };\n\n return ResourcesService.apiFactory.create(endpoint,'SalesChannel')(args);\n }\n\n function updateSalesChannel(salesChannel) {\n var args = {\n salesChannel: salesChannel\n };\n\n return ResourcesService.apiFactory.update(endpoint,'SalesChannel')(args);\n }\n\n}\n\n\nangular.module('saleschannels.api', [])\n .factory('SalesChannelsApiService', SalesChannelsApiService);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.saleschannels', {\n url: '/saleschannels',\n views: {'productList@product': {\n templateUrl: 'main/product/saleschannels/saleschannels.tpl.html',\n controller: 'SalesChannelsController as vm'\n }},\n resolve: {\n salesChannels: salesChannelsResolver\n }\n });\n}\n\n// @ngInject\nfunction salesChannelsResolver(SalesChannelsApiService) {\n return SalesChannelsApiService.getSalesChannels();\n}\n\n// @ngInject\nfunction SalesChannelsController($rootScope, $state, $scope, salesChannels, SalesChannelsApiService,loadSpinnerService) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.salesChannels = salesChannels;\n vm.selectedSalesChannelId = 0;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n vm.itemsPerPage = null;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.salesChannelId; }, function(newValue, oldValue) {\n vm.selectedSalesChannelId = parseInt($state.params.salesChannelId, 10);\n });\n $rootScope.$on('SalesChannel.Changed', function(event, response) {\n loadSalesChannels();\n });\n }\n\n function loadSalesChannels() {\n loadSpinnerService.start('mainSpinner');\n SalesChannelsApiService.getSalesChannels(vm.currentPage,vm.searchTerm,vm.itemsPerPage).then(function(response) {\n vm.salesChannels = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadSalesChannels();\n }\n\n}\n\nangular\n .module('product.saleschannels', ['saleschannels.api', 'saleschannels.saleschannel'])\n .config(stateConfig)\n .controller('SalesChannelsController', SalesChannelsController);\n","// @ngInject\nfunction SubCategoriesApiService($q, DS, ResourcesService, DSHttpAdapter) {\n\n var endpoint = 'subcategories';\n\n return {\n getPage: getPage,\n getSubCategory: ResourcesService.apiFactory.get(endpoint),\n getMaingroups: ResourcesService.apiFactory.get(endpoint + '/maingroups'),\n getIntrastats: ResourcesService.apiFactory.get(endpoint + '/intrastats'),\n save: ResourcesService.apiFactory.save(endpoint, 'SubCategory')\n };\n\n function getPage(page, pageSize, searchTerm) {\n\n var args = {\n params: {\n page: page,\n pageSize: pageSize,\n searchTerm: searchTerm\n }\n };\n\n return ResourcesService.apiFactory.get(endpoint + '/page')(args);\n }\n\n}\n\nangular.module('subcategories.api', [])\n .factory('SubCategoriesApiService', SubCategoriesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.subcategories', {\n url: '/subcategories?searchTerm',\n views: {\n 'productList@product': {\n templateUrl: 'main/product/subcategories/subcategories.tpl.html',\n controller: 'SubCategoriesController as vm'\n }\n },\n resolve: {\n subCategories: subCategoriesResolver,\n searchTerm: searchTermesolver\n }\n });\n}\n\n// @ngInject\nfunction subCategoriesResolver(SubCategoriesApiService, $stateParams) {\n return SubCategoriesApiService.getPage(1, 19, $stateParams.searchTerm);\n}\n\n// @ngInject\nfunction searchTermesolver($stateParams) {\n return $stateParams.searchTerm;\n}\n\n// @ngInject\nfunction SubCategoriesController($rootScope, $state, subCategories, $scope, SubCategoriesApiService, loadSpinnerService, searchTerm) {\n var vm = this;\n\n vm.itemsPerPage = 19;\n vm.selectedSubCategoryId = 0;\n vm.subCategories = subCategories.results;\n vm.searchTerm = (searchTerm) ? searchTerm : '';\n vm.currentPage = 1;\n vm.totalRows = subCategories.total;\n\n vm.searchTermChanged = searchTermChanged;\n vm.pageChanged = pageChanged;\n\n function loadSubCategories() {\n loadSpinnerService.start('mainSpinner');\n SubCategoriesApiService.getPage(vm.currentPage, vm.itemsPerPage, vm.searchTerm).then(function (response) {\n vm.subCategories = response.results;\n vm.totalRows = response.total;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n function searchTermChanged() {\n vm.currentPage = 1;\n loadSubCategories();\n }\n\n function pageChanged() {\n loadSubCategories();\n }\n}\n\nangular\n .module('product.subcategories', ['subcategories.api','subcategories.subcategory'])\n .config(stateConfig)\n .controller('SubCategoriesController', SubCategoriesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.subcategories.new', {\n url: '/new',\n views: {\n \"productView@product\": {\n templateUrl: 'main/product/subcategories/subcategory/subcategory.tpl.html',\n controller: 'SubCategoryController as vm'\n }\n },\n resolve: {\n subCategory: function () { return {}; },\n mainGroups: mainGroupsResolver,\n intrastats: intrastatsResolver,\n createNew: function () { return true; }\n }\n });\n\n $stateProvider.state('product.subcategories.subcategory', {\n url: '/{subCategoryId}',\n views: {\n \"productView@product\": {\n templateUrl: 'main/product/subcategories/subcategory/subcategory.tpl.html',\n controller: 'SubCategoryController as vm'\n }\n },\n resolve: {\n subCategory: subCategoriesResolver,\n mainGroups: mainGroupsResolver,\n intrastats: intrastatsResolver,\n createNew: function () { return false; }\n }\n });\n\n}\n\n\n// @ngInject\nfunction subCategoriesResolver($stateParams, SubCategoriesApiService) {\n return SubCategoriesApiService.getSubCategory($stateParams.subCategoryId);\n}\n\n// @ngInject\nfunction mainGroupsResolver(SubCategoriesApiService) {\n return SubCategoriesApiService.getMaingroups();\n}\n\n// @ngInject\nfunction intrastatsResolver(SubCategoriesApiService) {\n return SubCategoriesApiService.getIntrastats();\n}\n// @ngInject\nfunction SubCategoryController($state, subCategory, mainGroups, intrastats, loadSpinnerService, createNew, SubCategoriesApiService, $scope, $translate, ToasterService) {\n var vm = this;\n\n //properties\n vm.subCategory = subCategory;\n vm.isNew = false;\n vm.isEditing = false;\n vm.mainGroups = mainGroups;\n vm.intrastats = intrastats;\n vm.subCategoryCopy = {};\n\n //functions\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.save = save;\n\n //initialize\n if (createNew) {\n vm.subCategory = { mainGroup: {} };\n vm.subCategory.mainGroup = angular.copy(vm.mainGroups[0]);\n vm.isNew = true;\n vm.isEditing = true;\n\n }\n\n function enableEditing() {\n vm.isEditing = true;\n vm.subCategoryCopy = angular.copy(vm.subCategory);\n }\n\n function cancelEditing() {\n vm.isEditing = false;\n vm.subCategory = vm.subCategoryCopy;\n }\n\n function save() {\n\n SubCategoriesApiService.save(vm.subCategory).then(function (result) {\n vm.subCategory.id = result.id;\n vm.isEditing = false;\n vm.isNew = false;\n ToasterService.showSuccess('\"' + vm.subCategory.subCategoryCode + '\" ' + $translate.instant(\"common.wasSaved\"), $translate.instant(\"article.subcategory\"));\n\n }, function (error) {\n ToasterService.showError(error.message, $translate.instant(\"article.subcategory\"));\n }).finally(function () {\n $state.go('product.subcategories.subcategory', { subCategoryId: vm.subCategory.id });\n });\n }\n}\n\nangular\n .module('subcategories.subcategory', [])\n .config(stateConfig)\n .controller('SubCategoryController', SubCategoryController);\n\n","// @ngInject\nfunction VariantGroupsApiService(ResourcesService) {\n\n var endpoint = 'variantgroups';\n\n return {\n getVariantBriefs: ResourcesService.apiFactory.get(endpoint + '/variantbriefs'),\n getVariantDetails: ResourcesService.apiFactory.get(endpoint + '/variantdetails'),\n getVariantGroupBriefs: getVariantGroupBriefs,\n getVariantGroup: ResourcesService.apiFactory.get(endpoint),\n saveVariantGroup: ResourcesService.apiFactory.save(endpoint, 'VariantGroup')\n };\n\n function getVariantGroupBriefs(page, filter, pageSize) {\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n var args = { params: params };\n\n return ResourcesService.apiFactory.get(endpoint + '/briefs')(args);\n }\n}\n\nangular.module('variantgroups.api', [])\n .factory('VariantGroupsApiService', VariantGroupsApiService);\n\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.variantgroups.new', {\n url: '/new',\n views: {\n \"productView@product\": {\n templateUrl: 'main/product/variantgroups/variantgroup/variantgroup.tpl.html',\n controller: 'VariantGroupController as vm'\n }\n },\n resolve: {\n createNew: function() {\n return true;\n },\n variantGroup: function() {\n return {\n groupName: '',\n variantDetails: []\n };\n },\n variants: variantResolver\n }\n });\n $stateProvider.state('product.variantgroups.variantgroup', {\n url:'/{variantGroupId}',\n views: {\"productView@product\": {\n templateUrl: 'main/product/variantgroups/variantgroup/variantgroup.tpl.html',\n controller: 'VariantGroupController as vm'\n }},\n resolve: {\n createNew: function() {\n return false;\n },\n variantGroup: variantGroupResolver,\n variants: function() { return []; }\n }\n });\n}\n\n// @ngInject\nfunction variantGroupResolver($stateParams, VariantGroupsApiService) {\n return VariantGroupsApiService.getVariantGroup($stateParams.variantGroupId);\n}\n\n// @ngInject\nfunction variantResolver($stateParams, VariantGroupsApiService) {\n return VariantGroupsApiService.getVariantBriefs();\n}\n\n// @ngInject\nfunction VariantGroupController($state, $scope, createNew, variantGroup, variants, loadSpinnerService, VariantGroupsApiService) {\n var vm = this;\n\n //Properties\n vm.variantGroupCopy = {};\n vm.variantGroup = variantGroup;\n vm.isEditing = false;\n vm.isNew = false;\n vm.variantDetails = [];\n vm.variants = variants;\n vm.selectedVariant = {};\n vm.orgDetails = [];\n vm.addedVariantDetails = [];\n\n //Methods\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveVariantGroup = saveVariantGroup;\n vm.isAllInformationValid = isAllInformationValid;\n //vm.moveUpward = moveUpward;\n //vm.moveDownward = moveDownward;\n vm.removeVariantDetail = removeVariantDetail;\n vm.loadVariantDetails = loadVariantDetails;\n\n if (createNew) {\n vm.isNew = true;\n vm.isEditing = true;\n }\n\n activate();\n\n function activate() {\n loadVariantDetails();\n\n $scope.$watch(function() { return vm.selectedVariant; }, function(newValue, oldValue) {\n if (newValue !== oldValue) {\n loadVariantDetails();\n }\n });\n }\n\n function loadVariantDetails() {\n var variantId = null;\n if (vm.isNew) {\n if (vm.selectedVariant && vm.selectedVariant.id) {\n variantId = vm.selectedVariant.id;\n } else {\n return;\n }\n } else {\n variantId = vm.variantGroup.variant.id;\n }\n loadSpinnerService.start('mainSpinner');\n VariantGroupsApiService.getVariantDetails(variantId).then(function(response) {\n vm.variantDetails = response;\n vm.addedVariantDetails = [];\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n // function moveUpward(variantDetail) {\n // var index = vm.variantGroup.variantDetails.indexOf(variantDetail);\n // if (index === 0) { return; }\n // var prev = vm.variantGroup.variantDetails[index - 1];\n // var tempSortOrder = variantDetail.sortOrder;\n // variantDetail.sortOrder = prev.sortOrder;\n // prev.sortOrder = tempSortOrder;\n // }\n // function moveDownward(variantDetail) {\n // var index = vm.variantGroup.variantDetails.indexOf(variantDetail);\n // if (index === vm.variantGroup.variantDetails.length - 1) { return; }\n // var next = vm.variantGroup.variantDetails[index + 1];\n // var tempSortOrder = variantDetail.sortOrder;\n // variantDetail.sortOrder = next.sortOrder;\n // next.sortOrder = tempSortOrder;\n // }\n\n function removeVariantDetail(variantDetail) {\n var index = vm.variantGroup.variantDetails.indexOf(variantDetail);\n\n vm.variantGroup.variantDetails.splice(index, 1);\n }\n\n function enableEditing() {\n vm.variantGroupCopy = angular.copy(vm.variantGroup);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.variantGroup = vm.variantGroupCopy;\n vm.isEditing = false;\n vm.addedVariantDetails = [];\n }\n\n function saveVariantGroup() {\n vm.variantGroup.variantDetails = _.unionWith(vm.variantGroup.variantDetails, vm.addedVariantDetails, _.isEqual);\n\n if (vm.isNew) {\n vm.variantGroup.variant = { id: vm.selectedVariant.id };\n }\n\n updateVariantGroup();\n }\n\n function updateVariantGroup() {\n loadSpinnerService.start('mainSpinner');\n VariantGroupsApiService.saveVariantGroup(vm.variantGroup).then(function(response) {\n vm.variantGroup = response;\n vm.isEditing = false;\n vm.isNew = false;\n vm.addedVariantDetails = [];\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n if (vm.variantGroup.id) {\n $state.go('product.variantgroups.variantgroup', { variantGroupId: vm.variantGroup.id });\n }\n });\n }\n\n function isAllInformationValid() {\n if (vm.variantGroup.groupName.length === 0) {\n return false;\n }\n if (vm.isNew && vm.addedVariantDetails.length === 0) {\n return false;\n }\n if (!vm.isNew && vm.variantGroup.variantDetails.length === 0) {\n return false;\n }\n\n return true;\n }\n\n}\n\nangular\n .module('product.variantgroups.variantgroup', [])\n .config(stateConfig)\n .controller('VariantGroupController', VariantGroupController);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.variantgroups', {\n url: '/variantgroups',\n views: {'productList@product': {\n templateUrl: 'main/product/variantgroups/variantgroups.tpl.html',\n controller: 'VariantGroupsController as vm'\n }},\n resolve: {\n variantGroups: variantGroupsResolver\n }\n });\n}\n\n// @ngInject\nfunction variantGroupsResolver(VariantGroupsApiService) {\n return VariantGroupsApiService.getVariantGroupBriefs(1, '', 20);\n}\n\n// @ngInject\nfunction VariantGroupsController($rootScope, $state, $scope, variantGroups, VariantGroupsApiService, loadSpinnerService) {\n var vm = this;\n\n //Properties\n vm.currentUser = $rootScope.currentUser;\n vm.variantGroups = variantGroups.data;\n vm.totalItems = variantGroups.totalItems;\n vm.selectedVariantGroupId = 0;\n vm.searchTerm = '';\n vm.currentPage = 1;\n vm.itemsPerPage = 20;\n\n //Methods\n vm.searchTermChange = searchTermChange;\n vm.loadVariantGroups = loadVariantGroups;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.variantGroupId; }, function(newValue, oldValue) {\n vm.selectedVariantGroupId = parseInt($state.params.variantGroupId, 10);\n });\n }\n\n function loadVariantGroups() {\n loadSpinnerService.start('mainSpinner');\n VariantGroupsApiService.getVariantGroupBriefs(vm.currentPage,vm.searchTerm,vm.itemsPerPage).then(function(response) {\n vm.variantGroups = response.data;\n vm.totalItems = response.totalItems;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadVariantGroups();\n }\n $rootScope.$on('VariantGroup.Inserted', function(event, response) {\n });\n $rootScope.$on('VariantGroup.Updated', function(event, response) {\n });\n $rootScope.$on('VariantGroup.Deleted', function(event, response) {\n });\n $rootScope.$on('VariantGroup.Changed', function(event, response) {\n loadVariantGroups();\n });\n\n}\n\nangular\n .module('product.variantgroups', ['product.variantgroups.variantgroup'])\n .config(stateConfig)\n .controller('VariantGroupsController', VariantGroupsController);\n","// @ngInject\nfunction VariantsApiService(ResourcesService) {\n\n var endpoint = 'variants';\n\n return {\n getVariants: ResourcesService.apiFactory.get(endpoint),\n getVariant: ResourcesService.apiFactory.get(endpoint),\n getVariantGroupsByVariantId: ResourcesService.apiFactory.get(endpoint + '/variantgroups'),\n getVariantDetails: getVariantDetails,\n getAllVariantDetails: ResourcesService.apiFactory.get(endpoint + '/getallvariantdetails'),\n updateVariantDetails: ResourcesService.apiFactory.update(endpoint + '/details','VariantDetails')\n };\n\n function getVariantDetails(variantId, page, filter, pageSize) {\n var params = {};\n\n if (variantId && variantId > 0) {\n params.variantId = variantId;\n } else {\n // return error, we have to have a variantId\n }\n\n if (!_.isEmpty(filter)) {\n params.filter = filter;\n }\n\n if (page && page > 1) {\n params.page = page;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n var args = { params: params };\n\n console.log('getVariantDetails', args);\n\n return ResourcesService.apiFactory.get(endpoint + '/details')(args);\n }\n\n}\n\n\nangular.module('variants.api', [])\n .factory('VariantsApiService', VariantsApiService);\n\n","var pageSizeDefault = 20;\nvar pageSizeOptions = [10,20,50,100];\n\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.variants.variant', {\n url:'/{variantId}?currentPage&filter&pageSize',\n views: {\"productView@product\": {\n templateUrl: 'main/product/variants/variant/variant.tpl.html',\n controller: 'VariantController as vm'\n }},\n resolve: {\n variant: variantResolver,\n variantGroups: variantGroupsResolver,\n variantDetails: variantDetailsResolver,\n searchTerms: searchTermsResolver\n }\n });\n}\n\n// @ngInject\nfunction variantResolver($stateParams, VariantsApiService) {\n return VariantsApiService.getVariant($stateParams.variantId);\n}\n\n// @ngInject\nfunction variantGroupsResolver($stateParams, VariantsApiService) {\n return VariantsApiService.getVariantGroupsByVariantId($stateParams.variantId);\n}\n\n// @ngInject\nfunction variantDetailsResolver($stateParams, VariantsApiService) {\n if (!$stateParams.currentPage || $stateParams.currentPage < 1) { $stateParams.currentPage = 1; }\n if (!$stateParams.filter) { $stateParams.filter = ''; }\n if (!$stateParams.pageSize || $stateParams.pageSize < pageSizeDefault) { $stateParams.pageSize = pageSizeDefault; }\n return VariantsApiService.getVariantDetails($stateParams.variantId, $stateParams.currentPage, $stateParams.filter, $stateParams.pageSize);\n}\n\n// @ngInject\nfunction searchTermsResolver($stateParams) {\n return {\n filter: $stateParams.filter,\n currentPage: $stateParams.currentPage,\n pageSize: $stateParams.pageSize\n };\n}\n\n// @ngInject\nfunction VariantController($stateParams, $scope, variant, variantDetails, loadSpinnerService, VariantsApiService, variantGroups, searchTerms) {\n var vm = this;\n\n // Properties\n vm.variantDetails = variantDetails.data.results;\n vm.filter = '';\n vm.currentPage = 1;\n vm.pageSizeOptions = pageSizeOptions;\n vm.totalItems = variantDetails.data.total;\n vm.variantGroups = variantGroups;\n vm.variant = variant;\n\n // Functions\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveVariant = saveVariant;\n vm.isEditing = vm.isNewVariant;\n vm.isAllInformationValid = isAllInformationValid;\n vm.orgDetails = [];\n vm.loadVariantDetails = loadVariantDetails;\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n if (searchTerms) {\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.currentPage = searchTerms.currentPage > 1 ? searchTerms.currentPage : 1;\n vm.pageSize = searchTerms.pageSize >= pageSizeDefault ? searchTerms.pageSize : pageSizeDefault;\n loadVariantDetails();\n }\n }\n\n function loadVariantDetails() {\n loadSpinnerService.start('mainSpinner');\n console.log('loadVariantDetails', vm.currentPage);\n VariantsApiService.getVariantDetails($stateParams.variantId, vm.currentPage, vm.filter, vm.pageSize).then(function (response) {\n console.log('response', response.data);\n vm.variantDetails = response.data.results;\n vm.currentPage = response.data.page;\n vm.pageSize = response.data.limit;\n vm.totalItems = response.data.total;\n\n $stateParams.filter = vm.filter;\n $stateParams.currentPage = vm.currentPage;\n $stateParams.pageSize = vm.pageSize;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function enableEditing() {\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.isEditing = false;\n }\n\n function saveVariant() {\n updateVariant();\n }\n\n function searchTermChange() {\n if ($stateParams.filter !== vm.filter) {\n vm.currentPage = 1;\n }\n $stateParams.filter = vm.filter;\n $stateParams.currentPage = vm.currentPage;\n $stateParams.pageSize = vm.pageSize;\n loadVariantDetails();\n }\n\n function updateVariant() {\n\n var detailsToUpdate = [];\n\n _.forEach(vm.variantDetails, function(detail) {\n if (_.some(vm.orgDetails, {id: detail.id, statisticName: detail.statisticName, sortOrder: detail.sortOrder})) { return;}\n detailsToUpdate.push(detail);\n });\n\n loadSpinnerService.start('mainSpinner');\n VariantsApiService.updateVariantDetails(detailsToUpdate).then(function(response) {\n vm.isEditing = false;\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function isAllInformationValid() {\n return true;\n }\n\n}\n\nangular\n .module('variants.variant', [])\n .config(stateConfig)\n .controller('VariantController', VariantController);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.variants', {\n url: '/variants',\n views: {'productList@product': {\n templateUrl: 'main/product/variants/variants.tpl.html',\n controller: 'VariantsController as vm'\n }},\n resolve: {\n variants: variantsResolver\n }\n });\n}\n\n// @ngInject\nfunction variantsResolver(VariantsApiService) {\n return VariantsApiService.getVariants();\n}\n\n// @ngInject\nfunction VariantsController($rootScope, $state, $scope, variants, loadSpinnerService) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.variants = variants;\n vm.selectedVariantId = 0;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n vm.itemsPerPage = null;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.variantId; }, function(newValue, oldValue) {\n vm.selectedVariantId = parseInt($state.params.variantId, 10);\n });\n }\n\n\n\n}\n\nangular\n .module('product.variants', ['variants.variant'])\n .config(stateConfig)\n .controller('VariantsController', VariantsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.volumediscounts.new', {\n url:'/new',\n views: {\"productView@product\": {\n templateUrl: 'main/product/volumediscounts/volumediscount/volumediscount.tpl.html',\n controller: 'VolumeDiscountController as vm'\n }},\n resolve: {\n volumeDiscount: function() { return {}; },\n quantityGroups: quantityGroupsResolver,\n isNewVolumeDiscount: function() { return true; }\n }\n });\n\n $stateProvider.state('product.volumediscounts.volumediscount', {\n url:'/{volumeDiscountId}',\n views: {\"productView@product\": {\n templateUrl: 'main/product/volumediscounts/volumediscount/volumediscount.tpl.html',\n controller: 'VolumeDiscountController as vm'\n }},\n resolve: {\n volumeDiscount: volumeDiscountResolver,\n quantityGroups: quantityGroupsResolver,\n isNewVolumeDiscount: function() { return false; }\n }\n });\n}\n\n// @ngInject\nfunction volumeDiscountResolver($stateParams, VolumeDiscountsApiService) {\n return VolumeDiscountsApiService.getVolumeDiscount($stateParams.volumeDiscountId);\n}\n\n// @ngInject\nfunction quantityGroupsResolver(VolumeDiscountsApiService) {\n return VolumeDiscountsApiService.getQuantityGroups();\n}\n\n// @ngInject\nfunction VolumeDiscountController($state, volumeDiscount, loadSpinnerService, VolumeDiscountsApiService, isNewVolumeDiscount, quantityGroups) {\n var vm = this;\n\n var volumeDiscountCopy = {};\n\n vm.volumeDiscount = volumeDiscount;\n\n vm.enableEditing = enableEditing;\n vm.cancelEditing = cancelEditing;\n vm.saveVolumeDiscount = saveVolumeDiscount;\n\n vm.isNewVolumeDiscount = isNewVolumeDiscount;\n vm.isEditing = vm.isNewVolumeDiscount;\n\n vm.isAllInformationValid = isAllInformationValid;\n vm.addLimit = addLimit;\n vm.removeLimit = removeLimit;\n vm.clearLimits = clearLimits;\n vm.quantityGroups = quantityGroups;\n\n activate();\n\n function activate() {\n prepareData();\n\n if (vm.isNewVolumeDiscount) {\n vm.volumeDiscount = {limits:[], quantityGroup: {}};\n }\n vm.newLimit = getNewRowDefaults();\n }\n\n function clearLimits() {\n vm.volumeDiscount.limits = [];\n vm.newLimit = getNewRowDefaults();\n }\n\n function removeLimit(limit) {\n _.remove(vm.volumeDiscount.limits, limit);\n }\n\n function addLimit(limit) {\n\n var newLimit = { minimumQuantity: Number(limit.minimumQuantity), discountPercent: Number(limit.discountPercent)};\n\n vm.volumeDiscount.limits.push(newLimit);\n vm.newLimit = getNewRowDefaults();\n }\n\n function getNewRowDefaults() {\n\n return {minimumQuantity: 0, discountPercent: 0};\n\n /*\n var limits = _.orderBy(vm.volumeDiscount.limits,'minimumQuantity');\n var minimumQuantity = _.max(_.map(limits,'minimumQuantity'));\n var discountPercent = _.max(_.map(limits,'discountPercent'));\n\n // addera skillnaden med det näst sista\n if (limits.length > 1) {\n minimumQuantity += minimumQuantity - limits[limits.length - 2].minimumQuantity;\n discountPercent += discountPercent - limits[limits.length - 2].discountPercent;\n }\n if (limits.length === 1) {\n minimumQuantity += minimumQuantity;\n discountPercent += discountPercent;\n }\n return {minimumQuantity: Math.round(minimumQuantity * 100) / 100, discountPercent: Math.round(discountPercent * 100) / 100};\n */\n }\n\n function enableEditing() {\n volumeDiscountCopy = angular.copy(vm.volumeDiscount);\n vm.isEditing = true;\n }\n\n function cancelEditing() {\n vm.volumeDiscount = volumeDiscountCopy;\n vm.isEditing = false;\n }\n\n function saveVolumeDiscount() {\n if (vm.isNewVolumeDiscount) {\n saveNewVolumeDiscount();\n } else {\n updateVolumeDiscount();\n }\n }\n\n function saveNewVolumeDiscount() {\n loadSpinnerService.start('mainSpinner');\n VolumeDiscountsApiService.createVolumeDiscount(vm.volumeDiscount).then(function(response) {\n vm.volumeDiscount = response;\n prepareData();\n vm.isNewVolumeDiscount = false;\n vm.isEditing = false;\n $state.go('product.volumediscounts.volumediscount', {volumeDiscountId: response.id});\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function updateVolumeDiscount() {\n loadSpinnerService.start('mainSpinner');\n VolumeDiscountsApiService.updateVolumeDiscount(vm.volumeDiscount).then(function(response) {\n vm.volumeDiscount = response;\n prepareData();\n vm.isEditing = false;\n }, function(error) {\n console.log(error);\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function prepareData() {\n if (vm.volumeDiscount === undefined) {\n return;\n }\n }\n\n function isAllInformationValid() {\n return !vm.isNewVolumeDiscount ||\n (isQuantityGroupValid());\n }\n\n function isQuantityGroupValid() {\n if (!vm.volumeDiscount.quantityGroup) {\n return false;\n }\n if (!vm.volumeDiscount.quantityGroup.id) {\n return false;\n }\n return true;\n }\n\n}\n\nangular\n .module('volumediscounts.volumediscount', [])\n .config(stateConfig)\n .controller('VolumeDiscountController', VolumeDiscountController);\n","// @ngInject\nfunction VolumeDiscountsApiService(ResourcesService) {\n\n var endpoint = 'volumediscounts';\n\n return {\n getVolumeDiscounts: getVolumeDiscounts,\n getVolumeDiscount: ResourcesService.apiFactory.get(endpoint),\n createVolumeDiscount: ResourcesService.apiFactory.create(endpoint,'VolumeDiscount'),\n updateVolumeDiscount: ResourcesService.apiFactory.update(endpoint,'VolumeDiscount'),\n getQuantityGroups: ResourcesService.apiFactory.get(endpoint + '/quantitygroups')\n };\n\n\n function getVolumeDiscounts(page, filter, pageSize, companyId) {\n\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n var args = { params: params};\n\n return ResourcesService.apiFactory.get(endpoint)(args);\n }\n\n}\n\n\nangular.module('volumediscounts.api', [])\n .factory('VolumeDiscountsApiService', VolumeDiscountsApiService);\n","\n// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('product.volumediscounts', {\n url: '/volumediscounts',\n views: {'productList@product': {\n templateUrl: 'main/product/volumediscounts/volumediscounts.tpl.html',\n controller: 'VolumeDiscountsController as vm'\n }},\n resolve: {\n volumeDiscounts: volumeDiscountsResolver\n }\n });\n}\n\n// @ngInject\nfunction volumeDiscountsResolver(VolumeDiscountsApiService) {\n return VolumeDiscountsApiService.getVolumeDiscounts();\n}\n\n// @ngInject\nfunction VolumeDiscountsController($rootScope, $state, $scope, volumeDiscounts, VolumeDiscountsApiService,loadSpinnerService) {\n var vm = this;\n\n vm.currentUser = $rootScope.currentUser;\n\n vm.volumeDiscounts = volumeDiscounts;\n vm.selectedVolumeDiscountId = 0;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n vm.itemsPerPage = null;\n\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.volumeDiscountId; }, function(newValue, oldValue) {\n vm.selectedVolumeDiscountId = parseInt($state.params.volumeDiscountId, 10);\n });\n\n $rootScope.$on('VolumeDiscount.Changed', function(event, response) {\n loadVolumeDiscounts();\n });\n }\n\n function loadVolumeDiscounts() {\n loadSpinnerService.start('mainSpinner');\n VolumeDiscountsApiService.getVolumeDiscounts(vm.currentPage,vm.searchTerm,vm.itemsPerPage).then(function(response) {\n vm.volumeDiscounts = response;\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner',{force: true});\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n loadVolumeDiscounts();\n }\n\n}\n\nangular\n .module('product.volumediscounts', ['volumediscounts.api','volumediscounts.volumediscount'])\n .config(stateConfig)\n .controller('VolumeDiscountsController', VolumeDiscountsController);\n","var module = angular.module('main.resellerorder', []);\n\nmodule.component('readonlyResellerOrderHeader',{\n templateUrl: 'main/resellerorder/genericcomponents/readonlyorderheader.cmp.tpl.html',\n bindings: {\n resellerOrder: '<',\n initCollapsed: '<'\n },\n controllerAs: 'vm',\n controller: ['$translate', 'updateAddressDialogService', 'ResellerOrdersApiService', 'ToasterService', componentController]\n});\n\n// @ngInject\nfunction componentController($translate, updateAddressDialogService, ResellerOrdersApiService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n //Properties\n vm.collapseHeader = vm.initCollapsed ? vm.initCollapsed : true;\n\n //Methods\n vm.formatAddress = formatAddress;\n vm.formatCityAndCountry = formatCityAndCountry;\n vm.isTheSameAddresses = isTheSameAddresses;\n vm.getStatusTranslation = getStatusTranslation;\n vm.isTheSameAddresses = isTheSameAddresses;\n vm.canSetOrderDeliveryAddress = canSetOrderDeliveryAddress;\n vm.setOrderDeliveryAddress = setOrderDeliveryAddress;\n vm.canSetOrderInvoiceAddress = canSetOrderInvoiceAddress;\n vm.setOrderInvoiceAddress = setOrderInvoiceAddress;\n\n function onInit() {\n }\n function onChanges() {\n console.log('ResellerOrderHeader, resellerOrder', vm.resellerOrder);\n }\n\n function canSetOrderDeliveryAddress() {\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'confirm'; }) !== undefined;\n return hasLink;\n }\n function setOrderDeliveryAddress() {\n var requestAddress = {\n addressLine1: vm.resellerOrder.deliveryAddress.addressLine1,\n addressLine2: vm.resellerOrder.deliveryAddress.addressLine2,\n addressLine3: vm.resellerOrder.deliveryAddress.addressLine3,\n city: vm.resellerOrder.deliveryAddress.city,\n country: vm.resellerOrder.deliveryAddress.country,\n postalCode: vm.resellerOrder.deliveryAddress.zipCode\n };\n updateAddressDialogService.showDialog($translate.instant('resellerorder.deliveryadress'), requestAddress).then(function (result) {\n if (result.isCompleted === true) {\n var request = {\n orderId: vm.resellerOrder.id,\n address: {\n addressLine1: result.address.addressLine1,\n addressLine2: result.address.addressLine2,\n addressLine3: result.address.addressLine3,\n city: result.address.city,\n country: result.address.country,\n postalCode: result.address.postalCode\n }\n };\n ResellerOrdersApiService.setOrderDeliveryAddress(request).then(function(response) {\n vm.resellerOrder.deliveryAddress.addressLine1 = request.address.addressLine1;\n vm.resellerOrder.deliveryAddress.addressLine2 = request.address.addressLine2;\n vm.resellerOrder.deliveryAddress.addressLine3 = request.address.addressLine3;\n vm.resellerOrder.deliveryAddress.city = request.address.city;\n vm.resellerOrder.deliveryAddress.country = request.address.country;\n vm.resellerOrder.deliveryAddress.zipCode = request.address.postalCode;\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, error.message);\n }).finally(function() {\n });\n }\n });\n }\n function canSetOrderInvoiceAddress() {\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'confirm'; }) !== undefined;\n return hasLink;\n }\n function setOrderInvoiceAddress() {\n var requestAddress = {\n addressLine1: vm.resellerOrder.invoiceAddress.addressLine1,\n addressLine2: vm.resellerOrder.invoiceAddress.addressLine2,\n addressLine3: vm.resellerOrder.invoiceAddress.addressLine3,\n city: vm.resellerOrder.invoiceAddress.city,\n country: vm.resellerOrder.invoiceAddress.country,\n postalCode: vm.resellerOrder.invoiceAddress.zipCode\n };\n updateAddressDialogService.showDialog($translate.instant('resellerorder.invoiceaddress'), requestAddress).then(function (result) {\n if (result.isCompleted === true) {\n var request = {\n orderId: vm.resellerOrder.id,\n address: {\n addressLine1: result.address.addressLine1,\n addressLine2: result.address.addressLine2,\n addressLine3: result.address.addressLine3,\n city: result.address.city,\n country: result.address.country,\n postalCode: result.address.postalCode\n }\n };\n ResellerOrdersApiService.setOrderInvoiceAddress(request).then(function(response) {\n vm.resellerOrder.invoiceAddress.addressLine1 = request.address.addressLine1;\n vm.resellerOrder.invoiceAddress.addressLine2 = request.address.addressLine2;\n vm.resellerOrder.invoiceAddress.addressLine3 = request.address.addressLine3;\n vm.resellerOrder.invoiceAddress.city = request.address.city;\n vm.resellerOrder.invoiceAddress.country = request.address.country;\n vm.resellerOrder.invoiceAddress.zipCode = request.address.postalCode;\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, error.message);\n }).finally(function() {\n });\n }\n });\n }\n\n function getStatusTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n }\n\n function formatAddress(address) {\n if (!address) {\n return \"\";\n }\n var strings = [];\n var result = \"\";\n if (address.addressLine1) {\n strings.push(address.addressLine1);\n }\n if (address.addressLine2) {\n strings.push(address.addressLine2);\n }\n if (address.addressLine3) {\n strings.push(address.addressLine3);\n }\n result = strings.join(', ');\n return result;\n }\n\n function formatCityAndCountry(address) {\n if (!address) {\n return \"\";\n }\n var strings = [];\n var result = \"\";\n if (address.postalCode) {\n strings.push(address.postalCode);\n }\n if (address.city) {\n strings.push(address.city);\n }\n if (address.country) {\n strings.push(address.country);\n }\n result = strings.join(', ');\n return result;\n }\n\n function isTheSameAddresses(address1, address2) {\n return address1.addressLine1 === address2.addressLine1 &&\n address1.addressLine2 === address2.addressLine2 &&\n address1.addressLine3 === address2.addressLine3 &&\n address1.postalCode === address2.postalCode &&\n address1.city === address2.city &&\n address1.postalCode === address2.postalCode;\n }\n}\n","var module = angular.module('main.resellerorder');\n\nmodule.component('resellerorderBreadcrumbs',{\n templateUrl: 'main/resellerorder/genericcomponents/resellerorderbreadcrumbs.cmp.tpl.html',\n bindings: {\n currentPage: '<'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n //Properties\n\n //Methods\n vm.transitionToState = transitionToState;\n\n function onInit() {\n }\n function onChanges() {\n }\n\n function transitionToState(state) {\n $state.go(state);\n }\n}\n","var module = angular.module('main.resellerorder');\n\nmodule.component('caResellerOrderSearch',{\n templateUrl: 'main/resellerorder/genericcomponents/resellerordersearch.cmp.tpl.html',\n bindings: {\n searchTerm: '<',\n onResellerOrderSelected: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($scope, $state, $stateParams, $translate, ResellerOrdersApiService, confirmationDialogService,\n printLanguageConfirmationDialogService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.resellerOrders = [];\n vm.resellerOrderPrintList = [];\n vm.resellerOrderSaleList = [];\n vm.searchTerm = {};\n vm.searchTerm.orderStatuses = [];\n vm.searchTerm.locations = [];\n vm.searchTerm.selectedFromLocation = {};\n vm.currentPage = 1;\n vm.totalItems = 0;\n vm.itemsPerPage = 15;\n vm.returnFilter = false;\n vm.isFilterOrderForInvoice = false;\n\n\n vm.filterCreated = true;\n vm.filterOpen = true;\n vm.filterClosed = true;\n vm.filterOrder = true;\n vm.filterReturnOrder = true;\n vm.filterAll = true;\n\n vm.isProcessing = false;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.loadResellerOrders = loadResellerOrders;\n vm.loadResellerReturnOrders = loadResellerReturnOrders;\n vm.loadAllResellerOrders = loadAllResellerOrders;\n vm.searchTermChange = searchTermChange;\n vm.filterAllOrders = filterAllOrders;\n vm.getOrderTypeTranslation = getOrderTypeTranslation;\n vm.getStatusTranslation = getStatusTranslation;\n vm.selectOrder = selectOrder;\n vm.createNewOrder = createNewOrder;\n vm.createNewReturnOrder = createNewReturnOrder;\n vm.containsStatus = containsStatus;\n vm.printAllResellerOrders = printAllResellerOrders;\n vm.printAllSelectedResellerOrders = printAllSelectedResellerOrders;\n vm.printSelectedResellerOrder = printSelectedResellerOrder;\n vm.checkToPrintList = checkToPrintList;\n vm.checkToSaleList = checkToSaleList;\n vm.checkAllToPrintList = checkAllToPrintList;\n vm.checkAllToSaleList = checkAllToSaleList;\n vm.getOrderType = getOrderType;\n vm.getAllCheckedToPrintList = getAllCheckedToPrintList;\n vm.getAllCheckedToSaleList = getAllCheckedToSaleList;\n vm.generateSales = generateSales;\n vm.deleteResellerOrder = deleteResellerOrder;\n vm.disableDeleteOrder = disableDeleteOrder;\n vm.disablePrintOrder = disablePrintOrder;\n vm.createReturnOrderFromOrder = createReturnOrderFromOrder;\n vm.disableMakeReturnOrder = disableMakeReturnOrder;\n vm.readyForSale = readyForSale;\n\n activate();\n\n\n function onInit() {\n vm.searchTerm.term = ($stateParams.searchTerm) ? $stateParams.searchTerm : '';\n \n //filterAllOrders();\n\n $scope.$watch(function() { return vm.currentPage; }, function() { vm.filterAllOrders(); });\n }\n function onChanges() {\n }\n\n function deleteResellerOrder(order){\n var deleteLink = order.links.find((l) => l.rel === 'delete');\n if(!deleteLink) return;\n confirmationDialogService.showDialog($translate.instant(\"support.confirmDeleteData\")).then(function (deleteConfirmed) {\n if (deleteConfirmed === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.deleteResellerOrder(deleteLink.href).then(function () {\n }, function (error) {\n console.log(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n searchTermChange();\n });\n }\n });\n }\n\n function activate() {\n loadLocations();\n /*\n $scope.$watch(function () {\n return vm.searchTerm.term;\n }, function (oldValue, newValue) {\n if (oldValue !== newValue) {\n filterAllOrders();\n }\n });*/\n }\n\n function disableDeleteOrder(order) {\n const hasDeleteLink = _.find(order.links, function(o) { return o.rel === 'delete'; }) !== undefined;\n return hasDeleteLink ? false : true;\n }\n\n function disablePrintOrder(order) {\n const hasPrintLink = _.find(order.links, function(o) { return o.rel === 'canPrintPdf'; }) !== undefined;\n return hasPrintLink ? false : true;\n }\n\n function disableMakeReturnOrder(order) {\n const hasPrintLink = _.find(order.links, function(o) { return o.rel === 'CanMakeResellerOrderReturnOrder'; }) !== undefined;\n return hasPrintLink ? false : true;\n }\n\n function createReturnOrderFromOrder(order){\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmCreateResellerOrderBasedOnOrder\")).then(function (create) {\n if (create === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.createResellerReturnOrderBasedOnOrder(order).then(function (response) {\n var orderId = response.data.id;\n $state.go('resellerorder.resellerreturnordermodify', { orderId: orderId});\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function readyForSale(){\n vm.isFilterOrderForInvoice = !vm.isFilterOrderForInvoice;\n searchTermChange();\n }\n\n function generateSales() {\n ToasterService.showInfo($translate.instant('resellerorder.generatingSales'));\n vm.isProcessing = true;\n ResellerOrdersApiService.createSalesOnClosedFulfillmentLineItems(vm.resellerOrderSaleList).then(function() {\n ToasterService.showSuccess($translate.instant('resellerorder.generateSalesSuccess'));\n }, function(error) {\n ToasterService.showError($translate.instant('resellerorder.generateSalesFailure'));\n }).finally(function() {\n vm.isFilterOrderForInvoice = false;\n vm.isProcessing = false;\n searchTermChange();\n\n });\n }\n\n function getAllCheckedToPrintList(){\n if($scope.checkeverything){\n return vm.totalItems;\n }\n \n return vm.resellerOrderPrintList.length;\n }\n\n function getAllCheckedToSaleList(){\n if($scope.checkeverything){\n return vm.totalItems;\n }\n return vm.resellerOrderSaleList.length;\n }\n\n function checkAllToPrintList(checked){\n vm.resellerOrderPrintList = [];\n if(checked){\n _.forEach(vm.resellerOrders, function(resellerOrder){\n vm.resellerOrderPrintList.push(resellerOrder.id);\n });\n }\n }\n\n function checkAllToSaleList(checked){\n vm.resellerOrderSaleList = [];\n if(checked){\n _.forEach(vm.resellerOrders, function(resellerOrder){\n vm.resellerOrderSaleList.push(resellerOrder.id);\n });\n }\n }\n\n function checkToPrintList(orderId){\n var matchingIndex = _.findIndex(vm.resellerOrderPrintList, function(printId){\n return orderId == printId\n });\n\n if(matchingIndex >= 0)\n vm.resellerOrderPrintList.splice(matchingIndex, 1);\n else\n vm.resellerOrderPrintList.push(orderId);\n \n if(vm.resellerOrderPrintList.length === 0){\n $scope.checkall = false;\n $scope.checkeverything = false;\n }\n }\n\n function checkToSaleList(orderId){\n var matchingIndex = _.findIndex(vm.resellerOrderSaleList, function(printId){\n return orderId == printId\n });\n\n if(matchingIndex >= 0)\n vm.resellerOrderSaleList.splice(matchingIndex, 1);\n else\n vm.resellerOrderSaleList.push(orderId);\n \n if(vm.resellerOrderSaleList.length === 0){\n $scope.checkall = false;\n $scope.checkeverything = false;\n }\n }\n\n function printAllSelectedResellerOrders(){\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) \n {\n loadSpinnerService.start('mainSpinner');\n \n \n if($scope.checkeverything){\n var request = { \n filterReturnOrder: vm.filterReturnOrder,\n filterOrder: vm.filterOrder,\n locale: result.locale,\n filter: vm.searchTerm.term,\n orderStatuses: vm.searchTerm.orderStatuses\n };\n \n ResellerOrdersApiService.getAllSearchedResellerOrderZip(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n vm.resellerOrderPrintList = [];\n $scope.checkall = false;\n $scope.checkeverything = false;\n ToasterService.showSuccess($translate.instant('common.done'));\n loadSpinnerService.stop('mainSpinner');\n });\n }\n else{\n var request = { \n resellerOrderIds : vm.resellerOrderPrintList,\n locale: result.locale\n };\n\n ResellerOrdersApiService.getSelectedResellerOrderZip(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n vm.resellerOrderPrintList = [];\n $scope.checkall = false;\n ToasterService.showSuccess($translate.instant('common.done'));\n loadSpinnerService.stop('mainSpinner');\n });\n }\n //ResellerOrdersApiService.getSelectedResellerOrderPdf(request).then(function (response) {\n //}, function (error) {\n // ToasterService.showError(error.message);\n //}).finally(function () {\n // vm.resellerOrderPrintList = [];\n // $scope.checkall = false;\n // ToasterService.showSuccess($translate.instant('common.done'));\n // loadSpinnerService.stop('mainSpinner');\n //});\n } \n \n });\n }\n\n function printSelectedResellerOrder(orderId){\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) \n {\n loadSpinnerService.start('mainSpinner');\n var request = { \n resellerOrderIds : [orderId],\n locale: result.locale\n };\n\n ResellerOrdersApiService.getSelectedResellerOrderZip(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n vm.resellerOrderPrintList = [];\n $scope.checkall = false;\n ToasterService.showSuccess($translate.instant('common.done'));\n loadSpinnerService.stop('mainSpinner');\n });\n } \n });\n }\n\n function printAllResellerOrders() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n var request = {\n orderStatus: vm.searchTerm.orderStatuses.length > 0 ? vm.searchTerm.orderStatuses[0] : '',\n locale: result.locale\n };\n\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getAllResellerOrdersPdf(request).then(function (response) {\n }, function (error) {\n console.log(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getOrderType(type){\n if(type.indexOf('Return') !== -1)\n return $translate.instant('resellerorder.resellerreturnordershort');\n else\n return $translate.instant('resellerorder.resellerordershort');\n }\n\n function containsStatus(status) {\n if (vm.searchTerm.orderStatuses.length === 0 && !vm.returnFilter) {\n return true;\n }\n if (_.find(vm.searchTerm.orderStatuses, function(o) { return o === status; })) {\n return true;\n }\n }\n\n function createNewOrder() {\n $state.go('resellerorder.resellerordercreate');\n }\n\n function createNewReturnOrder() {\n $state.go('resellerorder.resellerreturnordercreate');\n }\n\n function loadResellerOrders() {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrders(vm.currentPage, vm.searchTerm.term, vm.itemsPerPage, vm.searchTerm.orderStatuses, vm.isFilterOrderForInvoice).then(function (response) {\n vm.resellerOrders = response.data.data.results;\n vm.totalItems = response.data.data.total;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function loadResellerReturnOrders() {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerReturnOrders(vm.currentPage, vm.searchTerm.term, vm.itemsPerPage, vm.searchTerm.orderStatuses).then(function (response) {\n vm.resellerOrders = response.data.data.results;\n vm.totalItems = response.data.data.total;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function loadAllResellerOrders() {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getAllResellerOrders(vm.currentPage, vm.searchTerm.term, vm.itemsPerPage, vm.searchTerm.orderStatuses).then(function (response){\n vm.resellerOrders = response.data.data.results;\n vm.totalItems = response.data.data.total;\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function loadLocations() {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getStores().then(function (response) {\n vm.locations = response.stores;\n var newEmptyLocation = {\n id: -1,\n locationName: $translate.instant('common.allLocations')\n };\n vm.locations.unshift(newEmptyLocation);\n vm.searchTerm.selectedFromLocation = vm.locations[0];\n\n $scope.$watch(function () {\n return vm.searchTerm.selectedFromLocation ? vm.searchTerm.selectedFromLocation.id : undefined;\n }, function(oldValue, newValue) {\n if (oldValue !== newValue || newValue === -1) {\n filterAllOrders();\n }\n });\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function searchTermChange() { \n if((!vm.filterClosed && !vm.filterCreated && !vm.filterOpen) || (!vm.filterReturnOrder && !vm.filterOrder)){\n vm.resellerOrders = [];\n vm.totalItems = 0;\n vm.resellerOrderPrintList = [];\n $scope.checkall = false;\n $scope.checkeverything = false;\n } \n else if((vm.filterOrder && !vm.filterReturnOrder) || vm.isFilterOrderForInvoice)\n loadResellerOrders();\n else if(vm.filterReturnOrder && !vm.filterOrder)\n loadResellerReturnOrders();\n else\n loadAllResellerOrders();\n }\n\n function selectOrder(order) {\n \n var state = _.find(order.links, function(o) { return o.rel === \"state\"; });\n switch(state.href) {\n case \"modify\": \n if(order.orderType === 'ResellerReturnOrder'){\n $state.go('resellerorder.resellerreturnordermodify', { orderId: order.id });\n } \n else {\n $state.go('resellerorder.resellerordermodify', { orderId: order.id });\n } break;\n default:\n case \"fulfill\":\n case \"view\": $state.go('resellerorder.resellerorderview', { orderId: order.id }); break;\n }\n } \n\n function filterAllOrders(isCheckBoxAll){\n var statuses = [];\n if(isCheckBoxAll){\n if(vm.filterAll){\n vm.filterCreated = vm.filterOpen = vm.filterClosed = vm.filterReturnOrder = vm.filterOrder = true;\n }\n else{\n vm.filterCreated = vm.filterOpen = vm.filterClosed = vm.filterReturnOrder = vm.filterOrder = false;\n }\n }\n else if(vm.filterClosed && vm.filterCreated && vm.filterOpen && vm.filterReturnOrder && vm.filterOrder)\n vm.filterAll = true;\n else \n vm.filterAll = false;\n\n if(vm.filterCreated)\n statuses.push('Created');\n if(vm.filterOpen)\n statuses.push('Open');\n if(vm.filterClosed)\n statuses.push('Closed');\n\n vm.resellerOrderPrintList = [];\n if(!$scope.checkeverything)\n {\n $scope.checkall = false;\n }\n else{\n checkAllToPrintList(true);\n }\n \n vm.searchTerm.orderStatuses = statuses;\n searchTermChange();\n }\n\n function getStatusTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n }\n\n function getOrderTypeTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.type' + textCapital);\n }\n }\n}\n","var module = angular.module('main.resellerorder');\n\nmodule.component('resellerReturnorderBreadcrumbs',{\n templateUrl: 'main/resellerorder/genericcomponents/resellerreturnorderbreadcrumbs.cmp.tpl.html',\n bindings: {\n currentPage: '<'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $translate) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n //Properties\n\n //Methods\n vm.transitionToState = transitionToState;\n\n function onInit() {\n }\n function onChanges() {\n }\n\n function transitionToState(state) {\n $state.go(state);\n }\n}\n","var module = angular.module('main.resellerorder');\r\n\r\nmodule.component('caResellerOrderScannerNavigation',{\r\n templateUrl: 'main/resellerorder/genericcomponents/scannernavigation.cmp.tpl.html',\r\n bindings: {\r\n initCollapsed: '<',\r\n initFocused: '<',\r\n navigateToStateName: '<'\r\n },\r\n controllerAs: 'vm',\r\n controller: ['$translate', '$state', 'ToasterService', 'ResellerOrdersApiService', 'loadSpinnerService', componentController]\r\n});\r\n\r\nfunction componentController($translate, $state, ToasterService, ResellerOrdersApiService, loadSpinnerService) {\r\n var vm = this;\r\n\r\n vm.$onInit = onInit;\r\n vm.$onChanges = onChanges;\r\n vm.submitScannerInput = submitScannerInput;\r\n\r\n vm.scannerInput = \"\";\r\n\r\n vm.collapseHeader = vm.initCollapsed ? vm.initCollapsed : true;\r\n\r\n function onInit() {\r\n if (vm.initFocused) {\r\n angular.element(\"#resellerOrderScannerNavigationField\").focus();\r\n }\r\n\r\n $(\"#resellerOrderScannerNavigationField\").keydown(function(e) {\r\n var enterKeyCode = 13;\r\n if (e !== undefined && e.keyCode === enterKeyCode) {\r\n submitScannerInput();\r\n }\r\n });\r\n }\r\n\r\n function onChanges(changes) {\r\n\r\n }\r\n\r\n function submitScannerInput() {\r\n console.log(\"Scanned the following: \", vm.scannerInput);\r\n var orderNumber = vm.scannerInput.split(':')[0];\r\n var productNumber = vm.scannerInput.split(':')[1];\r\n\r\n var stateName = vm.navigateToStateName;\r\n\r\n loadSpinnerService.start('mainSpinner');\r\n ResellerOrdersApiService.getResellerOrderByOrderNumber(orderNumber).then(function(response) {\r\n var orderId = response.id;\r\n $state.go(stateName, {\r\n orderId: orderId,\r\n productNumber: productNumber,\r\n usingScannerNavigation: true\r\n });\r\n }, function(error) {\r\n ToasterService.showError(error);\r\n }).finally(function() {\r\n loadSpinnerService.stop('mainSpinner', { force: true });\r\n });\r\n\r\n\r\n }\r\n}","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder', {\n url: '/resellerorder',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/resellerorder/resellerorder.tpl.html',\n controller: 'MainResellerOrderController as vm'\n });\n}\n\n// @ngInject\nfunction MainResellerOrderController() {\n //var vm = this;\n}\n\nangular\n .module('main.resellerorder', [\n 'resellerorder.api',\n 'resellerorder.resellerordersearch',\n 'resellerorder.resellerordercreate',\n 'resellerorder.resellerreturnordercreate',\n 'resellerorder.resellerreturnordermodify',\n 'resellerorder.resellerordermodify',\n 'resellerorder.createfulfillment',\n 'resellerorder.manageorders',\n 'resellerorder.manageproducts',\n 'resellerorder.resellerorderview'\n ])\n .config(stateConfig)\n .controller('MainResellerOrderController', MainResellerOrderController);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('createResellerOrderHeader',{\n templateUrl: 'main/resellerorder/resellerordercreate/components/createorderheader.cmp.tpl.html',\n bindings: {\n resellerOrder: '='\n },\n controllerAs: 'vm',\n controller: ['$window','$scope','ResellerOrdersApiService','ToasterService',componentController]\n});\n\n// @ngInject\nfunction componentController($window, $scope, ResellerOrdersApiService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.stores = [];\n vm.resellers = [];\n vm.warehouses = [];\n vm.collections = [];\n vm.selectedReseller = {};\n vm.selectedSaleLocation = {};\n vm.selectedWarehouse = {};\n vm.selectedCollection= {};\n\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n activate();\n\n function activate() {\n $scope.$watch(function () { return vm.selectedReseller.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.resellerId = newValue;\n }\n });\n $scope.$watch(function () { return vm.selectedSaleLocation.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.saleLocationId = newValue;\n saveLastUsedSaleLocationId(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedWarehouse.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.warehouseId = newValue;\n saveLastUsedWarehouseId(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedCollection.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.collectionId = newValue;\n saveLastUsedCollectionId(newValue);\n }\n });\n }\n\n function onInit() {\n ResellerOrdersApiService.getWarehouses().then(function(response) {\n vm.warehouses = response.warehouses;\n var lastUsedWarehouseId = getLastUsedWarehouseId();\n vm.selectedWarehouse = _.find(vm.warehouses, function(o) { return o.id === lastUsedWarehouseId; });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n ResellerOrdersApiService.getStores().then(function(response) {\n vm.stores = response.stores;\n var lastUsedSaleLocationId = getLastUsedSaleLocationId();\n vm.selectedSaleLocation = _.find(vm.stores, function(o) { return o.id === lastUsedSaleLocationId; });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n ResellerOrdersApiService.getResellers().then(function(response) {\n vm.resellers = response.resellers;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n ResellerOrdersApiService.getOrderCollections().then(function(response) {\n vm.collections = response;\n var lastUsedCollectionId = getLastUsedCollectionId();\n vm.selectedCollection = _.find(vm.collections, function(o) { return o.id === lastUsedCollectionId; });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n function onChanges() {\n }\n\n function getLastUsedSaleLocationId() {\n if ($window.localStorage.createorderheader_lastUsedSaleLocationId) {\n var lastUsedSaleLocationId = parseInt($window.localStorage.getItem('createorderheader_lastUsedSaleLocationId'));\n if (isNaN(lastUsedSaleLocationId)) { return undefined; }\n return lastUsedSaleLocationId;\n }\n return undefined;\n }\n function getLastUsedWarehouseId() {\n if ($window.localStorage.createorderheader_lastUsedWarehouseId) {\n var lastUsedWarehouseId = parseInt($window.localStorage.getItem('createorderheader_lastUsedWarehouseId'));\n if (isNaN(lastUsedWarehouseId)) { return undefined; }\n return lastUsedWarehouseId;\n }\n return undefined;\n }\n function getLastUsedCollectionId() {\n if ($window.localStorage.createorderheader_lastUsedCollectionId) {\n var lastUsedCollectionId = parseInt($window.localStorage.getItem('createorderheader_lastUsedCollectionId'));\n if (isNaN(lastUsedCollectionId)) { return undefined; }\n return lastUsedCollectionId;\n }\n return undefined;\n }\n function saveLastUsedSaleLocationId(id) {\n $window.localStorage.setItem('createorderheader_lastUsedSaleLocationId', id);\n }\n function saveLastUsedCollectionId(id) {\n $window.localStorage.setItem('createorderheader_lastUsedCollectionId', id);\n }\n function saveLastUsedWarehouseId(id) {\n $window.localStorage.setItem('createorderheader_lastUsedWarehouseId', id);\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.resellerordercreate', {\n url: '/new/',\n templateUrl: 'main/resellerorder/resellerordercreate/resellerordercreate.tpl.html',\n controller: 'ResellerOrderCreateController as vm',\n resolve: {\n resellerOrder: function() {\n return {\n links: [],\n order: {\n externalOrderNumber: '',\n id: 0,\n // lineItems: [],\n resellerId: 0,\n saleLocationId: 0,\n status: 'Created',\n warehouseId: 0,\n collectionId: 0\n }\n };\n }\n },\n params: {\n }\n });\n}\n\n// @ngInject\nfunction ResellerOrderCreateController($rootScope, $state, $translate, resellerOrder, ResellerOrdersApiService, confirmationDialogService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.resellerOrder = resellerOrder.order;\n vm.resellerOrder.links = resellerOrder.links;\n vm.links = resellerOrder.links;\n vm.canAccess = $rootScope.canAccess;\n\n //Public methods\n vm.canCreateOrderHeader = canCreateOrderHeader;\n vm.createOrderHeader = createOrderHeader;\n vm.createNewReturnOrder = createNewReturnOrder;\n\n activate();\n\n function activate() {\n }\n\n function createNewReturnOrder() {\n $state.go('resellerorder.resellerreturnordercreate');\n }\n\n function canCreateOrderHeader() {\n var hasSetReseller = vm.resellerOrder.resellerId > 0;\n var hasSetSaleLocation = vm.resellerOrder.saleLocationId > 0;\n var hasSetWarehouse = vm.resellerOrder.warehouseId > 0;\n var hasSetCollection = vm.resellerOrder.collectionId > 0;\n\n\n return hasSetReseller && hasSetSaleLocation && hasSetWarehouse && hasSetCollection;\n }\n\n function createOrderHeader() {\n //call backend, save order\n console.log(\"order\",vm.resellerOrder);\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.create(vm.resellerOrder).then(function (response) {\n var orderId = response.data.id;\n $state.go('resellerorder.resellerordermodify', { orderId: orderId });\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n}\n\nangular\n .module('resellerorder.resellerordercreate', [])\n .config(stateConfig)\n .controller('ResellerOrderCreateController', ResellerOrderCreateController);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('createResellerorderDeliveryDateVariants', {\n templateUrl: 'main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createDeliveryDate.cmp.tpl.html',\n bindings: {\n selectedProduct: '<',\n selectedWarehouse: '<',\n minimumAvailableStock: '<',\n onAppliedFulfillment: '&'\n },\n controllerAs: 'vm',\n controller: componentController \n});\n\n// @ngInject\nfunction componentController($scope, $state, $window, $translate, ResellerOrdersApiService, loadSpinnerService, confirmationDialogService, ToasterService) {\n var vm = this;\n var date = moment().format('L');\n\n //Properties\n vm.deliveryDate = new Date();\n vm.allDeliveryDate = new Date();\n vm.IsChecked = false;\n vm.lineItems = [];\n vm.displayItems = [];\n \n //Methods \n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.applyDeliveryDate = applyDeliveryDate;\n vm.goToOrder = goToOrder;\n vm.quantity = getQuantity;\n\n function onInit() {\n activate(); \n $scope.$watch(function() { return vm.selectedProduct.variants; }, function(variants) {\n vm.lineItems = getLineItems();\n vm.displayItems = displayLineItems();\n\n }); \n }\n\n function onChanges() {\n }\n\n function getLineItems(){\n var lineItems = [];\n var newItem = {};\n var date = moment();\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n _.forEach(ordVar.lineItems, function (li) {\n if(vm.IsChecked === true){\n date = moment(vm.allDeliveryDate).format('L');\n newItem = {\n articleId: vm.selectedProduct.articleId,\n variantDetail1Id: vm.selectedProduct.variantDetail1Id,\n orderId:ordVar.orderId,\n lineItemId: li.lineItemId,\n orderNumber: ordVar.orderNumber,\n resellerName: ordVar.resellerName,\n resellerPriority: ordVar.resellerPriority,\n deliveryDate: date,\n quantity: li.quantity, \n tenantName: vm.selectedProduct.tenantName \n };\n }\n else {\n date = moment(li.deliveryDate).format('L');\n newItem = {\n articleId: vm.selectedProduct.articleId,\n variantDetail1Id: vm.selectedProduct.variantDetail1Id,\n orderId:ordVar.orderId,\n lineItemId: li.lineItemId,\n orderNumber: ordVar.orderNumber,\n resellerName: ordVar.resellerName,\n resellerPriority: ordVar.resellerPriority,\n deliveryDate: li.plannedDeliverydate,\n quantity: li.quantity, \n tenantName: vm.selectedProduct.tenantName \n };\n }\n lineItems.push(newItem);\n \n });\n });\n return lineItems;\n }\n\n function displayLineItems(){\n var displayItem = {};\n var displayItems = [];\n var result = [];\n var orderNum = '';\n \n _.forEach(vm.lineItems, function(item){\n displayItem = {\n articleId: item.articleId,\n variantDetail1Id: item.variantDetail1Id,\n orderId:item.orderId,\n lineItemId:item.lineItemId,\n orderNumber: item.orderNumber,\n resellerName: item.resellerName,\n resellerPriority: item.resellerPriority,\n deliveryDate: item.deliveryDate,\n quantity: item.quantity, \n tenantName: item.tenantName \n };\n displayItems.push(displayItem);\n });\n displayItems = totalQuantityPerOrder(displayItems);\n _.forEach(displayItems, function(di){\n\n if(di.orderNumber + '' !== orderNum){\n result.push(di);\n orderNum = di.orderNumber; \n }\n });\n return result;\n }\n function totalQuantityPerOrder(displayItemList){\n _.forEach(displayItemList, function(di){\n \n di.quantity = totalQuantityFunc(displayItemList,di.orderNumber);\n \n });\n return displayItemList;\n }\n function totalQuantityFunc(displayItemList,orderNumber){\n var totalQuantity = 0;\n _.forEach(displayItemList, function(di){\n if(di.orderNumber === orderNumber){\n totalQuantity += di.quantity; \n } \n });\n return totalQuantity;\n }\n\n function getQuantity(variant){\n _.forEach(variant.lineItems, function (li) {\n var newItem = { \n quantity: li.quantity,\n };\n });\n }\n\n function goToOrder(orderId) {\n var url = $state.href('resellerorder.resellerorderview', {orderId: orderId});\n $window.open(url,'_blank');\n }\n\n function activate() {\n loadFulfillableOrders();\n }\n\n function applyDeliveryDate() {\n var newItem = {};\n var date = moment();\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmApplyDeliveryDate'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n var itemsDeliveryDate = { ItemIdsAndDates: [] };\n _.forEach(vm.displayItems, function (di) { \n if(vm.IsChecked === true){\n date = moment(vm.allDeliveryDate).format('L');\n newItem = {\n articleId: di.articleId, \n variantDetail1Id: di.variantDetail1Id,\n orderId: di.orderId,\n lineItemId:di.lineItemId,\n deliveryDate: date \n };\n }\n else {\n date = moment(di.deliveryDate).format('L');\n newItem = {\n articleId: di.articleId, \n variantDetail1Id: di.variantDetail1Id,\n orderId: di.orderId,\n lineItemId:di.lineItemId,\n deliveryDate:date \n };\n }\n itemsDeliveryDate.ItemIdsAndDates.push(newItem);\n });\n\n ResellerOrdersApiService.setVariantFufillmentDeliveryDate(itemsDeliveryDate).then(function(response) {\n vm.onAppliedFulfillment();\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n });\n }\n\n function loadFulfillableOrders() {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getFulfillableOrders(vm.selectedWarehouse.id, vm.minimumAvailableStock, vm.selectedProduct.articleId, vm.selectedProduct.variantDetail1Id).then(function (response) {\n vm.selectedProduct.variants = response.data.orderVariants;\n vm.selectedProduct.variantNames = [];\n\n _.sortBy(vm.selectedProduct.variants, 'orderNumber');\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n ordVar.sumFulfillableQuantity = 0;\n ordVar.sumQuantity = 0;\n ordVar.keepRemainder = true;\n\n _.sortBy(ordVar.lineItems, 'variant2SortOrder');\n _.forEach(ordVar.lineItems, function (li) {\n if (!vm.selectedProduct.variantNames) { vm.selectedProduct.variantNames = []; }\n if (vm.selectedProduct.variantNames.indexOf(li.variant2DetailName) === -1) {\n vm.selectedProduct.variantNames.push(li.variant2DetailName);\n }\n ordVar.sumFulfillableQuantity += li.fulfillableQuantity;\n ordVar.sumQuantity += li.quantity;\n });\n });\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n}\n","// @ngInject\nfunction CreateVariantDeliveryDateDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(fulfillableProduct, selectedWarehouse, minimumAvailableStock) {\n\n var modalDefaults = {\n backdrop: 'static', //true, false, static\n keyboard: true,\n controller: 'CreateVariantDeliveryDateDialogServiceController as vm',\n templateUrl:'main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createVariantDeliveryDateDialog.tpl.html',\n size: 'super'\n };\n\n modalDefaults.resolve = {\n fulfillableProduct: function() {\n return fulfillableProduct;\n },\n selectedWarehouse: function() {\n return selectedWarehouse;\n },\n minimumAvailableStock: function() {\n return minimumAvailableStock;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction CreateVariantDeliveryDateDialogServiceController($uibModalInstance, fulfillableProduct, selectedWarehouse, minimumAvailableStock) {\n var vm = this;\n\n //Properties\n vm.fulfillableProduct = fulfillableProduct;\n vm.selectedWarehouse = selectedWarehouse;\n vm.minimumAvailableStock = minimumAvailableStock;\n\n //Methods\n vm.closeModal = closeModal;\n vm.fulfillmentApplied = fulfillmentApplied;\n\n function closeModal(args) {\n $uibModalInstance.close(args);\n }\n\n function fulfillmentApplied(itemsToFulfill) {\n vm.closeModal({ success: true, itemsToFulfill: itemsToFulfill });\n }\n}\n\nangular\n .module('services.dialogs.createVariantDeliveryDateDialogService', [])\n .service('CreateVariantDeliveryDateDialogService', CreateVariantDeliveryDateDialogService)\n .controller('CreateVariantDeliveryDateDialogServiceController', CreateVariantDeliveryDateDialogServiceController);\n","// @ngInject\nfunction CreateVariantFulfillmentDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(fulfillableProduct, selectedWarehouse, minimumAvailableStock) {\n\n var modalDefaults = {\n backdrop: 'static', //true, false, static\n keyboard: true,\n controller: 'CreateVariantFulfillmentDialogServiceController as vm',\n templateUrl: 'main/resellerorder/resellerorderfulfillment/createfulfillment/components/createVariantFulfillmentDialog.tpl.html',\n size: 'super'\n };\n\n modalDefaults.resolve = {\n fulfillableProduct: function() {\n return fulfillableProduct;\n },\n selectedWarehouse: function() {\n return selectedWarehouse;\n },\n minimumAvailableStock: function() {\n return minimumAvailableStock;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction CreateVariantFulfillmentDialogServiceController($uibModalInstance, fulfillableProduct, selectedWarehouse, minimumAvailableStock) {\n var vm = this;\n\n //Properties\n vm.fulfillableProduct = fulfillableProduct;\n vm.selectedWarehouse = selectedWarehouse;\n vm.minimumAvailableStock = minimumAvailableStock;\n\n //Methods\n vm.closeModal = closeModal;\n vm.fulfillmentApplied = fulfillmentApplied;\n\n function closeModal(args) {\n $uibModalInstance.close(args);\n }\n\n function fulfillmentApplied(itemsToFulfill) {\n vm.closeModal({ success: true, itemsToFulfill: itemsToFulfill });\n }\n}\n\nangular\n .module('services.dialogs.createVariantFulfillmentDialogService', [])\n .service('CreateVariantFulfillmentDialogService', CreateVariantFulfillmentDialogService)\n .controller('CreateVariantFulfillmentDialogServiceController', CreateVariantFulfillmentDialogServiceController);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('createResellerorderFulfillmentVariants', {\n templateUrl: 'main/resellerorder/resellerorderfulfillment/createfulfillment/components/createfulfillmentvariants.cmp.tpl.html',\n bindings: {\n selectedProduct: '<',\n selectedWarehouse: '<',\n minimumAvailableStock: '<',\n onAppliedFulfillment: '&'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($scope, $state, $window, $translate, ResellerOrdersApiService, loadSpinnerService, confirmationDialogService) {\n var vm = this;\n\n //Properties\n vm.allKeepRemainder = true;\n var canNotConfirmFulfillmentBecauseOfTooLowStockQuantities = '';\n var canNotConfirmFulfillmentBecauseOfZeroQuantities = '';\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.getFulfillableQuantitySum = getFulfillableQuantitySum;\n vm.getQuantitySum = getQuantitySum;\n vm.getDifference = getDifference;\n vm.getStockQuantity = getStockQuantity;\n vm.clearRowQuantities = clearRowQuantities;\n vm.resetRowQuantities = resetRowQuantities;\n vm.canResetRowQuantities = canResetRowQuantities;\n vm.clearAllRowQuantities = clearAllRowQuantities;\n vm.resetAllRowQuantities = resetAllRowQuantities;\n vm.canResetAllRowQuantities = canResetAllRowQuantities;\n vm.formatDifference = formatDifference;\n vm.canApplyFulfillment = canApplyFulfillment;\n vm.applyFulfillment = applyFulfillment;\n vm.getApplyFulfillmentTooltipText = getApplyFulfillmentTooltipText;\n vm.preventInputLessThanZero = preventInputLessThanZero;\n vm.goToOrder = goToOrder;\n\n activate();\n\n function onInit() {\n \n }\n function onChanges() {\n \n }\n\n function goToOrder(orderId) {\n var url = $state.href('resellerorder.resellerorderview', {orderId: orderId});\n $window.open(url,'_blank');\n }\n\n function activate() {\n loadFulfillableOrders();\n var result = _.sortBy(vm.selectedProduct.variantList, function(variant) { return variant.variant2SortOrder; });\n console.log(result);\n $scope.$watch(function () { return vm.allKeepRemainder; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n ordVar.keepRemainder = vm.allKeepRemainder;\n });\n }\n });\n canNotConfirmFulfillmentBecauseOfTooLowStockQuantities = $translate.instant('resellerorder.canNotConfirmFulfillmentBecauseOfTooLowStockQuantities');\n canNotConfirmFulfillmentBecauseOfZeroQuantities = $translate.instant('resellerorder.canNotConfirmFulfillmentBecauseOfZeroQuantities');\n }\n\n function getApplyFulfillmentTooltipText() {\n if (!vm.selectedProduct || !vm.selectedProduct.variants || vm.selectedProduct.variants.length === 0) { return false; }\n\n if (hasPositiveDiff() === false) {\n return canNotConfirmFulfillmentBecauseOfTooLowStockQuantities;\n }\n if (hasPositiveTotal() === false) {\n return canNotConfirmFulfillmentBecauseOfZeroQuantities;\n }\n return '';\n }\n function canApplyFulfillment() {\n if (!vm.selectedProduct || !vm.selectedProduct.variants || vm.selectedProduct.variants.length === 0) { return false; }\n\n var fulfillHasPositiveDiff = true;\n var nonFakeArtVarId = [];\n\n\n // Finds all variantId's in all lineitems that aren't fake. And adds the correct {VariandId, Quantity} to nonFakeArtVarId array.\n _.forEach(vm.selectedProduct.variants, function(variant){ \n _.forEach(variant.lineItems, function(lineItem){\n if(!lineItem.isFake){\n var canBeAddedToArray = !_.find(nonFakeArtVarId, function(artVarId) { return artVarId.variantId === lineItem.articleVariantId})\n if(canBeAddedToArray)\n nonFakeArtVarId.push({variantId : lineItem.articleVariantId , quantity : lineItem.quantity});\n else{ // Increase the quantity\n _.find(nonFakeArtVarId, function(artVarId) { \n if(artVarId.variantId === lineItem.articleVariantId) {\n artVarId.quantity += lineItem.quantity;\n }\n });\n }\n }\n });\n });\n\n // Checks if there are any negative diffs after fulfillment\n _.forEach(vm.selectedProduct.variantList, function(varL){\n if(fulfillHasPositiveDiff){\n _.find(nonFakeArtVarId, function(artVarId) \n { \n if(artVarId.variantId === varL.id){\n if(varL.stockQuantity - artVarId.quantity < 0)\n fulfillHasPositiveDiff = false;\n if(artVarId.quantity === 0)\n fulfillHasPositiveDiff = true;\n\n } \n });\n }\n });\n\n return fulfillHasPositiveDiff;\n }\n function hasPositiveDiff() {\n var canApplyFulfillment = true;\n\n _.forEach(vm.selectedProduct.variantNames, function (variantName) {\n var diff = getDifference(variantName);\n if (diff < 0) {\n canApplyFulfillment = false;\n }\n });\n\n return canApplyFulfillment;\n }\n function hasPositiveTotal() {\n var totalDiff = 0;\n _.forEach(vm.selectedProduct.variantNames, function (variantName) {\n totalDiff += getQuantitySum(variantName);\n });\n\n return totalDiff > 0;\n }\n function applyFulfillment() {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmApplyFulfillment'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n var itemsToFulfill = [];\n\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n _.forEach(ordVar.lineItems, function (li) {\n if (!li.isFake) {\n var newItem = {\n orderId: li.orderId,\n lineItemId: li.lineItemId,\n articleVariantId: li.articleVariantId,\n quantity: li.quantity,\n closeOrderLine: !ordVar.keepRemainder\n };\n itemsToFulfill.push(newItem);\n }\n });\n });\n\n vm.onAppliedFulfillment({ itemsToFulfill: itemsToFulfill });\n }\n });\n }\n\n function getStockQuantity(variantName) {\n if (!variantName || variantName === '') { return 0; }\n\n var stockQuantity = 0;\n try {\n _.forEach(vm.selectedProduct.variantList, function (variant) {\n if(variantName === variant.variant2DetailName){\n stockQuantity = variant.stockQuantity;\n }\n });\n } catch (error) {\n console.log(error);\n }\n\n return stockQuantity;\n }\n\n function clearRowQuantities(variant) {\n _.forEach(variant.lineItems, function (li) {\n li.quantity = 0;\n });\n }\n\n function resetRowQuantities(variant) {\n _.forEach(variant.lineItems, function (li) {\n li.quantity = li.fulfillableQuantity;\n });\n }\n\n function canResetRowQuantities(variant) {\n var canResetRowQuantities = false;\n _.forEach(variant.lineItems, function (li) {\n if (li.quantity !== li.fulfillableQuantity) {\n canResetRowQuantities = true;\n }\n });\n\n return canResetRowQuantities;\n }\n\n function clearAllRowQuantities() {\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n _.forEach(ordVar.lineItems, function (li) {\n li.quantity = 0;\n });\n });\n }\n\n function resetAllRowQuantities() {\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n _.forEach(ordVar.lineItems, function (li) {\n li.quantity = li.fulfillableQuantity;\n });\n });\n }\n\n function canResetAllRowQuantities() {\n var canResetAllRowQuantities = false;\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n _.forEach(ordVar.lineItems, function (li) {\n if (li.quantity !== li.fulfillableQuantity) {\n canResetAllRowQuantities = true;\n }\n });\n });\n\n return canResetAllRowQuantities;\n }\n\n function populateVariantList () {\n var lineItem = {}; \n _.forEach(vm.selectedProduct.variants, function (variant) {\n _.forEach(vm.selectedProduct.variantList, function(v){\n\n var resultLineItem = _.find(variant.lineItems, function(lineitem){ \n return lineitem.variant2DetailName == v.variant2DetailName;\n });\n\n if(resultLineItem != undefined){\n // lineItem = {\n // id : v.id,\n // tenantName : vm.selectedProduct.tenantName,\n // orderId : variant.orderId,\n // orderNumber: resultLineItem.orderNumber,\n // resellerName : variant.resellerName,\n // resellerPriority : variant.resellerPriority, \n // variant1DetailName : resultLineItem.variant1DetailName,\n // variant2DetailName : resultLineItem.variant2DetailName,\n // variant2SortOrder : resultLineItem.variant2SortOrder,\n // fulfillableQuantity : resultLineItem.fulfillableQuantity, \n // stockQuantity : resultLineItem.stockQuantity, \n // quantity : resultLineItem.quantity,\n // keepRemainder : variant.keepRemainder\n // }\n \n }\n else {\n lineItem = {\n isFake: true,\n id : v.id, \n tenantName : vm.selectedProduct.tenantName,\n variant1DetailName : v.variant1DetailName,\n variant2DetailName : v.variant2DetailName,\n variant2SortOrder : v.variant2SortOrder,\n fulfillableQuantity : 0, \n stockQuantity : 0, \n quantity : 0,\n keepRemainder : false\n }\n variant.lineItems.push(lineItem);\n }\n }); \n \n }); \n }\n\n\n\n function loadFulfillableOrders() {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getFulfillableOrders(vm.selectedWarehouse.id, vm.minimumAvailableStock, vm.selectedProduct.articleId, vm.selectedProduct.variantDetail1Id).then(function (response) {\n vm.selectedProduct.variants = response.data.orderVariants;\n vm.selectedProduct.variantList = response.data.variants;\n vm.selectedProduct.variantNames = [];\n populateVariantList();\n var result = _.sortBy(vm.selectedProduct.variantList, function(variant) { return variant.variant2SortOrder; });\n vm.selectedProduct.variantList = result;\n console.log(result);\n _.sortBy(vm.selectedProduct.variants, 'orderNumber');\n _.forEach(vm.selectedProduct.variants, function (ordVar) {\n ordVar.sumFulfillableQuantity = 0;\n ordVar.sumQuantity = 0;\n ordVar.keepRemainder = true;\n\n var sortedLineItems = _.sortBy(ordVar.lineItems, 'variant2SortOrder');\n ordVar.lineItems = sortedLineItems;\n \n _.forEach(ordVar.lineItems, function (li) {\n if (!vm.selectedProduct.variantNames) { vm.selectedProduct.variantNames = []; }\n if (vm.selectedProduct.variantNames.indexOf(li.variant2DetailName) === -1) {\n vm.selectedProduct.variantNames.push(li.variant2DetailName);\n }\n ordVar.sumFulfillableQuantity += li.fulfillableQuantity;\n ordVar.sumQuantity += li.quantity;\n });\n console.log(ordVar.lineItems);\n });\n }, function (error) {\n console.log(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n\n function getFulfillableQuantitySum(variantName) {\n if (!variantName || variantName === '') { return 0; }\n\n var sum = 0;\n try {\n _.forEach(vm.selectedProduct.variants, function (artVar) {\n _.forEach(artVar.lineItems, function (li) {\n if (li.variant2DetailName === variantName) {\n sum += li.fulfillableQuantity;\n }\n });\n });\n } catch (error) {\n console.log(error);\n }\n\n return sum;\n }\n function getQuantitySum(variantName) {\n if (!variantName || variantName === '') { return 0; }\n\n var sum = 0;\n try {\n _.forEach(vm.selectedProduct.variants, function (artVar) {\n _.forEach(artVar.lineItems, function (li) {\n if (li.variant2DetailName === variantName) {\n sum += li.quantity;\n }\n });\n });\n } catch (error) {\n console.log(error);\n }\n\n return sum;\n }\n function getDifference(variantName) {\n var diff = getStockQuantity(variantName) - getQuantitySum(variantName);\n return diff;\n }\n\n function preventInputLessThanZero(lineItem) {\n if (lineItem.quantity < 0) {\n lineItem.quantity = 0;\n }\n }\n\n function formatDifference(diff) {\n if (diff >= 0) {\n return '' + Math.abs(diff);\n } else {\n return '-' + Math.abs(diff);\n }\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.createfulfillment', {\n url: '/fulfill/create',\n templateUrl: 'main/resellerorder/resellerorderfulfillment/createfulfillment/createfulfillment.tpl.html',\n controller: 'ResellerOrderFulfillmentProductsController as vm',\n resolve: {\n },\n params: {\n }\n });\n}\n\n// @ngInject\nfunction ResellerOrderFulfillmentProductsController($rootScope, $scope, $window, $translate, $state, ResellerOrdersApiService, loadSpinnerService, ToasterService, CreateVariantFulfillmentDialogService,CreateVariantDeliveryDateDialogService) {\n var vm = this;\n\n //Properties\n vm.canAccess = $rootScope.canAccess;\n vm.selectedWarehouse = {};\n vm.fulfillableProducts = [];\n vm.filteredFulfillableProducts = [];\n vm.minimumAvailableStock = 0;\n vm.fulfillableProductsFilter = '';\n vm.pageSizes = [\n { id: 0, val: 5 },\n { id: 1, val: 10 },\n { id: 2, val: 20 },\n { id: 3, val: 50 },\n { id: 4, val: 100 },\n { id: 5, val: 200 }\n ];\n vm.selectedPageSize = vm.pageSizes[4];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.onSelectProduct = onSelectProduct;\n vm.goToProduct = goToProduct;\n vm.showCreateVariantFulfillmentPopup = showCreateVariantFulfillmentPopup;\n vm.showCreateVariantDeliveryDatePopup = showCreateVariantDeliveryDatePopup;\n vm.filterFulfillableProducts = filterFulfillableProducts;\n\n activate();\n\n function activate() {\n $scope.$watch(function () { return vm.selectedWarehouse.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfillableProducts();\n saveLastUsedWarehouseId(newValue);\n }\n });\n $scope.$watch(function () { return vm.minimumAvailableStock; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfillableProducts();\n saveLastMinimumAvailableStock(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedPageSize.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfillableProducts();\n }\n });\n }\n\n function onInit() {\n ResellerOrdersApiService.getWarehouses().then(function (response) {\n vm.warehouses = response.warehouses;\n var lastUsedWarehouseId = getLastUsedWarehouseId();\n vm.selectedWarehouse = _.find(vm.warehouses, function (o) { return o.id === lastUsedWarehouseId; });\n var lastMinimumAvailableStock = getLastMinimumAvailableStock();\n vm.minimumAvailableStock = lastMinimumAvailableStock;\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n function onChanges() {\n }\n\n function filterFulfillableProducts() {\n console.log('fulfillableProductsFilter: \"' + vm.fulfillableProductsFilter + '\"');\n\n if (vm.fulfillableProductsFilter.trim().length > 0) {\n var searchTerm = vm.fulfillableProductsFilter.trim().toLowerCase();\n vm.filteredFulfillableProducts = _.filter(vm.fulfillableProducts, function(o) {\n return o.displayArticleNumber.toLowerCase().indexOf(searchTerm) > -1 ||\n o.supplier.toLowerCase().indexOf(searchTerm) > -1 ||\n o.variantDetail1Name.toLowerCase().indexOf(searchTerm) > -1 ||\n o.articleName.toLowerCase().indexOf(searchTerm) > -1;\n });\n } else {\n vm.filteredFulfillableProducts = vm.fulfillableProducts;\n }\n }\n\n function showCreateVariantDeliveryDatePopup(fulfillableProduct){\n CreateVariantDeliveryDateDialogService.showDialog(fulfillableProduct, vm.selectedWarehouse, vm.minimumAvailableStock).then(function (result){\n // if (result && result.success === true) {\n // console.log(result.itemsToFulfill);\n\n // var request = {\n // itemsToFulfill: result.itemsToFulfill\n // };\n // loadSpinnerService.start('mainSpinner');\n // ResellerOrdersApiService.applyFulfillResellerOrders(request).then(function (response) {\n // loadFulfillableProducts();\n // }, function (error) {\n // ToasterService.showError(error, $translate.instant('common.error'));\n // }).then(function () {\n // loadSpinnerService.stop('mainSpinner', { force: true });\n // });\n // }\n });\n }\n\n function showCreateVariantFulfillmentPopup(fulfillableProduct) {\n CreateVariantFulfillmentDialogService.showDialog(fulfillableProduct, vm.selectedWarehouse, vm.minimumAvailableStock).then(function (result) {\n if (result && result.success === true) {\n console.log(result.itemsToFulfill);\n\n var request = {\n itemsToFulfill: result.itemsToFulfill\n };\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.applyFulfillResellerOrders(request).then(function (response) {\n loadFulfillableProducts();\n }, function (error) {\n ToasterService.showError(error, $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner', { force: true });\n });\n }\n });\n }\n\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function getLastUsedWarehouseId() {\n if ($window.localStorage.resellerorderfulfill_lastUsedWarehouseId) {\n var lastUsedWarehouseId = parseInt($window.localStorage.getItem('resellerorderfulfill_lastUsedWarehouseId'));\n if (isNaN(lastUsedWarehouseId)) { return undefined; }\n return lastUsedWarehouseId;\n }\n return undefined;\n }\n function saveLastUsedWarehouseId(id) {\n $window.localStorage.setItem('resellerorderfulfill_lastUsedWarehouseId', id);\n }\n function getLastMinimumAvailableStock() {\n if ($window.localStorage.resellerorderfulfill_lastMinimumAvailableStock) {\n var lastMinimumAvailableStock = parseInt($window.localStorage.getItem('resellerorderfulfill_lastMinimumAvailableStock'));\n if (isNaN(lastMinimumAvailableStock)) { return undefined; }\n return lastMinimumAvailableStock;\n }\n return undefined;\n }\n function saveLastMinimumAvailableStock(value) {\n $window.localStorage.setItem('resellerorderfulfill_lastMinimumAvailableStock', value);\n }\n\n function loadFulfillableProducts() {\n if (vm.selectedWarehouse && vm.selectedWarehouse.id > 0) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n warehouseId: vm.selectedWarehouse.id,\n minimumAvailableStock: vm.minimumAvailableStock,\n pageSize: vm.selectedPageSize.val\n };\n ResellerOrdersApiService.getFulfillableProducts(request).then(function (response) {\n vm.fulfillableProducts = response.data.products;\n vm.filteredFulfillableProducts = response.data.products;\n\n //Sort on productnumber, color\n _.sortBy(vm.fulfillableProducts, ['articleNumber', 'variantDetail1Name']);\n _.sortBy(vm.filteredFulfillableProducts, ['articleNumber', 'variantDetail1Name']);\n\n filterFulfillableProducts();\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function onSelectProduct(product) {\n if (!product || !product.articleId || product.articleId <= 0) { return; }\n }\n}\n\nangular\n .module('resellerorder.createfulfillment', [])\n .config(stateConfig)\n .controller('ResellerOrderFulfillmentProductsController', ResellerOrderFulfillmentProductsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.manageorders', {\n url: '/fulfill/manage/orders',\n templateUrl: 'main/resellerorder/resellerorderfulfillment/manageorders/manageorders.tpl.html',\n controller: 'ResellerOrderManageOrdersController as vm',\n resolve: {},\n params: {\n orderId: undefined,\n productNumber: undefined,\n usingScannerNavigation: false\n }\n });\n}\n\n// @ngInject\nfunction ResellerOrderManageOrdersController($rootScope, $state, $translate, $scope, $window, $stateParams, ResellerOrdersApiService, loadSpinnerService, ToasterService, printLanguageConfirmationDialogService) {\n var vm = this;\n\n //Properties\n vm.canAccess = $rootScope.canAccess;\n vm.selectedFulfilledOrdersWarehouse = {};\n vm.fulfilledOrders = [];\n vm.filteredFulfilledOrders = [];\n vm.fulfilledOrdersFilter = '';\n vm.pageSizes = [\n { id: 0, val: 5 },\n { id: 1, val: 10 },\n { id: 2, val: 20 },\n { id: 3, val: 50 },\n { id: 4, val: 100 },\n { id: 5, val: 200 }\n ];\n vm.selectedPageSize = vm.pageSizes[4];\n vm.openCheck = true;\n vm.closedCheck = true;\n vm.filterPickPrinted = false;\n vm.filterDeliveryPrinted = false;\n vm.monthDates = [\n { id: 0, val: 1 },\n { id: 1, val: 3 },\n { id: 2, val: 6 },\n { id: 3, val: 9 },\n { id: 4, val: 12 },\n { id: 5, val: 18 }\n ];\n vm.selectedDateMonth = vm.monthDates[1];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.onSelectProduct = onSelectProduct;\n vm.toggleExpandAll = toggleExpandAll;\n vm.printResellerOrder = printResellerOrder;\n vm.printResellerOrderPickingList = printResellerOrderPickingList;\n vm.getResellerOrderDeliveryNotePdf = getResellerOrderDeliveryNotePdf;\n vm.goToOrder = goToOrder;\n vm.goToProduct = goToProduct;\n vm.printAllResellerOrderPickingLists = printAllResellerOrderPickingLists;\n vm.filterFulfilledOrders = filterFulfilledOrders;\n vm.hasBeenPrinted = hasBeenPrinted;\n vm.getLatestPrint = getLatestPrint;\n vm.canPick = canPick;\n vm.confirmPicking = confirmPicking;\n vm.canPickAll = canPickAll;\n vm.confirmPickAll = confirmPickAll;\n vm.toggleClosePicking = toggleClosePicking;\n vm.canPrintDeliveryNote = canPrintDeliveryNote;\n vm.loadFulfilledOrders = loadFulfilledOrders;\n\n // Scanner navigation parameters\n vm.orderId = $stateParams.orderId;\n vm.productNumber = $stateParams.productNumber;\n vm.usingScannerNavigation = $stateParams.productNumber;\n\n activate();\n\n function activate() {\n $scope.$watch(function () { return vm.selectedFulfilledOrdersWarehouse.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfilledOrders();\n saveLastUsedFulfilledOrdersWarehouseId(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedPageSize.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfilledOrders();\n }\n });\n $scope.$watch(function () { return vm.selectedDateMonth.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfilledOrders();\n }\n });\n if (vm.orderId && vm.usingScannerNavigation) {\n expandOrder(vm.orderId);\n }\n }\n\n function onInit() {\n ResellerOrdersApiService.getWarehouses().then(function (response) {\n vm.warehouses = response.warehouses;\n var lastUsedFulfilledOrdersWarehouseId = getLastUsedFulfilledOrdersWarehouseId();\n vm.selectedFulfilledOrdersWarehouse = _.find(vm.warehouses, function (o) { return o.id === lastUsedFulfilledOrdersWarehouseId; });\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n function onChanges() {\n }\n\n function canPick(lineItem) {\n return hasLink(lineItem.links, 'canPick');\n }\n function canPickAll(order) {\n var canPick = false;\n _.forEach(order.fulfillmentLineItems, function(li) {\n if (hasLink(li.links, 'canPick')) {\n canPick = true;\n }\n });\n\n return canPick;\n }\n function confirmPicking(lineItem) {\n if (canPick(lineItem)) {\n var request = {\n pickingConfirmations: [{\n fulfillmentLineItemId: lineItem.id,\n pickedQuantity: lineItem.pickableQuantity,\n closePicking: lineItem.closePicking\n }]\n };\n\n ResellerOrdersApiService.confirmFulfillmentLineItemPicking(request).then(function (response) {\n var lineItemEvent = _.find(response.events, function(o) {\n return o.id === lineItem.id;\n });\n lineItem.links = lineItemEvent.links;\n\n lineItem.pickableQuantity = lineItemEvent.pickableQuantity;\n lineItem.pickedQuantity = lineItemEvent.pickedQuantity;\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n }\n function confirmPickAll(order) {\n var request = {\n pickingConfirmations: []\n };\n _.forEach(order.fulfillmentLineItems, function(lineItem) {\n if (canPick(lineItem)) {\n request.pickingConfirmations.push({\n fulfillmentLineItemId: lineItem.id,\n pickedQuantity: lineItem.pickableQuantity,\n closePicking: lineItem.closePicking ? lineItem.closePicking : false\n });\n }\n });\n\n ResellerOrdersApiService.confirmFulfillmentLineItemPicking(request).then(function (response) {\n _.forEach(response.events, function(ev) {\n var lineItem = _.find(order.fulfillmentLineItems, function(o) {\n return o.id === ev.id;\n });\n if (lineItem) {\n lineItem.links = ev.links;\n\n lineItem.pickableQuantity = ev.pickableQuantity;\n lineItem.pickedQuantity = ev.pickedQuantity;\n }\n });\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n function toggleClosePicking(order) {\n var allAreTrue = true;\n _.forEach(order.fulfillmentLineItems, function (li) {\n if (!li.closePicking || li.closePicking === false) {\n allAreTrue = false;\n }\n });\n\n _.forEach(order.fulfillmentLineItems, function (li) {\n if (!allAreTrue) {\n li.closePicking = true;\n order.closeAllPickings = true;\n } else {\n li.closePicking = false;\n order.closeAllPickings = false;\n }\n });\n }\n\n function hasLink(links, rel) {\n var link = _.find(links, function (o) {\n return o.rel === rel;\n });\n\n if (link) {\n return true;\n }\n\n return false;\n }\n\n function getLatestPrint(order, type) {\n if (order.printLog.length > 0) {\n var listOfType = _.last(_.filter(order.printLog, function(log){return log.type === type}));\n\n if(listOfType){\n return $translate.instant('resellerorder.hasBeenPrinted') + ': ' +\n formatDate(new Date(listOfType.dateUTC)) + ' ' +\n $translate.instant('resellerorder.hasBeenPrintedBy') + ' ' + listOfType.user;\n }\n }\n return '';\n }\n function hasBeenPrinted(order, type) {\n\n return _.find(order.printLog, function(log){return log.type === type;});\n\n //return order.printLog.length > 0;\n }\n function formatDate(date) {\n if (!date) { return ''; }\n return date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2);\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n return new Array(width + ((/\\./).test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function filterFulfilledOrders() {\n console.log('fulfilledOrdersFilter: \"' + vm.fulfilledOrdersFilter + '\"');\n\n if (vm.fulfilledOrdersFilter.trim().length > 0) {\n var searchTerm = vm.fulfilledOrdersFilter.trim().toLowerCase();\n vm.filteredFulfilledOrders = _.filter(vm.fulfilledOrders, function(o) {\n return o.orderNumber.toLowerCase().indexOf(searchTerm) > -1 ||\n o.resellerName.toLowerCase().indexOf(searchTerm) > -1;\n });\n } else {\n vm.filteredFulfilledOrders = vm.fulfilledOrders;\n }\n\n vm.filteredFulfilledOrders = _.filter(vm.filteredFulfilledOrders, function(order){\n if(order.printLog.length > 0){\n if(vm.filterPickPrinted && !vm.filterDeliveryPrinted){\n return _.find(order.printLog, function(log){return log.type === 'ResellerOrderPickingList'});\n }\n else if(vm.filterDeliveryPrinted && !vm.filterPickPrinted){\n return _.find(order.printLog, function(log){return log.type === 'ResellerOrderDeliveryNote'});\n }\n else if(vm.filterDeliveryPrinted && vm.filterPickPrinted){\n return _.find(order.printLog, function(log){return log.type === 'ResellerOrderPickingList' || log.type === 'ResellerOrderDeliveryNote'});\n }\n }\n else if(!vm.filterDeliveryPrinted && !vm.filterPickPrinted) {\n return order;\n }\n });\n }\n\n function canPrintDeliveryNote(order){\n var isAnyPicked = false;\n if(order !== null){\n _.forEach(order.fulfillmentLineItems, function(lineItem){\n if(lineItem.pickedQuantity > 0)\n isAnyPicked = true;\n });\n }\n return isAnyPicked;\n }\n\n function goToOrder(orderId) {\n var url = $state.href('resellerorder.resellerorderview', {orderId: orderId});\n $window.open(url,'_blank');\n }\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function printAllResellerOrderPickingLists() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('common.printAll') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n resellerOrderIds: [],\n locale: result.locale\n };\n _.forEach(vm.fulfilledOrders, function(o) { request.resellerOrderIds.push(o.id); });\n\n ResellerOrdersApiService.getResellerOrderOrderPerspectivePickingList(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function printResellerOrder(orderId) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderPdf(orderId).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n function printResellerOrderPickingList(orderId) {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.print.pickingList') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n resellerOrderIds: [orderId],\n locale: result.locale\n };\n ResellerOrdersApiService.getResellerOrderOrderPerspectivePickingList(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n function getResellerOrderDeliveryNotePdf(orderId) {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n var request = {\n resellerOrderIds: [orderId],\n locale: result.locale\n };\n loadSpinnerService.start('mainSpinner');\n\n ResellerOrdersApiService.getResellerOrderDeliveryNote(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getLastUsedFulfilledOrdersWarehouseId() {\n if ($window.localStorage.resellerorderfulfill_lastUsedFulfilledOrdersWarehouseId) {\n var lastUsedFulfilledOrdersWarehouseId = parseInt($window.localStorage.getItem('resellerorderfulfill_lastUsedFulfilledOrdersWarehouseId'));\n if (isNaN(lastUsedFulfilledOrdersWarehouseId)) { return undefined; }\n return lastUsedFulfilledOrdersWarehouseId;\n }\n return undefined;\n }\n function saveLastUsedFulfilledOrdersWarehouseId(id) {\n $window.localStorage.setItem('resellerorderfulfill_lastUsedFulfilledOrdersWarehouseId', id);\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.fulfilledOrders, function (ord) {\n if (!ord.showOrderVariants || ord.showOrderVariants === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.fulfilledOrders, function (ord) {\n if (!allAreExpanded) {\n ord.showOrderVariants = true;\n } else {\n ord.showOrderVariants = false;\n }\n });\n }\n\n function loadFulfilledOrders() {\n if (true) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n warehouseId: vm.selectedFulfilledOrdersWarehouse.id,\n pageSize: vm.selectedPageSize.val,\n filterOpen : vm.openCheck,\n filterClosed : vm.closedCheck,\n filterDateMonth : vm.selectedDateMonth.val\n };\n ResellerOrdersApiService.getFulfilledOrders(request).then(function (response) {\n vm.fulfilledOrders = response.data.orders;\n\n _.forEach(vm.fulfilledOrders, function (o) {\n o.showOrderVariants = false;\n });\n\n //Sort on ordernumber\n vm.fulfilledOrders = _.orderBy(vm.fulfilledOrders, ['createdDate'], ['desc']);\n\n //Copy to filter list\n vm.filteredFulfilledOrders = angular.copy(vm.fulfilledOrders);\n\n filterFulfilledOrders();\n\n if (vm.orderId && vm.usingScannerNavigation) {\n expandOrder(vm.orderId);\n }\n\n console.log(vm.fulfilledOrders);\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function onSelectProduct(product) {\n if (!product || !product.articleId || product.articleId <= 0) { return; }\n\n product.showOrderVariants = true;\n }\n\n function expandOrder(orderId) {\n var order = _.find(vm.filteredFulfilledOrders, function(order) {\n return order.id === orderId;\n });\n\n if (order) {\n order.showOrderVariants = true;\n }\n }\n}\n\nangular\n .module('resellerorder.manageorders', [])\n .config(stateConfig)\n .controller('ResellerOrderManageOrdersController', ResellerOrderManageOrdersController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.manageproducts', {\n url: '/fulfill/manage/products',\n templateUrl: 'main/resellerorder/resellerorderfulfillment/manageproducts/manageproducts.tpl.html',\n controller: 'ResellerOrderManageProductsController as vm',\n resolve: {\n },\n params: {\n orderId: undefined,\n productNumber: undefined,\n usingScannerNavigation: false\n }\n });\n}\n\n// @ngInject\nfunction ResellerOrderManageProductsController($rootScope, $state, $translate, $scope, $window, $stateParams, ResellerOrdersApiService, loadSpinnerService, ToasterService, printLanguageConfirmationDialogService) {\n var vm = this;\n\n //Properties\n vm.canAccess = $rootScope.canAccess;\n vm.selectedFulfilledProductsWarehouse = {};\n vm.fulfilledProducts = [];\n vm.filteredFulfilledProducts = [];\n vm.fulfilledProductsFilter = '';\n vm.pageSizes = [\n { id: 0, val: 5 },\n { id: 1, val: 10 },\n { id: 2, val: 20 },\n { id: 3, val: 50 },\n { id: 4, val: 100 },\n { id: 5, val: 200 }\n ];\n vm.selectedPageSize = vm.pageSizes[4];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.toggleExpandAllProducts = toggleExpandAllProducts;\n vm.toggleExpandAllOrders = toggleExpandAllOrders;\n vm.printResellerOrderPickingList = printResellerOrderPickingList;\n vm.goToOrder = goToOrder;\n vm.goToProduct = goToProduct;\n vm.printAllResellerOrderPickingLists = printAllResellerOrderPickingLists;\n vm.filterFulfilledProducts = filterFulfilledProducts;\n vm.hasBeenPrinted = hasBeenPrinted;\n vm.getLatestPrint = getLatestPrint;\n vm.canPick = canPick;\n vm.confirmPicking = confirmPicking;\n vm.canPickAll = canPickAll;\n vm.confirmPickAll = confirmPickAll;\n vm.toggleClosePicking = toggleClosePicking;\n\n // Scanner navigation parameters\n vm.orderId = $stateParams.orderId;\n vm.productNumber = $stateParams.productNumber;\n vm.usingScannerNavigation = $stateParams.productNumber;\n\n activate();\n\n function activate() {\n $scope.$watch(function () { return vm.selectedFulfilledProductsWarehouse.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfilledProducts();\n saveLastUsedFulfilledProductsWarehouseId(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedPageSize.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n loadFulfilledProducts();\n }\n });\n\n if (vm.orderId && vm.usingScannerNavigation) {\n expandOrder(vm.orderId, vm.productNumber);\n }\n }\n\n function onInit() {\n ResellerOrdersApiService.getWarehouses().then(function (response) {\n vm.warehouses = response.warehouses;\n var lastUsedFulfilledProductsWarehouseId = getLastUsedFulfilledProductsWarehouseId();\n vm.selectedFulfilledProductsWarehouse = _.find(vm.warehouses, function (o) { return o.id === lastUsedFulfilledProductsWarehouseId; });\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n function onChanges() {\n }\n\n function canPick(lineItem) {\n return hasLink(lineItem.links, 'canPick');\n }\n function canPickAll(order) {\n var canPick = false;\n _.forEach(order.fulfillmentLineItems, function(li) {\n if (hasLink(li.links, 'canPick')) {\n canPick = true;\n }\n });\n\n return canPick;\n }\n function confirmPicking(lineItem) {\n if (canPick(lineItem)) {\n var request = {\n pickingConfirmations: [{\n fulfillmentLineItemId: lineItem.id,\n pickedQuantity: lineItem.pickableQuantity,\n closePicking: lineItem.closePicking ? lineItem.closePicking : false\n }]\n };\n\n ResellerOrdersApiService.confirmFulfillmentLineItemPicking(request).then(function (response) {\n var lineItemEvent = _.find(response.events, function(o) {\n return o.id === lineItem.id;\n });\n lineItem.links = lineItemEvent.links;\n\n lineItem.pickableQuantity = lineItemEvent.pickableQuantity;\n lineItem.pickedQuantity = lineItemEvent.pickedQuantity;\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n }\n function confirmPickAll(order) {\n var request = {\n pickingConfirmations: []\n };\n _.forEach(order.fulfillmentLineItems, function(lineItem) {\n if (canPick(lineItem)) {\n request.pickingConfirmations.push({\n fulfillmentLineItemId: lineItem.id,\n pickedQuantity: lineItem.pickableQuantity,\n closePicking: lineItem.closePicking ? lineItem.closePicking : false\n });\n }\n });\n\n ResellerOrdersApiService.confirmFulfillmentLineItemPicking(request).then(function (response) {\n _.forEach(response.events, function(ev) {\n var lineItem = _.find(order.fulfillmentLineItems, function(o) {\n return o.id === ev.id;\n });\n if (lineItem) {\n lineItem.links = ev.links;\n\n lineItem.pickableQuantity = ev.pickableQuantity;\n lineItem.pickedQuantity = ev.pickedQuantity;\n }\n });\n }, function (error) {\n ToasterService.showError(error.message);\n });\n }\n function toggleClosePicking(order) {\n var allAreTrue = true;\n _.forEach(order.fulfillmentLineItems, function (li) {\n if (!li.closePicking || li.closePicking === false) {\n allAreTrue = false;\n }\n });\n\n _.forEach(order.fulfillmentLineItems, function (li) {\n if (!allAreTrue) {\n li.closePicking = true;\n order.closeAllPickings = true;\n } else {\n li.closePicking = false;\n order.closeAllPickings = false;\n }\n });\n }\n\n function hasLink(links, rel) {\n var link = _.find(links, function (o) {\n return o.rel === rel;\n });\n\n if (link) {\n return true;\n }\n\n return false;\n }\n\n function getLatestPrint(order) {\n if (order.printLog.length > 0) {\n var print = _.last(order.printLog);\n\n return $translate.instant('resellerorder.hasBeenPrinted') + ': ' +\n formatDate(new Date(print.dateUTC)) + ' ' +\n $translate.instant('resellerorder.hasBeenPrintedBy') + ' ' + print.user;\n }\n return '';\n }\n function hasBeenPrinted(order) {\n return order.printLog.length > 0;\n }\n function formatDate(date) {\n if (!date) { return ''; }\n return date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2);\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n return new Array(width + ((/\\./).test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function filterFulfilledProducts() {\n console.log('fulfilledProductsFilter: \"' + vm.fulfilledProductsFilter + '\"');\n\n if (vm.fulfilledProductsFilter.trim().length > 0) {\n var searchTerm = vm.fulfilledProductsFilter.trim().toLowerCase();\n vm.filteredFulfilledProducts = _.filter(vm.fulfilledProducts, function(o) {\n return o.displayArticleNumber.toLowerCase().indexOf(searchTerm) > -1 ||\n o.articleName.toLowerCase().indexOf(searchTerm) > -1;\n });\n } else {\n vm.filteredFulfilledProducts = vm.fulfilledProducts;\n }\n }\n\n function goToOrder(orderId) {\n var url = $state.href('resellerorder.resellerorderview', {orderId: orderId});\n $window.open(url,'_blank');\n }\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function printAllResellerOrderPickingLists() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('common.printAll') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n productIds: [],\n locale: result.locale\n };\n _.forEach(vm.fulfilledProducts, function(o) { request.productIds.push(o.id); });\n\n ResellerOrdersApiService.getResellerOrderProductPerspectivePickingList(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function printResellerOrderPickingList(productId) {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.print.pickingList') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n productIds: [productId],\n locale: result.locale\n };\n ResellerOrdersApiService.getResellerOrderProductPerspectivePickingList(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getLastUsedFulfilledProductsWarehouseId() {\n if ($window.localStorage.resellerorderfulfill_lastUsedFulfilledProductsWarehouseId) {\n var lastUsedFulfilledProductsWarehouseId = parseInt($window.localStorage.getItem('resellerorderfulfill_lastUsedFulfilledProductsWarehouseId'));\n if (isNaN(lastUsedFulfilledProductsWarehouseId)) { return undefined; }\n return lastUsedFulfilledProductsWarehouseId;\n }\n return undefined;\n }\n function saveLastUsedFulfilledProductsWarehouseId(id) {\n $window.localStorage.setItem('resellerorderfulfill_lastUsedFulfilledProductsWarehouseId', id);\n }\n\n function toggleExpandAllProducts() {\n var allAreExpanded = true;\n _.forEach(vm.fulfilledProducts, function (prod) {\n if (!prod.showOrders || prod.showOrders === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.fulfilledProducts, function (prod) {\n if (!allAreExpanded) {\n prod.showOrders = true;\n } else {\n prod.showOrders = false;\n }\n });\n }\n function toggleExpandAllOrders(prod) {\n var allAreExpanded = true;\n _.forEach(prod.orders, function (ord) {\n if (!ord.showOrderRows || ord.showOrderRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(prod.orders, function (ord) {\n if (!allAreExpanded) {\n ord.showOrderRows = true;\n } else {\n ord.showOrderRows = false;\n }\n });\n }\n\n function loadFulfilledProducts() {\n if (vm.selectedFulfilledProductsWarehouse && vm.selectedFulfilledProductsWarehouse.id > 0) {\n loadSpinnerService.start('mainSpinner');\n var request = {\n warehouseId: vm.selectedFulfilledProductsWarehouse.id,\n pageSize: vm.selectedPageSize.val\n };\n ResellerOrdersApiService.getFulfilledProducts(request).then(function (response) {\n vm.fulfilledProducts = response.data.products;\n\n _.forEach(vm.fulfilledProducts, function (prod) {\n prod.showOrders = false;\n\n prod.orders = _.sortBy(prod.orders, ['orderNumber']);\n\n _.forEach(prod.orders, function (ord) {\n //if only one lineitem show immediately, otherwise hide\n ord.showOrderRows = prod.orders.length === 1;\n });\n });\n\n //Sort on ordernumber\n vm.fulfilledProducts = _.sortBy(vm.fulfilledProducts, ['displayArticleNumber']);\n\n //Copy to filter list\n vm.filteredFulfilledProducts = angular.copy(vm.fulfilledProducts);\n\n filterFulfilledProducts();\n\n if (vm.orderId && vm.usingScannerNavigation) {\n expandOrder(vm.orderId, vm.productNumber);\n }\n\n console.log(vm.fulfilledProducts);\n }, function (error) {\n console.log(error);\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function expandOrder(orderId, productNumber) {\n var product = _.find(vm.filteredFulfilledProducts, function(product) {\n return product.alternativeArticleNumber === productNumber;\n });\n\n if (product) {\n var order = _.find(product.orders, function(order) {\n return order.id === orderId;\n });\n if (order) {\n product.showOrders = true;\n order.showOrderRows = true;\n }\n }\n }\n\n}\n\nangular\n .module('resellerorder.manageproducts', [])\n .config(stateConfig)\n .controller('ResellerOrderManageProductsController', ResellerOrderManageProductsController);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('createResellerOrderAddLineItems',{\n templateUrl: 'main/resellerorder/resellerordermodify/components/addlineitems.cmp.tpl.html',\n bindings: {\n resellerOrder: '=',\n onLineItemChanged: '&',\n onVariantChanged: '&'\n },\n controllerAs: 'vm',\n controller: ['$scope', componentController]\n});\n\n// @ngInject\nfunction componentController($scope) {\n var vm = this;\n\n //Properties\n vm.excludedArticles = [];\n vm.tabSelection = {\n overview: false,\n quantity: true,\n amount: false\n };\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.receiveArticles = receiveArticles;\n vm.saveLineItem = saveLineItem;\n vm.saveVariant = saveVariant;\n vm.canModifyLineItems = canModifyLineItems;\n vm.changeToTab = changeToTab;\n\n function onInit() {\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n updateArticlesToExclude();\n }\n });\n }\n function onChanges() {\n }\n\n function changeToTab(tab) {\n switch (tab) {\n default:\n case 'overview': vm.tabSelection = {\n overview: true,\n quantity: false,\n amount: false\n };\n break;\n case 'quantity': vm.tabSelection = {\n overview: false,\n quantity: true,\n amount: false\n };\n break;\n case 'amount': vm.tabSelection = {\n overview: false,\n quantity: false,\n amount: true\n };\n break;\n }\n }\n\n function updateArticlesToExclude() {\n vm.excludedArticles = _.chain(vm.resellerOrder.lineItems)\n .groupBy('articleId')\n .map((value, key) => ({ articleId: parseInt(key) }))\n .value();\n }\n\n function canModifyLineItems() {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n\n return canModifyLineItems;\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n function saveVariant(variant) {\n vm.onVariantChanged({ variant: variant });\n }\n\n function receiveArticles(articles) {\n if (!vm.resellerOrder.lineItems) { vm.resellerOrder.lineItems = []; }\n\n _.forEach(articles, function(art) {\n _.forEach(art.variants, function(variant) {\n var newListItem = {\n amount: variant.price,\n articleId: variant.articleId,\n articleName: variant.articleName,\n displayArticleNumber: variant.displayArticleNumber,\n articleVariantId: variant.id,\n fulfilledQuantity: 0,\n id: 0,\n links: [{ rel: 'modify' }],\n orderId: vm.resellerOrder.id,\n plannedDeliveryDateUtc: new Date(variant.plannedDeliveryDate),\n quantity: 0,\n status: 'open',\n variantDetail1Name: variant.variantDetail1Name,\n variantDetail2Name: variant.variantDetail2Name,\n variantDetail2SortOrder: variant.variantDetail2SortOrder,\n vatAmount: variant.vatAmount,\n vatRate: variant.vatRate\n };\n\n vm.resellerOrder.lineItems.push(newListItem);\n });\n });\n }\n}\n","angular.module('components.createResellerOrderArticlesAmount', [])\n .component('createResellerOrderArticlesAmount', {\n templateUrl: 'main/resellerorder/resellerordermodify/components/articlelist_amount.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n resellerOrder: '=',\n disabled: '<',\n onArticleSelected: '&',\n onLineItemChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $translate, confirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.lineItemsGroupedByArticle = [];\n\n //Methods\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.groupBy = groupBy;\n vm.saveLineItem = saveLineItem;\n vm.canModifyLineItem = canModifyLineItem;\n vm.getVariant1s = getVariant1s;\n vm.getVariant2s = getVariant2s;\n vm.toggleExpandAll = toggleExpandAll;\n vm.canClearRow = canClearRow;\n vm.confirmClearRow = confirmClearRow;\n vm.removeArticleFromOrder = removeArticleFromOrder;\n vm.canDeleteArticleFromOrder = canDeleteArticleFromOrder;\n vm.canUpdateWholeRow = canUpdateWholeRow;\n vm.updateWholeRow = updateWholeRow;\n vm.getProductGrossPriceSum = getProductGrossPriceSum;\n vm.getVariantGrossPriceAverage = getVariantGrossPriceAverage;\n\n function onInit() {\n if (vm.resellerOrder.lineItems === undefined) {\n vm.resellerOrder.lineItems = [];\n } else {\n regroupLineItemsOnArticle();\n }\n\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n regroupLineItemsOnArticle();\n }\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function getVariantGrossPriceAverage(variant) {\n var sumPrice = 0, sumTotalQuantity = 0;\n sumPrice += _.sumBy(variant.lineItems, function(li) {\n sumTotalQuantity += li.quantity;\n return li.amount * li.quantity;\n });\n return sumPrice / (sumTotalQuantity === 0 ? 1 : sumTotalQuantity);\n }\n\n function getProductGrossPriceSum(article) {\n var sumPrice = 0;\n _.forEach(article.lineItemsGroupedOnVariant1, function(liGrp) {\n sumPrice += _.sumBy(liGrp.lineItems, function(li) {\n return li.amount * li.quantity;\n });\n });\n return sumPrice;\n }\n\n function removeArticleFromOrder(article) {\n if (!article || !article.lineItemsGroupedOnVariant1) { return false; }\n\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmRemoveArticle\"), 'warning').then(function (result) {\n if (result === true) {\n _.forEach(article.lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n });\n vm.resellerOrder.lineItems = _.filter(vm.resellerOrder.lineItems, function(o) {\n return o.articleId !== parseInt(article.article.id);\n });\n }\n });\n }\n function canDeleteArticleFromOrder(lineItemsGroupedOnVariant1) {\n if (!lineItemsGroupedOnVariant1) { return false; }\n\n var canDelete = true;\n _.forEach(lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'delete'; }) === undefined) {\n canDelete = false;\n }\n });\n });\n return canDelete;\n }\n\n function canClearRow(variant1) {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function confirmClearRow(lineItemsGroupedOnVariant1) {\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmClearRow\"), 'warning').then(function (result) {\n if (result === true) {\n _.forEach(lineItemsGroupedOnVariant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n lineItemsGroupedOnVariant1.wholeRowAmount = '';\n }\n });\n }\n\n function canUpdateWholeRow(variant1) {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function updateWholeRow(variant1, wholeRowAmount) {\n if (!variant1) { return; }\n if (!variant1.lineItems) { return; }\n if (!wholeRowAmount || wholeRowAmount === '') { return; }\n\n var lineItem = _.find(variant1.lineItems, function(o) { return o.amount > 0; });\n if (lineItem !== undefined) {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmUpdateWholeRow'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = wholeRowAmount;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n }\n variant1.wholeRowAmount = '';\n });\n } else {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = wholeRowAmount;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n variant1.wholeRowAmount = '';\n }\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.lineItemsGroupedByArticle, function (o) {\n if (!o.article.showRows || o.article.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.lineItemsGroupedByArticle, function(art) {\n if (!allAreExpanded) {\n art.article.showRows = true;\n } else {\n art.article.showRows = false;\n }\n });\n }\n\n function getVariant1s(lineItems) {\n var variants = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({ variantDetail1Name: key, lineItems: value }))\n .value();\n\n return variants;\n }\n function getVariant2s(lineItems) {\n var variants = _.map(lineItems, 'variantDetail2Name');\n\n return variants;\n }\n\n function canModifyLineItem(lineItem) {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canModifyLineItems;\n\n //TODO look on each lineitem if able to upsert\n // if (lineItem === undefined) { return false; }\n // if (!lineItem.links) { lineItem.links = []; }\n // var canModifyLineItem = _.find(lineItem.links, function(o) { return o.rel === 'modify'; }) !== undefined;\n\n // return canModifyLineItem;\n }\n\n function regroupLineItemsOnArticle() {\n vm.resellerOrder.lineItems = _.sortBy(vm.resellerOrder.lineItems, ['variantDetail1Name', 'variantDetail2SortOrder']);\n vm.lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({\n article: {\n displayArticleNumber: value.length > 0 ? value[0].displayArticleNumber : '',\n articleName: value.length > 0 ? value[0].articleName : '',\n id: key,\n showRows: false\n }, lineItemsGroupedOnVariant1: regroupLineItemsOnVariant1(value) }))\n .value();\n }\n function regroupLineItemsOnVariant1(lineItems) {\n var lineItemsGroupedByVariant1 = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({\n variantDetail1Name: key,\n lineItems: value\n }))\n .value();\n return lineItemsGroupedByVariant1;\n }\n\n function groupBy(array, field) {\n return _.groupBy(array, field);\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n\n function viewOrderArticle(article) {\n vm.onArticleSelected({ article: article });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n}\n","angular.module('components.createResellerOrderArticlesOverview', [])\n .component('createResellerOrderArticlesOverview', {\n templateUrl: 'main/resellerorder/resellerordermodify/components/articlelist_overview.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n resellerOrder: '=',\n disabled: '<',\n onArticleSelected: '&',\n onLineItemChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $state, $window, $translate, confirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.lineItemsGroupedByArticle = [];\n\n //Methods\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.groupBy = groupBy;\n vm.saveLineItem = saveLineItem;\n vm.canModifyLineItem = canModifyLineItem;\n vm.toggleExpandAll = toggleExpandAll;\n vm.removeArticleFromOrder = removeArticleFromOrder;\n vm.canDeleteArticleFromOrder = canDeleteArticleFromOrder;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getProductGrossPriceSum = getProductGrossPriceSum;\n vm.getTotalGrossPriceSum = getTotalGrossPriceSum;\n vm.getProductGrossPrice = getProductGrossPrice;\n vm.getProductQuantitySum = getProductQuantitySum;\n vm.getTotalQuantitySum = getTotalQuantitySum;\n vm.getProductUnfulfilledQuantitySum = getProductUnfulfilledQuantitySum;\n vm.getFinalAmount = getFinalAmount;\n vm.goToProduct = goToProduct;\n\n function onInit() {\n if (vm.resellerOrder.lineItems === undefined) {\n vm.resellerOrder.lineItems = [];\n } else {\n regroupLineItems();\n }\n\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n regroupLineItems();\n }\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n\n }\n\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function getFinalAmount(lineItem) {\n var discountPercent = lineItem.discountPercent ? lineItem.discountPercent : 0;\n return lineItem.amount * (1 - discountPercent);\n }\n\n function getProductUnfulfilledQuantitySum(article) {\n var sumQty = 0;\n sumQty += _.sumBy(article.lineItems, function(li) {\n return li.fulfilledQuantity;\n });\n return sumQty;\n }\n\n function getProductGrossPriceSum(article) {\n var sumPrice = 0;\n sumPrice += _.sumBy(article.lineItems, function(li) {\n return li.amount * li.quantity;\n });\n return sumPrice;\n }\n\n function getTotalGrossPriceSum() {\n var sumPrice = 0;\n _.forEach(vm.lineItemsGroupedByArticle, function(o) {\n sumPrice += getProductGrossPriceSum(o);\n });\n return sumPrice;\n }\n\n function getProductGrossPrice(article) {\n var sumPrice = 0, sumTotalQuantity = 0;\n sumPrice += _.sumBy(article.lineItems, function(li) {\n sumTotalQuantity += li.quantity;\n return li.amount * li.quantity;\n });\n return sumPrice / (sumTotalQuantity === 0 ? 1 : sumTotalQuantity);\n }\n\n function getProductQuantitySum(article) {\n var sumQty = 0;\n sumQty += _.sumBy(article.lineItems, function(li) {\n return li.quantity;\n });\n return sumQty;\n }\n\n function getTotalQuantitySum() {\n var sumQty = 0;\n _.forEach(vm.lineItemsGroupedByArticle, function(o) {\n sumQty += getProductQuantitySum(o);\n });\n return sumQty;\n }\n\n function getStatusTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n }\n\n function removeArticleFromOrder(article) {\n if (!article) { return false; }\n\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmRemoveArticle'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(article.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n vm.resellerOrder.lineItems = _.filter(vm.resellerOrder.lineItems, function(o) {\n return o.articleId !== parseInt(article.article.id);\n });\n }\n });\n }\n function canDeleteArticleFromOrder(lineItemsGroupedOnArticle) {\n if (!lineItemsGroupedOnArticle) { return false; }\n\n var canDelete = true;\n _.forEach(lineItemsGroupedOnArticle.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'delete'; }) === undefined) {\n canDelete = false;\n }\n });\n return canDelete;\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.lineItemsGroupedByArticle, function (o) {\n if (!o.article.showRows || o.article.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.lineItemsGroupedByArticle, function(art) {\n if (!allAreExpanded) {\n art.article.showRows = true;\n } else {\n art.article.showRows = false;\n }\n });\n }\n\n function canModifyLineItem(lineItem) {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canModifyLineItems;\n }\n\n function regroupLineItems() {\n vm.resellerOrder.lineItems = _.sortBy(vm.resellerOrder.lineItems, ['variantDetail1Name', 'variantDetail2SortOrder']);\n vm.lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({\n article: {\n displayArticleNumber: value.length > 0 ? value[0].displayArticleNumber : '',\n articleName: value.length > 0 ? value[0].articleName : '',\n id: key,\n showRows: false\n }, lineItems: value }))\n .value();\n\n _.forEach(vm.lineItemsGroupedByArticle, function(lineItemArticle) {\n _.forEach(lineItemArticle.lineItems, function(lineItem) {\n lineItem.discountDisplayPercent = lineItem.discountPercent * 100 + '%';\n });\n });\n }\n\n function groupBy(array, field) {\n return _.groupBy(array, field);\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n\n function viewOrderArticle(article) {\n vm.onArticleSelected({ article: article });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n}\n","angular.module('components.createResellerOrderArticlesQuantity', [])\n .component('createResellerOrderArticlesQuantity', {\n templateUrl: 'main/resellerorder/resellerreturnordermodify/components/articlelist_quantity.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n resellerOrder: '=',\n disabled: '<',\n onArticleSelected: '&',\n onLineItemChanged: '&',\n onVariantChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($rootScope, $scope, $state, $window, $translate, confirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.lineItemsGroupedByArticle = [];\n\n //Methods\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.groupBy = groupBy;\n vm.saveLineItem = saveLineItem;\n vm.saveVariant = saveVariant;\n vm.canModifyLineItem = canModifyLineItem;\n vm.getVariant1s = getVariant1s;\n vm.getVariant2s = getVariant2s;\n vm.toggleExpandAll = toggleExpandAll;\n vm.canClearRow = canClearRow;\n vm.confirmClearRow = confirmClearRow;\n vm.removeArticleFromOrder = removeArticleFromOrder;\n vm.canDeleteArticleFromOrder = canDeleteArticleFromOrder;\n vm.canUpdateWholeRow = canUpdateWholeRow;\n vm.updateWholeRow = updateWholeRow;\n vm.getProductQuantitySum = getProductQuantitySum;\n vm.getTotalQuantitySum = getTotalQuantitySum;\n vm.getVariantQuantitySum = getVariantQuantitySum;\n vm.getProductGrossPrice = getProductGrossPrice;\n vm.canModifyLineItemDeliveryDate = canModifyLineItemDeliveryDate;\n vm.deliveryDateChanged = deliveryDateChanged;\n vm.setWholeRowPrice = setWholeRowPrice;\n vm.setWholeRowDiscountPercent = setWholeRowDiscountPercent;\n vm.getFinalAmount = getFinalAmount;\n vm.goToProduct = goToProduct;\n\n function onInit() {\n if (vm.resellerOrder.lineItems === undefined) {\n vm.resellerOrder.lineItems = [];\n } else {\n regroupLineItemsOnArticle();\n }\n\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n regroupLineItemsOnArticle();\n }\n });\n $rootScope.$on('ResellerOrder.hideLineSpinner', function() {\n vm.showSpinner = false;\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function getFinalAmount(lineItemArticle, variant) {\n var avgPrice = parseFloat(vm.getProductGrossPrice(lineItemArticle).toFixed(2));\n if (!variant.wholeRowPrice) { variant.wholeRowPrice = avgPrice; }\n if (!variant.wholeRowDiscountPercent) { variant.wholeRowDiscountPercent = 0; }\n\n var temp = parseFloat((variant.wholeRowPrice * (1 - variant.wholeRowDiscountPercent)).toFixed(2));\n return temp;\n }\n\n function setWholeRowPrice(lineItemArticle, variant) {\n var avgPrice = parseFloat(vm.getProductGrossPrice(lineItemArticle).toFixed(2));\n if (!variant.wholeRowPrice) { variant.wholeRowPrice = avgPrice; }\n variant.wholeRowFinalPrice = parseFloat((variant.wholeRowPrice * (1 - variant.wholeRowDiscount / 100)).toFixed(2));\n\n _.forEach(variant.lineItems, function(li) {\n if (!li.amount || li.amount === 0) {\n li.amount = variant.wholeRowPrice;\n li.finalAmount = parseFloat((parseFloat(variant.wholeRowPrice) * (1 - parseFloat(variant.wholeRowDiscount) / 100)).toFixed(2));\n }\n });\n\n saveVariant(variant);\n }\n\n function setWholeRowDiscountPercent(lineItemArticle, variant) {\n var avgPrice = parseFloat(vm.getProductGrossPrice(lineItemArticle).toFixed(2));\n if (!variant.wholeRowPrice) { variant.wholeRowPrice = avgPrice; }\n if (!variant.wholeRowDiscount) { variant.wholeRowDiscount = 0; }\n variant.wholeRowFinalPrice = parseFloat((variant.wholeRowPrice * (1 - variant.wholeRowDiscountPercent)).toFixed(2));\n\n _.forEach(variant.lineItems, function(li) {\n if (!li.amount || li.amount === 0) {\n li.amount = variant.wholeRowPrice;\n li.finalAmount = parseFloat((parseFloat(variant.wholeRowPrice) * (1 - variant.wholeRowDiscountPercent)).toFixed(2));\n }\n li.discountPercent = variant.wholeRowDiscountPercent;\n });\n\n saveVariant(variant);\n }\n\n function getProductGrossPrice(article) {\n var sumPrice = 0, sumTotalQuantity = 0;\n _.forEach(article.lineItemsGroupedOnVariant1, function(liGrp) {\n sumPrice += _.sumBy(liGrp.lineItems, function(li) {\n if(li.quantity === 0){\n sumTotalQuantity += 1;\n return li.amount;\n }\n sumTotalQuantity += li.quantity;\n return li.amount * li.quantity;\n });\n });\n return sumPrice / (sumTotalQuantity === 0 ? 1 : sumTotalQuantity);\n }\n\n function getVariantQuantitySum(variant) {\n var sumQty = 0;\n sumQty += _.sumBy(variant.lineItems, function(li) {\n return li.quantity;\n });\n return sumQty;\n }\n\n function getProductQuantitySum(article) {\n var sumQty = 0;\n _.forEach(article.lineItemsGroupedOnVariant1, function(liGrp) {\n sumQty += _.sumBy(liGrp.lineItems, function(li) {\n return li.quantity;\n });\n });\n return sumQty;\n }\n\n function getTotalQuantitySum() {\n var sumQty = 0;\n _.forEach(vm.lineItemsGroupedByArticle, function(o) {\n sumQty += getProductQuantitySum(o);\n });\n return sumQty;\n }\n\n function removeArticleFromOrder(article) {\n if (!article || !article.lineItemsGroupedOnVariant1) { return false; }\n\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmRemoveArticle'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(article.lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n });\n vm.resellerOrder.lineItems = _.filter(vm.resellerOrder.lineItems, function(o) {\n return o.articleId !== parseInt(article.article.id);\n });\n }\n });\n }\n function canDeleteArticleFromOrder(lineItemsGroupedOnVariant1) {\n if (!lineItemsGroupedOnVariant1) { return false; }\n\n var canDelete = true;\n _.forEach(lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'delete'; }) === undefined) {\n canDelete = false;\n }\n });\n });\n return canDelete;\n }\n\n function canClearRow() {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function confirmClearRow(lineItemsGroupedOnVariant1) {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmClearRow'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(lineItemsGroupedOnVariant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n lineItemsGroupedOnVariant1.wholeRowQuantity = '';\n }\n });\n }\n\n function canUpdateWholeRow() {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function updateWholeRow(variant1, wholeRowQuantity) {\n if (!variant1) { return; }\n if (!variant1.lineItems) { return; }\n if (!wholeRowQuantity || wholeRowQuantity === '') { return; }\n\n var lineItem = _.find(variant1.lineItems, function(o) { return o.quantity > 0; });\n if (lineItem !== undefined) {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmUpdateWholeRow'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = wholeRowQuantity;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n }\n variant1.wholeRowQuantity = '';\n });\n } else {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = wholeRowQuantity;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n variant1.wholeRowQuantity = '';\n }\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.lineItemsGroupedByArticle, function (o) {\n if (!o.article.showRows || o.article.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.lineItemsGroupedByArticle, function(art) {\n if (!allAreExpanded) {\n art.article.showRows = true;\n } else {\n art.article.showRows = false;\n }\n });\n }\n\n function getVariant1s(lineItems) {\n var variants = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({ variantDetail1Name: key, lineItems: value }))\n .value();\n\n return variants;\n }\n function getVariant2s(lineItems) {\n var variants = _.map(lineItems, 'variantDetail2Name');\n\n return variants;\n }\n\n function canModifyLineItem() {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canModifyLineItems;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function regroupLineItemsOnArticle() {\n vm.resellerOrder.lineItems = _.sortBy(vm.resellerOrder.lineItems, ['variantDetail1Name', 'variantDetail2SortOrder']);\n vm.lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({\n article: {\n displayArticleNumber: value.length > 0 ? value[0].displayArticleNumber : '',\n articleName: value.length > 0 ? value[0].articleName : '',\n id: key,\n showRows: false,\n plannedDeliveryDate: (_.find(value, function(v) { return v.quantity > 0; }) || value[0]).plannedDeliveryDateUtc\n },\n lineItemsGroupedOnVariant1: regroupLineItemsOnVariant1(value)\n }))\n .value();\n _.forEach(vm.lineItemsGroupedByArticle, function(lineItemArticle) {\n var avgPrice = vm.getProductGrossPrice(lineItemArticle);\n _.forEach(lineItemArticle.lineItemsGroupedOnVariant1, function(variant) {\n variant.initialProductGrossPrice = avgPrice;\n var avgWholeRowDiscountPercent = 0;\n _.forEach(variant.lineItems, function(lineItem) {\n lineItem.discountDisplayPercent = lineItem.discountPercent * 100 + '%';\n lineItem.plannedDeliveryDateUtc = !lineItem.plannedDeliveryDateUtc ? lineItemArticle.article.plannedDeliveryDate : lineItem.plannedDeliveryDateUtc;\n if(lineItem.discountPercent > avgWholeRowDiscountPercent){\n avgWholeRowDiscountPercent = lineItem.discountPercent;\n }\n });\n variant.wholeRowDiscountPercent = avgWholeRowDiscountPercent;\n });\n });\n }\n function regroupLineItemsOnVariant1(lineItems) {\n var lineItemsGroupedByVariant1 = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({\n variantDetail1Name: key,\n lineItems: value\n }))\n .value();\n return lineItemsGroupedByVariant1;\n }\n\n function groupBy(array, field) {\n return _.groupBy(array, field);\n }\n\n function saveVariant(variant) {\n var v = variant;\n _.forEach(v.lineItems, function(l) { \n var d = new Date(l.plannedDeliveryDateUtc);\n l.plannedDeliveryDateUtc = dateToUtc(d);\n });\n vm.onVariantChanged({ variant: variant });\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n\n function viewOrderArticle(article) {\n vm.onArticleSelected({ article: article });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n\n function canModifyLineItemDeliveryDate(lineItemArticle) {\n // Planned delivery date can change at any moment (?)\n return true;\n }\n\n function dateToUtc(date) {\n var milliseconds = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());\n var d = new Date(milliseconds);\n return d;\n }\n\n function deliveryDateChanged(lineItemArticle) {\n var newDate = new Date(\n lineItemArticle.article.plannedDeliveryDate.getFullYear(),\n lineItemArticle.article.plannedDeliveryDate.getMonth(),\n lineItemArticle.article.plannedDeliveryDate.getDate(),\n 0, 0, 0, 0);\n\n _.forEach(lineItemArticle.lineItemsGroupedOnVariant1, function(group) {\n _.forEach(group.lineItems, function(lineItem) {\n lineItem.plannedDeliveryDateUtc = newDate;\n });\n saveVariant(group);\n });\n }\n}\n","angular.module('components.caResellerOrderProductSearchMultiSelect', [])\n.component('caResellerOrderProductSearchMultiSelect', {\n templateUrl: 'main/resellerorder/resellerordermodify/components/resellerorderproductsearchmultiselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderId: '<',\n selectSameTwiceAllowed: '<',\n articlesToExclude: '<',\n disabled: '<',\n onArticlesRetrieved: '&'\n },\n controller: controller\n});\n\n// @ngInject\nfunction controller($q, $scope, ResellerOrdersApiService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.searchResultArticles = [];\n vm.articlesToAdd = [];\n vm.result = [];\n vm.currentPage = 1;\n\n vm.refreshArticles = refreshArticles;\n vm.addArticles = addArticles;\n\n function onInit() {\n if (!vm.selectSameTwiceAllowed) {\n vm.selectSameTwiceAllowed = false;\n }\n\n if (!vm.pageSize) {\n vm.pageSize = 20;\n }\n\n $scope.$watch(function() { return (vm.company !== undefined) ? vm.company.id : undefined; }, function() {\n vm.articlesToAdd = [];\n refreshArticles();\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n\n // Refreshes the contents of the drop-down-list of selectable articles.\n function refreshArticles(filter) {\n ResellerOrdersApiService.getProducts(vm.orderId, filter).then(function(response) {\n vm.searchResultArticles = [];\n var excludeList = [];\n if (vm.articlesToExclude !== undefined) {\n excludeList = vm.articlesToExclude.map(function(oa) {\n return { id: oa.articleId };\n });\n }\n\n var products = response.data.products;\n\n for (var i = 0; i < products.length; i++) {\n var article = products[i];\n if (!_.find(excludeList, {'id': article.id})) {\n vm.searchResultArticles.push(article);\n }\n }\n }, function(error) {\n ToasterService.showError(error.errors);\n });\n }\n\n function addArticles() {\n vm.result = [];\n var promises = [];\n loadSpinnerService.start(\"mainSpinner\");\n _.forEach(vm.articlesToAdd, function(article) {\n var articleFetchPromise = ResellerOrdersApiService.getVariantsForProduct(vm.orderId, article.id);\n promises.push(articleFetchPromise);\n });\n\n $q.all(promises).then(function(responses) {\n _.forEach(responses, function(response) {\n vm.result.push(response.data);\n });\n vm.onArticlesRetrieved({articles: vm.result});\n vm.articlesToAdd = [];\n refreshArticles();\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.resellerordermodify', {\n url: '/modify/{orderId:int}',\n templateUrl: 'main/resellerorder/resellerordermodify/resellerordermodify.tpl.html',\n controller: 'ResellerOrderModifyController as vm',\n resolve: {\n resellerOrder: resellerOrderResolver\n },\n params: {\n }\n });\n}\n\n// @ngInject\nfunction resellerOrderResolver($stateParams, ResellerOrdersApiService) {\n return ResellerOrdersApiService.getOrderById($stateParams.orderId);\n}\n\n// @ngInject\nfunction ResellerOrderModifyController($window, $rootScope, $state, $translate, resellerOrder,\n ResellerOrdersApiService, confirmationDialogService, setFieldConfirmationDialogService,\n loadSpinnerService, ToasterService, printLanguageConfirmationDialogService) {\n var vm = this;\n\n //Properties\n vm.resellerOrder = resellerOrder.order;\n vm.resellerOrder.links = resellerOrder.links;\n vm.links = resellerOrder.links;\n vm.canAccess = $rootScope.canAccess;\n vm.showSearchFields = false;\n vm.synchronizationStatus = '';\n vm.isSaving = false;\n vm.isEditingOrderNumber = false;\n vm.editedOrderNumber = '';\n\n //Public methods\n vm.canCancelOrder = canCancelOrder;\n vm.cancelOrder = cancelOrder;\n vm.canConfirmOrder = canConfirmOrder;\n vm.confirmOrder = confirmOrder;\n vm.canPrintOrder = canPrintOrder;\n vm.printOrder = printOrder;\n vm.saveLineItem = saveLineItem;\n vm.saveVariant = saveVariant;\n vm.createNewOrder = createNewOrder;\n vm.createNewReturnOrder = createNewReturnOrder;\n vm.getResellerOrderCsv = getResellerOrderCsv;\n vm.toggleSearchFields = toggleSearchFields;\n vm.canSetWholeOrderDeliveryDate = canSetWholeOrderDeliveryDate;\n vm.canSetWholeOrderDiscountPercent = canSetWholeOrderDiscountPercent;\n vm.setWholeOrderDeliveryDate = setWholeOrderDeliveryDate;\n vm.setWholeOrderDiscountPercent = setWholeOrderDiscountPercent;\n vm.editOrderNumber = editOrderNumber;\n vm.tryToSaveNewOrderNumber = tryToSaveNewOrderNumber;\n\n activate();\n\n function activate() {\n if (vm.resellerOrder.id !== 0) {\n //get product variants\n var lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({ article: { id: parseInt(key), showRows: false }, lineItems: value }))\n .value();\n\n loadSpinnerService.start('mainSpinner');\n _.forEach(lineItemsGroupedByArticle, function(li) {\n ResellerOrdersApiService.getVariantsForProduct(li.article.id).then(function (response) {\n fillOutArticle(response.data.variants);\n });\n });\n loadSpinnerService.stop('mainSpinner');\n }\n\n vm.synchronizationStatus = $translate.instant(\"common.allChangesSaved\");\n $rootScope.$on('ResellerOrder.savingChanges', function() {\n vm.synchronizationStatus = $translate.instant(\"common.savingChanges\");\n vm.isSaving = true;\n });\n $rootScope.$on('ResellerOrder.allChangesSaved', function() {\n vm.synchronizationStatus = $translate.instant(\"common.allChangesSaved\");\n vm.isSaving = false;\n });\n }\n\n \n function editOrderNumber() {\n vm.isEditingOrderNumber = true;\n vm.editedOrderNumber = vm.resellerOrder.orderNumber;\n }\n\n function tryToSaveNewOrderNumber() {\n vm.isEditingOrderNumber = false;\n if(vm.editedOrderNumber === vm.resellerOrder.orderNumber){\n ToasterService.showError($translate.instant('productimport.noChangesToSave') + ' ' + angular.lowercase($translate.instant('common.in') + ' ' + $translate.instant('resellerorder.orderNumber') + '!'));\n return;\n }\n \n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.changeOrderNumber(vm.editedOrderNumber, vm.resellerOrder.id).then(function () {\n vm.resellerOrder.orderNumber = vm.editedOrderNumber;\n ToasterService.showSuccess($translate.instant('common.new') + ' ' + angular.lowercase($translate.instant('resellerorder.orderNumber')) + ': \"' + vm.editedOrderNumber + '\" ' + angular.lowercase($translate.instant('common.wasSaved') + '!'));\n }, function (error){\n vm.isEditingOrderNumber = true;\n ToasterService.showError(error.message);\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n });\n }\n \n function createNewOrder() {\n $state.go('resellerorder.resellerordercreate');\n }\n\n function createNewReturnOrder() {\n $state.go('resellerorder.resellerreturnordercreate');\n }\n\n function getResellerOrderCsv() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderCsv(vm.resellerOrder.id, result.locale).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n function canPrintOrder() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n\n return hasLineItems;\n }\n function printOrder() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + ' PDF?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderPdf(vm.resellerOrder.id, result.locale).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function canSetWholeOrderDeliveryDate() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'updateDeliveryDate'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n function canSetWholeOrderDiscountPercent() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'updateDiscountPercent'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n\n function setWholeOrderDeliveryDate() {\n setFieldConfirmationDialogService.showDialog($translate.instant('resellerorder.confirmationSetWholeOrderDeliveryDate'), '', 'date', null, null).then(function (result) {\n if (result.isCompleted === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n orderId: vm.resellerOrder.id,\n deliveryDateUtc: result.dateValue\n };\n ResellerOrdersApiService.setWholeOrderDeliverDate(request).then(function(response) {\n //reload page\n $window.location.reload();\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function setWholeOrderDiscountPercent() {\n setFieldConfirmationDialogService.showDialog($translate.instant('resellerorder.confirmSetWholeOrderDiscountPercent'), '', 'number', 0, 100).then(function (result) {\n if (result.isCompleted === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n orderId: vm.resellerOrder.id,\n discountPercent: result.numberValue / 100\n };\n ResellerOrdersApiService.setWholeOrderDiscountPercent(request).then(function(response) {\n _.forEach(vm.resellerOrder.lineItems, function(lineItem){\n if(lineItem.quantity > 0){\n lineItem.discountPercent = result.numberValue / 100;\n lineItem.discountDisplayPercent = lineItem.quantity + '%';\n }\n });\n //reload page\n $window.location.reload();\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function fillOutArticle(variants) {\n _.forEach(variants, function(v) {\n var existingLineItem = _.find(vm.resellerOrder.lineItems, function(li) { return li.articleVariantId === v.id; });\n if (existingLineItem === undefined) {\n var newLineItem = {\n amount: 0,\n articleId: v.articleId,\n articleName: v.articleName,\n articleVariantId: v.id,\n fulfilledQuantity: 0,\n id: 0,\n links: [{ rel: 'modify' }],\n orderId: vm.resellerOrder.id,\n quantity: 0,\n status: 'open',\n variantDetail1Name: v.variantDetail1Name,\n variantDetail2Name: v.variantDetail2Name,\n variantDetail2SortOrder: v.variantDetail2SortOrder,\n vatAmount: 0,\n vatRate: 0\n };\n vm.resellerOrder.lineItems.push(newLineItem);\n }\n });\n }\n\n function saveLineItem(lineItem) {\n var request = {\n orderId: lineItem.orderId,\n lineItems: [{\n articleVariantId: lineItem.articleVariantId,\n discountPercent: lineItem.discountPercent,\n plannedDeliveryDateUtc: lineItem.plannedDeliveryDateUtc,\n price: lineItem.amount,\n quantity: lineItem.quantity\n }]\n };\n\n $rootScope.$emit('ResellerOrder.savingChanges', '');\n ResellerOrdersApiService.upsertLineItems(request).then(function (response) {\n vm.resellerOrder.links = response.data.links;\n $rootScope.$emit('ResellerOrder.allChangesSaved', '');\n }, function (error) {\n console.log(error);\n }).then(function () {\n });\n }\n\n function saveVariant(variant) {\n var request = {\n orderId: variant.lineItems[0].orderId,\n lineItems: []\n };\n _.forEach(variant.lineItems, function(lineItem) {\n request.lineItems.push({\n articleVariantId: lineItem.articleVariantId,\n discountPercent: lineItem.discountPercent,\n plannedDeliveryDateUtc: lineItem.plannedDeliveryDateUtc,\n price: lineItem.amount,\n quantity: lineItem.quantity\n });\n });\n\n $rootScope.$emit('ResellerOrder.savingChanges', '');\n ResellerOrdersApiService.upsertLineItems(request).then(function (response) {\n vm.resellerOrder.links = response.data.links;\n $rootScope.$emit('ResellerOrder.allChangesSaved', '');\n }, function (error) {\n console.log(error);\n }).finally(function () {\n });\n }\n\n function canConfirmOrder() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'confirm'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n\n function canCancelOrder() {\n var hasDeleteLink = _.find(vm.links, function(o) { return o.rel === 'delete'; }) !== undefined;\n\n return hasDeleteLink;\n }\n\n function cancelOrder() {\n //confirm scrap order\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmCancelOrder'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n //clear line items and order head\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.deleteOrder(vm.resellerOrder.id).then(function () {\n ToasterService.showInfo($translate.instant('resellerorder.orderDeleted'), $translate.instant('common.information'));\n $state.go('resellerorder.resellerordersearch');\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.error, $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function confirmOrder() {\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmConfirmOrder\"), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n //call backend, confirm order\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.confirm(vm.resellerOrder.id).then(function () {\n ToasterService.showInfo($translate.instant('resellerorder.orderConfirmed'), $translate.instant('common.information'));\n\n $state.go('resellerorder.resellerorderview', { orderId: vm.resellerOrder.id });\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.error, $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n}\n\nangular\n .module('resellerorder.resellerordermodify', [])\n .config(stateConfig)\n .controller('ResellerOrderModifyController', ResellerOrderModifyController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.resellerordersearch', {\n url: '/search',\n templateUrl: 'main/resellerorder/resellerordersearch/resellerordersearch.tpl.html',\n controller: 'ResellerOrderSearchController as vm',\n resolve: {\n },\n params: {\n searchTerm: ''\n }\n });\n}\n\n// @ngInject\nfunction ResellerOrderSearchController($rootScope, $state, $translate) {\n var vm = this;\n\n //Properties\n vm.canAccess = $rootScope.canAccess;\n vm.showSearchFields = true;\n\n //Public methods\n vm.toggleSearchFields = toggleSearchFields;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getOrderTypeTranslation = getOrderTypeTranslation;\n\n activate();\n\n function activate() {\n vm.showSearchFields = true;\n }\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function getStatusTranslation(text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n\n function getOrderTypeTranslation(text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.type' + textCapital);\n }\n}\n\nangular\n .module('resellerorder.resellerordersearch', [])\n .config(stateConfig)\n .controller('ResellerOrderSearchController', ResellerOrderSearchController);\n","// @ngInject\nfunction ResellerOrdersApiService($q, $window, $cookies, DS, DSHttpAdapter, ResourcesService) {\n var endpoint = 'resellerorders';\n\n return {\n applyFulfillResellerOrders: applyFulfillResellerOrders,\n getResellerOrders: getResellerOrders,\n getResellerReturnOrders: getResellerReturnOrders, \n getAllResellerOrders: getAllResellerOrders,\n create: createOrder,\n createReturnOrder: createResellerReturnOrder,\n createResellerReturnOrderBasedOnOrder: createResellerReturnOrderBasedOnOrder,\n changeOrderNumber: changeOrderNumber,\n confirm: confirmOrder,\n confirmFulfillmentLineItemPicking: confirmFulfillmentLineItemPicking,\n deleteResellerOrder: deleteResellerOrder,\n deleteOrder: deleteOrder,\n getFulfillableProducts: getFulfillableProducts,\n getFulfilledOrders: getFulfilledOrders,\n getFulfilledProducts: getFulfilledProducts,\n getFulfillableLineItems: getFulfillableLineItems,\n getFulfillableOrders: getFulfillableOrders,\n getOrderById: getOrderById,\n getReturnOrderById: getReturnOrderById,\n getOrderHeaderById: getOrderHeaderById,\n getReturnOrderProducts:getReturnOrderProducts,\n getWarehouses: ResourcesService.apiFactory.get(endpoint + '/warehouses'),\n getStores: ResourcesService.apiFactory.get(endpoint + '/stores'),\n getResellers: ResourcesService.apiFactory.get(endpoint + '/resellers'),\n getOrderCollections: ResourcesService.apiFactory.get(endpoint + '/ordercollections'),\n getProducts: getProducts,\n getVariantsForProduct: getVariantsForProduct,\n upsertLineItems: upsertLineItems,\n getResellerOrderPdf: getResellerOrderPdf,\n getSelectedResellerOrderPdf: getSelectedResellerOrderPdf,\n getSelectedResellerOrderZip: getSelectedResellerOrderZip,\n getAllSearchedResellerOrderZip:getAllSearchedResellerOrderZip,\n getResellerOrderCsv: getResellerOrderCsv,\n setWholeOrderDeliverDate: setWholeOrderDeliverDate,\n setWholeOrderDiscountPercent: setWholeOrderDiscountPercent,\n setOrderDeliveryAddress: setOrderDeliveryAddress,\n setOrderInvoiceAddress: setOrderInvoiceAddress,\n getResellerOrderOrderPerspectivePickingList: getResellerOrderOrderPerspectivePickingList,\n getResellerOrderProductPerspectivePickingList: getResellerOrderProductPerspectivePickingList,\n getResellerOrderDeliveryOrder: getResellerOrderDeliveryOrder,\n getResellerOrderInvoice: getResellerOrderInvoice,\n getResellerOrderDeliveryNote: getResellerOrderDeliveryNote,\n getResellerOrderByOrderNumber: getResellerOrderByOrderNumber,\n setVariantFufillmentDeliveryDate : setVariantFufillmentDeliveryDate,\n getAllResellerOrdersPdf: getAllResellerOrdersPdf,\n createSalesOnClosedFulfillmentLineItems: createSalesOnClosedFulfillmentLineItems,\n setResellerReturnOrderSaleDate:setResellerReturnOrderSaleDate,\n // deleteResellerOrder: ResourcesService.apiFactory.delete(endpoint + '/id?'),\n };\n\n function getAllSearchedResellerOrderZip(request){\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/searched/zip', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/zip'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrders.zip');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getSelectedResellerOrderZip(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/selected/zip', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/zip'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrders.zip');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getSelectedResellerOrderPdf(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/selected/pdf', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrders.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function setResellerReturnOrderSaleDate(request) {\n var deferred = $q.defer();\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/returnorder/sales', request).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.resolve(handleError);\n });\n\n return deferred.promise;\n }\n\n function setVariantFufillmentDeliveryDate(request){\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/plannedDeliveryDate', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function setOrderDeliveryAddress(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + request.orderId + '/deliveryaddressadjustment', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function setOrderInvoiceAddress(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + request.orderId + '/invoiceaddressadjustment', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function setWholeOrderDeliverDate(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + request.orderId + '/deliverydateadjustment', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function setWholeOrderDiscountPercent(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + request.orderId + '/discountpercentadjustment', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function applyFulfillResellerOrders(lineItems) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/fulfillments', lineItems).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFulfillableProducts(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/fulfillableproducts/warehouse/' + request.warehouseId, { params: request }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFulfilledOrders(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/fulfilledorders/warehouse/' + request.warehouseId, { params: request }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFulfilledProducts(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/fulfilledproducts/warehouse/' + request.warehouseId, { params: request }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFulfillableLineItems(warehouseId, minimumAvailableStock, articleId, articleVariantDetail1Id) {\n var deferred = $q.defer();\n\n var request = {\n warehouseId: warehouseId,\n minimumAvailableStock: minimumAvailableStock,\n articleId: articleId,\n articleVariantDetail1Id: articleVariantDetail1Id\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/fulfillablelineitems/warehouse/' + warehouseId + '/article/' + articleId + '/articleVariantDetail1Id/' + articleVariantDetail1Id, { params: request }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFulfillableOrders(warehouseId, minimumAvailableStock, articleId, articleVariantDetail1Id) {\n var deferred = $q.defer();\n\n var request = {\n warehouseId: warehouseId,\n minimumAvailableStock: minimumAvailableStock,\n articleId: articleId,\n articleVariantDetail1Id: articleVariantDetail1Id\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/fulfillableorders/warehouse/' + warehouseId + '/article/' + articleId + '/articleVariantDetail1Id/' + articleVariantDetail1Id, { params: request }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrders(currentPage, searchTerm, itemsPerPage, orderStatuses, isFilterOrderForInvoice) {\n var deferred = $q.defer();\n\n var params = {\n page: currentPage,\n filter: searchTerm,\n Limit: itemsPerPage,\n order: null,\n orderStatuses: orderStatuses,\n isFilterOrderForInvoice: isFilterOrderForInvoice\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint, { params: params }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerReturnOrders(currentPage, searchTerm, itemsPerPage, orderStatuses) {\n var deferred = $q.defer();\n\n var params = {\n page: currentPage,\n filter: searchTerm,\n Limit: itemsPerPage,\n order: null,\n orderStatuses: orderStatuses\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/returnOrders', { params: params }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getAllResellerOrders(currentPage, searchTerm, itemsPerPage, orderStatuses) {\n var deferred = $q.defer();\n\n var params = {\n page: currentPage,\n filter: searchTerm,\n Limit: itemsPerPage,\n order: null,\n orderStatuses: orderStatuses\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/allOrders', { params: params }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n\n function getVariantsForProduct(orderId, productId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + orderId + '/products/' + productId + '/variants').then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProducts(orderId, filter) {\n var deferred = $q.defer();\n\n var params = {\n filter: filter\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + orderId + '/products/', { params: params }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function getReturnOrderProducts(orderId, filter) {\n var deferred = $q.defer();\n\n var params = {\n filter: filter\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + orderId + '/returnorder/products/', { params: params }).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function upsertLineItems(lineItems) {\n var deferred = $q.defer();\n\n var jsonRequest = JSON.stringify(lineItems);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + lineItems.orderId + '/lineitems', jsonRequest).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function changeOrderNumber(newOrderNumber, resellerOrderId) {\n var deferred = $q.defer();\n\n console.log(\"Changeing order number to: \" + newOrderNumber + \" for: \" + resellerOrderId);\n\n\n var request = {\n ResellerOrderId: resellerOrderId,\n NewOrderNumber: newOrderNumber\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/changeOrderNumber', request).then(function (response){\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createOrder(resellerOrder) {\n var deferred = $q.defer();\n\n console.log(\"Creating reseller order: \" + resellerOrder);\n\n var jsonRequest = JSON.stringify(resellerOrder);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint, jsonRequest).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n \n function createResellerReturnOrder(resellerOrder) {\n var deferred = $q.defer();\n\n console.log(\"Creating reseller return order: \" + resellerOrder);\n\n var jsonRequest = JSON.stringify(resellerOrder);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/returnorder', jsonRequest).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createResellerReturnOrderBasedOnOrder(resellerOrder) {\n var deferred = $q.defer();\n\n console.log(\"Creating reseller return order based on order: \" + resellerOrder);\n resellerOrder.externalOrderNumber = resellerOrder.orderNumber;\n\n var jsonRequest = JSON.stringify(resellerOrder);\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/returnOrderBasedOnOrder', jsonRequest).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function confirmOrder(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + endpoint + '/' + orderId + \"/confirmation\").then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteResellerOrder(href) {\n var deferred = $q.defer();\n\n DSHttpAdapter.DEL(DS.defaults.basePath + href).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteOrder(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + endpoint + '/' + orderId + \"/closure\").then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n\n function getOrderHeaderById(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + orderId + \"/header\").then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getOrderById(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + orderId).then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function getReturnOrderById(orderId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/' + orderId + '/returnorder/').then(function (response) {\n deferred.resolve(response.data);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrderPdf(orderId, locale) {\n var deferred = $q.defer();\n\n var request = {\n resellerOrderId: orderId,\n locale: locale\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + orderId + '/pdf', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], { type: 'application/pdf' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'resellerOrder.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrderCsv(orderId, locale) {\n var url = $window.URL || $window.webkitURL;\n var deferred = $q.defer();\n\n var request = {\n resellerOrderId: orderId,\n locale: locale\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/' + orderId + '/csv', request, { responseType: 'arraybuffer' }).then(function (response) {\n //\"attachment; filename=20200330-10072-ICA Sverige AB.csv\"\n var blob = new Blob([response.data], { type: 'text/csv' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'resellerOrder.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function confirmFulfillmentLineItemPicking(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/pickinglist/confirm', request).then(function (response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrderOrderPerspectivePickingList(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/orders/pickinglist', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrderPickingList.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n function getResellerOrderProductPerspectivePickingList(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/products/pickinglist', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrderPickingList.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getAllResellerOrdersPdf(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/all/pdf', request, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrders.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrderDeliveryOrder(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'resellerorders/deliveryorderpdf', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'text/plain'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrderDeliveryOrder.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrderInvoice(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'resellerorders/invoicepdf', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'text/plain'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrderInvoice.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getResellerOrderDeliveryNote(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'resellerorders/deliveryorderpdf', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'text/plain'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'ResellerOrderDeliveryNote.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n\n }\n\n function getResellerOrderByOrderNumber(orderNumber) {\n var deferred = $q.defer();\n\n var request = {\n resellerOrderNumber: orderNumber\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'resellerorders/ordernumber', request).then(function(response) {\n var order = response.data.order;\n deferred.resolve(order);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36012-36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s-]){1,}.(pdf|csv|xls|xlsx|zip)/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function createSalesOnClosedFulfillmentLineItems(orderIds) {\n var request = {\n orderIds: orderIds\n };\n\n var deferred = $q.defer();\n DSHttpAdapter.POST(DS.defaults.basePath + 'resellerorders/sales', request).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('resellerorder.api', [])\n .factory('ResellerOrdersApiService', ResellerOrdersApiService);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('caResellerOrder', {\n templateUrl: 'main/resellerorder/resellerorderview/components/resellerordercontent.cmp.tpl.html',\n bindings: {\n orderId: '<',\n productNumberToExpand: '<'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($translate, $state, loadSpinnerService, ToasterService, ResellerOrdersApiService, printLanguageConfirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n //Properties\n vm.resellerOrder = {};\n vm.showOrderHead = true;\n vm.tabSelection = {\n lineItems: true,\n fulfillments: false\n };\n vm.showOrderHead = true;\n vm.isEditingOrderNumber = false;\n vm.editedOrderNumber = '';\n\n\n //Methods\n vm.getStatusTranslation = getStatusTranslation;\n vm.changeToOrderRows = changeToOrderRows;\n vm.changeToFulfillmentsTab = changeToFulfillmentsTab;\n vm.toggleOrderHead = toggleOrderHead;\n vm.canPrintOrderPdf = canPrintOrderPdf;\n vm.getResellerOrderPdf = getResellerOrderPdf;\n vm.canPrintOrderCsv = canPrintOrderCsv;\n vm.getResellerOrderCsv = getResellerOrderCsv;\n\n vm.shouldShowPrintCsvButton = shouldShowPrintCsvButton;\n vm.getResellerOrderInvoicePdf = getResellerOrderInvoicePdf;\n vm.getResellerOrderDeliveryOrderPdf = getResellerOrderDeliveryOrderPdf;\n vm.getResellerOrderPickingList = getResellerOrderPickingList;\n vm.getResellerOrderDeliveryNotePdf = getResellerOrderDeliveryNotePdf;\n vm.DeliveryNoteAvailable = deliveryNoteAvailable;\n vm.createNewOrder = createNewOrder;\n vm.createNewReturnOrder = createNewReturnOrder;\n vm.editOrderNumber = editOrderNumber;\n vm.tryToSaveNewOrderNumber = tryToSaveNewOrderNumber;\n\n function onInit() {\n }\n\n function onChanges(change) {\n if (change.orderId && change.orderId.currentValue) {\n ResellerOrdersApiService.getOrderById(change.orderId.currentValue)\n .then(function (response) {\n vm.resellerOrder = response.order;\n vm.resellerOrder.links = response.links;\n });\n }\n }\n \n function editOrderNumber() {\n vm.isEditingOrderNumber = true;\n vm.editedOrderNumber = vm.resellerOrder.orderNumber;\n }\n\n function tryToSaveNewOrderNumber() {\n vm.isEditingOrderNumber = false;\n if(vm.editedOrderNumber === vm.resellerOrder.orderNumber){\n ToasterService.showError($translate.instant('productimport.noChangesToSave') + ' ' + angular.lowercase($translate.instant('common.in') + ' ' + $translate.instant('resellerorder.orderNumber') + '!'));\n return;\n }\n \n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.changeOrderNumber(vm.editedOrderNumber, vm.resellerOrder.id).then(function () {\n vm.resellerOrder.orderNumber = vm.editedOrderNumber;\n ToasterService.showSuccess($translate.instant('common.new') + ' ' + angular.lowercase($translate.instant('resellerorder.orderNumber')) + ': \"' + vm.editedOrderNumber + '\" ' + angular.lowercase($translate.instant('common.wasSaved') + '!'));\n }, function (error){\n vm.isEditingOrderNumber = true;\n ToasterService.showError(error.message);\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function createNewOrder() {\n $state.go('resellerorder.resellerordercreate');\n }\n\n function createNewReturnOrder() {\n $state.go('resellerorder.resellerreturnordercreate');\n }\n\n function changeToOrderRows() {\n setNoTabSelection();\n vm.tabSelection.lineItems = true;\n }\n\n function changeToFulfillmentsTab() {\n setNoTabSelection();\n vm.tabSelection.fulfillments = true;\n }\n\n function setNoTabSelection() {\n var keys = Object.keys(vm.tabSelection);\n _.forEach(keys, function (key) {\n vm.tabSelection[key] = false;\n });\n }\n\n function toggleOrderHead() {\n vm.showOrderHead = !vm.showOrderHead;\n }\n\n function getStatusTranslation(text) {\n if (!text) {\n return \"\";\n }\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n\n function canPrintOrderPdf() {\n var hasLink = _.find(vm.resellerOrder.links, function (o) { return o.rel === 'canPrintPdf'; }) !== undefined;\n return hasLink;\n }\n function getResellerOrderPdf() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + ' PDF?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderPdf(vm.orderId, result.locale).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n function canPrintOrderCsv() {\n var hasLink = _.find(vm.resellerOrder.links, function (o) { return o.rel === 'canPrintCsv'; }) !== undefined;\n return hasLink;\n }\n function getResellerOrderCsv() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderCsv(vm.orderId, result.locale).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getResellerOrderInvoicePdf() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n var request = {\n locale: result.locale\n };\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderInvoice(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getResellerOrderDeliveryOrderPdf() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n var request = {\n locale: result.locale\n };\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderDeliveryOrder(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getResellerOrderPickingList() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n var request = {\n resellerOrderIds: [vm.orderId],\n locale: result.locale\n };\n loadSpinnerService.start('mainSpinner');\n\n ResellerOrdersApiService.getResellerOrderOrderPerspectivePickingList(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function getResellerOrderDeliveryNotePdf() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n var request = {\n resellerOrderIds: [vm.orderId],\n locale: result.locale\n };\n loadSpinnerService.start('mainSpinner');\n\n ResellerOrdersApiService.getResellerOrderDeliveryNote(request).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function deliveryNoteAvailable(){\n return (vm.resellerOrder.status === 'Open')\n }\n\n function shouldShowPrintCsvButton() {\n return vm.resellerOrder.currencyCode === 'SEK';\n }\n}\n","var module = angular.module('main.resellerorder');\n\nmodule.component('caResellerOrderRows', {\n templateUrl: 'main/resellerorder/resellerorderview/components/resellerorderrows.cmp.tpl.html',\n bindings: {\n resellerOrder: '<',\n productNumberToExpand: '<'\n },\n controllerAs: 'vm',\n controller: componentController\n});\n\n// @ngInject\nfunction componentController($state, $window) {\n var vm = this;\n\n //Properties\n vm.articleGroupedItemLines = [];\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.getArticleFulfillmentDateRangeString = getArticleFulfillmentDateRangeString;\n vm.getOrderedQuantitySum = getOrderedQuantitySum;\n vm.getFulfilledQuantity = getFulfilledQuantity;\n vm.getLeftToBeFulfilledQuantity = getLeftToBeFulfilledQuantity;\n vm.getTotalFulfillableQuantity = getTotalFulfillableQuantity;\n vm.getTotalAmount = getTotalAmount;\n vm.getOrderFulfilledQuantity = getOrderFulfilledQuantity;\n vm.getOrderLeftToBeFulfilledQuantity = getOrderLeftToBeFulfilledQuantity;\n vm.getOrderTotalFulfillableQuantity = getOrderTotalFulfillableQuantity;\n vm.getOrderTotalAmount = getOrderTotalAmount;\n vm.toggleExpandAll = toggleExpandAll;\n vm.goToProduct = goToProduct;\n\n function onInit() {\n\n }\n\n function onChanges(changes) {\n vm.articleGroupedItemLines = [];\n groupRowsByArticle();\n\n if (vm.productNumberToExpand && vm.productNumberToExpand !== '') {\n expandProduct(vm.productNumberToExpand);\n }\n }\n\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.articleGroupedItemLines, function (o) {\n if (!o.showRows || o.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.articleGroupedItemLines, function(art) {\n if (!allAreExpanded) {\n art.showRows = true;\n } else {\n art.showRows = false;\n }\n });\n }\n\n function expandProduct(productNumber) {\n _.forEach(vm.articleGroupedItemLines, function (art) {\n if (productNumber && productNumber !== '' && art.AlternativeArticleNumber === productNumber) {\n art.showRows = true;\n }\n });\n }\n\n function groupRowsByArticle() {\n var lineItemGroups = _.groupBy(vm.resellerOrder.lineItems, function(item) { return item.articleId; });\n _.forEach(lineItemGroups, function (group) {\n var groupRow = {\n AlternativeArticleNumber: group[0].alternativeArticleNumber,\n ArticleName: group[0].articleName,\n DisplayArticleNumber: group[0].displayArticleNumber,\n FulfillmentDateRange: getArticleFulfillmentDateRangeString(group),\n FulfilledQuantity: getFulfilledQuantity(group),\n LeftToBeFulfilledQuantity: getLeftToBeFulfilledQuantity(group),\n TotalFulfillableQuantity: getTotalFulfillableQuantity(group),\n AveragePricePerPiece: getAveragePricePerPiece(group),\n AveragePriceMinusDiscountPerPiece: getAveragePriceMinusDiscountPerPiece(group),\n TotalAmount: getTotalAmount(group),\n LineItems: _.orderBy(group, function(lineItem) { return [lineItem.variantDetailName, lineItem.variantDetail2SortOrder]; })\n };\n\n vm.articleGroupedItemLines.push(groupRow);\n });\n }\n\n function getArticleFulfillmentDateRangeString(lineItems) {\n var datesString = \"\";\n var dates = [];\n _.forEach(lineItems, function(lineItem) {\n dates = dates.concat(lineItem.fullfillmentDates);\n _.forEach(lineItem.fulfillmentDates, function(dateString) {\n dates.add(Date.parse(dateString));\n });\n });\n\n var minDate = _.min(dates);\n var maxDate = _.max(dates);\n if (minDate !== undefined && maxDate !== undefined) {\n if (minDate !== maxDate) {\n datesString = minDate.toString().substring(0,16) + \" - \" + maxDate.toString().substring(0,16);\n datesString = datesString.replace(/T/g, ' ');\n } else if (minDate === maxDate) {\n datesString = minDate.toString().substring(0,16);\n datesString = datesString.replace(/T/g, ' ');\n }\n }\n return datesString;\n }\n\n function getOrderedQuantitySum(lineItems) {\n var quantity = _.sumBy(lineItems, function(lineItem) {\n return lineItem.quantity;\n });\n return quantity;\n }\n\n function getFulfilledQuantity(lineItems) {\n return _.sumBy(lineItems, function(lineItem) {\n return lineItem.fulfilledQuantity;\n });\n }\n\n function getLeftToBeFulfilledQuantity(lineItems) {\n var sum = _.sumBy(lineItems, function(lineItem) {\n return lineItem.quantity - lineItem.fulfilledQuantity;\n });\n sum = Math.max(sum, 0);\n return sum;\n }\n\n function getTotalFulfillableQuantity(lineItems) {\n return _.sumBy(lineItems, function(lineItem) {\n return lineItem.quantity;\n });\n }\n\n function getAveragePricePerPiece(lineItems) {\n var count = 0;\n var totalAmount = 0;\n var average = 0;\n _.forEach(lineItems, function(lineItem) {\n totalAmount += lineItem.amount;\n count += 1;\n });\n average = totalAmount / count;\n return average;\n }\n function getAveragePriceMinusDiscountPerPiece(lineItems) {\n var count = 0;\n var totalAmount = 0;\n var average = 0;\n _.forEach(lineItems, function(lineItem) {\n totalAmount += lineItem.amount - lineItem.discountAmountPerItem;\n count += 1;\n });\n average = totalAmount / count;\n return average;\n }\n\n function getTotalAmount(lineItems) {\n return _.sumBy(lineItems, function(lineItem) {\n return (lineItem.amount - lineItem.discountAmountPerItem) * lineItem.quantity;\n });\n }\n\n function getOrderFulfilledQuantity() {\n var lineItems = vm.resellerOrder.lineItems;\n return getFulfilledQuantity(lineItems);\n }\n\n function getOrderLeftToBeFulfilledQuantity() {\n var lineItems = vm.resellerOrder.lineItems;\n return getLeftToBeFulfilledQuantity(lineItems);\n }\n\n function getOrderTotalFulfillableQuantity() {\n var lineItems = vm.resellerOrder.lineItems;\n return getTotalFulfillableQuantity(lineItems);\n }\n\n function getOrderTotalAmount() {\n var lineItems = vm.resellerOrder.lineItems;\n return getTotalAmount(lineItems);\n }\n\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.resellerorderview', {\n url: '/{orderId}',\n templateUrl: 'main/resellerorder/resellerorderview/resellerorderview.tpl.html',\n controller: 'ResellerOrderViewController as vm',\n resolve: {\n resellerOrder: resellerOrderResolver\n },\n params: {\n searchTerm: '',\n productNumber: '',\n shouldUseScannerNavigation: false\n }\n });\n}\n\n// @ngInject\nfunction resellerOrderResolver($stateParams, ResellerOrdersApiService) {\n return ResellerOrdersApiService.getOrderHeaderById($stateParams.orderId);\n}\n\n// @ngInject\nfunction ResellerOrderViewController($rootScope, $state, $stateParams, $translate, resellerOrder) {\n var vm = this;\n\n //Properties\n vm.selectedOrder = resellerOrder.order;\n vm.selectedOrder.links = resellerOrder.links;\n vm.canAccess = $rootScope.canAccess;\n vm.showSearchFields = true;\n vm.productNumberToExpand = $stateParams.productNumber;\n\n //Public methods\n vm.toggleSearchFields = toggleSearchFields;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getOrderTypeTranslation = getOrderTypeTranslation;\n vm.showSearchToggle = showSearchToggle;\n\n activate();\n\n function activate() {\n vm.showSearchFields = true;\n if (vm.selectedOrder && vm.selectedOrder.id) {\n vm.showSearchFields = false;\n }\n }\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function showSearchToggle() {\n return vm.selectedOrder && vm.selectedOrder.id;\n }\n\n function getStatusTranslation(text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n\n function getOrderTypeTranslation(text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.type' + textCapital);\n }\n}\n\nangular\n .module('resellerorder.resellerorderview', [])\n .config(stateConfig)\n .controller('ResellerOrderViewController', ResellerOrderViewController);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('createResellerReturnOrderHeader',{\n templateUrl: 'main/resellerorder/resellerreturnordercreate/components/createreturnorderheader.cmp.tpl.html',\n bindings: {\n resellerOrder: '='\n },\n controllerAs: 'vm',\n controller: ['$window','$scope','ResellerOrdersApiService','ToasterService',componentController]\n});\n\n// @ngInject\nfunction componentController($window, $scope, ResellerOrdersApiService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.stores = [];\n vm.resellers = [];\n vm.warehouses = [];\n vm.collections = [];\n vm.selectedReseller = {};\n vm.selectedSaleLocation = {};\n vm.selectedWarehouse = {};\n vm.selectedCollection= {};\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n\n activate();\n\n function activate() {\n $scope.$watch(function () { return vm.selectedReseller.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.resellerId = newValue;\n }\n });\n $scope.$watch(function () { return vm.selectedSaleLocation.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.saleLocationId = newValue;\n saveLastUsedSaleLocationId(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedWarehouse.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.warehouseId = newValue;\n saveLastUsedWarehouseId(newValue);\n }\n });\n $scope.$watch(function () { return vm.selectedCollection.id; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n vm.resellerOrder.collectionId = newValue;\n saveLastUsedCollectionId(newValue);\n }\n });\n }\n\n function onInit() {\n ResellerOrdersApiService.getWarehouses().then(function(response) {\n vm.warehouses = response.warehouses;\n var lastUsedWarehouseId = getLastUsedWarehouseId();\n vm.selectedWarehouse = _.find(vm.warehouses, function(o) { return o.id === lastUsedWarehouseId; });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n ResellerOrdersApiService.getStores().then(function(response) {\n vm.stores = response.stores;\n var lastUsedSaleLocationId = getLastUsedSaleLocationId();\n vm.selectedSaleLocation = _.find(vm.stores, function(o) { return o.id === lastUsedSaleLocationId; });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n ResellerOrdersApiService.getResellers().then(function(response) {\n vm.resellers = response.resellers;\n }, function(error) {\n ToasterService.showError(error.message);\n });\n\n ResellerOrdersApiService.getOrderCollections().then(function(response) {\n vm.collections = response;\n var lastUsedCollectionId = getLastUsedCollectionId();\n vm.selectedCollection = _.find(vm.collections, function(o) { return o.id === lastUsedCollectionId; });\n }, function(error) {\n ToasterService.showError(error.message);\n });\n }\n function onChanges() {\n }\n\n function getLastUsedSaleLocationId() {\n if ($window.localStorage.createorderheader_lastUsedSaleLocationId) {\n var lastUsedSaleLocationId = parseInt($window.localStorage.getItem('createorderheader_lastUsedSaleLocationId'));\n if (isNaN(lastUsedSaleLocationId)) { return undefined; }\n return lastUsedSaleLocationId;\n }\n return undefined;\n }\n function getLastUsedWarehouseId() {\n if ($window.localStorage.createorderheader_lastUsedWarehouseId) {\n var lastUsedWarehouseId = parseInt($window.localStorage.getItem('createorderheader_lastUsedWarehouseId'));\n if (isNaN(lastUsedWarehouseId)) { return undefined; }\n return lastUsedWarehouseId;\n }\n return undefined;\n }\n function getLastUsedCollectionId() {\n if ($window.localStorage.createorderheader_lastUsedCollectionId) {\n var lastUsedCollectionId = parseInt($window.localStorage.getItem('createorderheader_lastUsedCollectionId'));\n if (isNaN(lastUsedCollectionId)) { return undefined; }\n return lastUsedCollectionId;\n }\n return undefined;\n }\n function saveLastUsedSaleLocationId(id) {\n $window.localStorage.setItem('createorderheader_lastUsedSaleLocationId', id);\n }\n function saveLastUsedWarehouseId(id) {\n $window.localStorage.setItem('createorderheader_lastUsedWarehouseId', id);\n }\n function saveLastUsedCollectionId(id) {\n $window.localStorage.setItem('createorderheader_lastUsedCollectionId', id);\n }\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.resellerreturnordercreate', {\n url: '/newreturnorder/',\n templateUrl: 'main/resellerorder/resellerreturnordercreate/resellerreturnordercreate.tpl.html',\n controller: 'ResellerReturnOrderCreateController as vm',\n resolve: {\n resellerOrder: function() {\n return {\n links: [],\n order: {\n externalOrderNumber: '',\n id: 0,\n // lineItems: [],\n resellerId: 0,\n saleLocationId: 0,\n status: 'Created',\n warehouseId: 0\n }\n };\n }\n },\n params: {\n }\n });\n}\n\n// @ngInject\nfunction ResellerReturnOrderCreateController($rootScope, $state, $translate, resellerOrder, ResellerOrdersApiService, confirmationDialogService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n //Properties\n vm.resellerOrder = resellerOrder.order;\n vm.resellerOrder.links = resellerOrder.links;\n vm.links = resellerOrder.links;\n vm.canAccess = $rootScope.canAccess;\n\n //Public methods\n vm.canCreateOrderHeader = canCreateOrderHeader;\n vm.createOrderHeader = createOrderHeader;\n vm.createNewOrder = createNewOrder;\n\n activate();\n\n function activate() {\n }\n\n function createNewOrder() {\n $state.go('resellerorder.resellerordercreate');\n }\n\n function canCreateOrderHeader() {\n var hasSetReseller = vm.resellerOrder.resellerId > 0;\n var hasSetSaleLocation = vm.resellerOrder.saleLocationId > 0;\n var hasSetWarehouse = vm.resellerOrder.warehouseId > 0;\n var hasSetCollection = vm.resellerOrder.collectionId > 0;\n\n return hasSetReseller && hasSetSaleLocation && hasSetWarehouse && hasSetCollection;\n }\n\n function createOrderHeader() {\n //call backend, save order\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.createReturnOrder(vm.resellerOrder).then(function (response) {\n var orderId = response.data.id;\n $state.go('resellerorder.resellerreturnordermodify', { orderId: orderId });\n }, function (error) {\n console.log(error);\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n}\n\nangular\n .module('resellerorder.resellerreturnordercreate', [])\n .config(stateConfig)\n .controller('ResellerReturnOrderCreateController', ResellerReturnOrderCreateController);\n","var module = angular.module('main.resellerorder');\n\nmodule.component('createResellerReturnOrderAddLineItems',{\n templateUrl: 'main/resellerorder/resellerreturnordermodify/components/addlineitems.cmp.tpl.html',\n bindings: {\n resellerOrder: '=',\n onLineItemChanged: '&',\n onVariantChanged: '&'\n },\n controllerAs: 'vm',\n controller: ['$scope', componentController]\n});\n\n// @ngInject\nfunction componentController($scope) {\n var vm = this;\n\n //Properties\n vm.excludedArticles = [];\n vm.tabSelection = {\n overview: false,\n quantity: true,\n amount: false\n };\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.receiveArticles = receiveArticles;\n vm.saveLineItem = saveLineItem;\n vm.saveVariant = saveVariant;\n vm.canModifyLineItems = canModifyLineItems;\n vm.changeToTab = changeToTab;\n\n function onInit() {\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n updateArticlesToExclude();\n }\n });\n }\n function onChanges() {\n }\n\n function changeToTab(tab) {\n switch (tab) {\n default:\n case 'overview': vm.tabSelection = {\n overview: true,\n quantity: false,\n amount: false\n };\n break;\n case 'quantity': vm.tabSelection = {\n overview: false,\n quantity: true,\n amount: false\n };\n break;\n case 'amount': vm.tabSelection = {\n overview: false,\n quantity: false,\n amount: true\n };\n break;\n }\n }\n\n function updateArticlesToExclude() {\n vm.excludedArticles = _.chain(vm.resellerOrder.lineItems)\n .groupBy('articleId')\n .map((value, key) => ({ articleId: parseInt(key) }))\n .value();\n }\n\n function canModifyLineItems() {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n\n return canModifyLineItems;\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n function saveVariant(variant) {\n vm.onVariantChanged({ variant: variant });\n }\n\n function receiveArticles(articles) {\n if (!vm.resellerOrder.lineItems) { vm.resellerOrder.lineItems = []; }\n\n _.forEach(articles, function(art) {\n _.forEach(art.variants, function(variant) {\n var newListItem = {\n amount: variant.price,\n articleId: variant.articleId,\n articleName: variant.articleName,\n articleVariantId: variant.id,\n fulfilledQuantity: 0,\n id: 0,\n links: [{ rel: 'modify' }],\n orderId: vm.resellerOrder.id,\n plannedDeliveryDateUtc: new Date(variant.plannedDeliveryDate),\n quantity: 0,\n status: 'open',\n variantDetail1Name: variant.variantDetail1Name,\n variantDetail2Name: variant.variantDetail2Name,\n variantDetail2SortOrder: variant.variantDetail2SortOrder,\n vatAmount: variant.vatAmount,\n vatRate: variant.vatRate\n };\n\n vm.resellerOrder.lineItems.push(newListItem);\n });\n });\n }\n}\n","angular.module('components.createResellerOrderArticlesAmount', [])\n .component('createResellerOrderArticlesAmount', {\n templateUrl: 'main/resellerorder/resellerordermodify/components/articlelist_amount.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n resellerOrder: '=',\n disabled: '<',\n onArticleSelected: '&',\n onLineItemChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($scope, $translate, confirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.lineItemsGroupedByArticle = [];\n\n //Methods\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.groupBy = groupBy;\n vm.saveLineItem = saveLineItem;\n vm.canModifyLineItem = canModifyLineItem;\n vm.getVariant1s = getVariant1s;\n vm.getVariant2s = getVariant2s;\n vm.toggleExpandAll = toggleExpandAll;\n vm.canClearRow = canClearRow;\n vm.confirmClearRow = confirmClearRow;\n vm.removeArticleFromOrder = removeArticleFromOrder;\n vm.canDeleteArticleFromOrder = canDeleteArticleFromOrder;\n vm.canUpdateWholeRow = canUpdateWholeRow;\n vm.updateWholeRow = updateWholeRow;\n vm.getProductGrossPriceSum = getProductGrossPriceSum;\n vm.getVariantGrossPriceAverage = getVariantGrossPriceAverage;\n\n function onInit() {\n if (vm.resellerOrder.lineItems === undefined) {\n vm.resellerOrder.lineItems = [];\n } else {\n regroupLineItemsOnArticle();\n }\n\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n regroupLineItemsOnArticle();\n }\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function getVariantGrossPriceAverage(variant) {\n var sumPrice = 0, sumTotalQuantity = 0;\n sumPrice += _.sumBy(variant.lineItems, function(li) {\n sumTotalQuantity += li.quantity;\n return li.amount * li.quantity;\n });\n return sumPrice / (sumTotalQuantity === 0 ? 1 : sumTotalQuantity);\n }\n\n function getProductGrossPriceSum(article) {\n var sumPrice = 0;\n _.forEach(article.lineItemsGroupedOnVariant1, function(liGrp) {\n sumPrice += _.sumBy(liGrp.lineItems, function(li) {\n return li.amount * li.quantity;\n });\n });\n return sumPrice;\n }\n\n function removeArticleFromOrder(article) {\n if (!article || !article.lineItemsGroupedOnVariant1) { return false; }\n\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmRemoveArticle\"), 'warning').then(function (result) {\n if (result === true) {\n _.forEach(article.lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n });\n vm.resellerOrder.lineItems = _.filter(vm.resellerOrder.lineItems, function(o) {\n return o.articleId !== parseInt(article.article.id);\n });\n }\n });\n }\n function canDeleteArticleFromOrder(lineItemsGroupedOnVariant1) {\n if (!lineItemsGroupedOnVariant1) { return false; }\n\n var canDelete = true;\n _.forEach(lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'delete'; }) === undefined) {\n canDelete = false;\n }\n });\n });\n return canDelete;\n }\n\n function canClearRow(variant1) {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function confirmClearRow(lineItemsGroupedOnVariant1) {\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmClearRow\"), 'warning').then(function (result) {\n if (result === true) {\n _.forEach(lineItemsGroupedOnVariant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n lineItemsGroupedOnVariant1.wholeRowAmount = '';\n }\n });\n }\n\n function canUpdateWholeRow(variant1) {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function updateWholeRow(variant1, wholeRowAmount) {\n if (!variant1) { return; }\n if (!variant1.lineItems) { return; }\n if (!wholeRowAmount || wholeRowAmount === '') { return; }\n\n var lineItem = _.find(variant1.lineItems, function(o) { return o.amount > 0; });\n if (lineItem !== undefined) {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmUpdateWholeRow'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = wholeRowAmount;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n }\n variant1.wholeRowAmount = '';\n });\n } else {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.amount = wholeRowAmount;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n variant1.wholeRowAmount = '';\n }\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.lineItemsGroupedByArticle, function (o) {\n if (!o.article.showRows || o.article.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.lineItemsGroupedByArticle, function(art) {\n if (!allAreExpanded) {\n art.article.showRows = true;\n } else {\n art.article.showRows = false;\n }\n });\n }\n\n function getVariant1s(lineItems) {\n var variants = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({ variantDetail1Name: key, lineItems: value }))\n .value();\n\n return variants;\n }\n function getVariant2s(lineItems) {\n var variants = _.map(lineItems, 'variantDetail2Name');\n\n return variants;\n }\n\n function canModifyLineItem(lineItem) {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canModifyLineItems;\n\n //TODO look on each lineitem if able to upsert\n // if (lineItem === undefined) { return false; }\n // if (!lineItem.links) { lineItem.links = []; }\n // var canModifyLineItem = _.find(lineItem.links, function(o) { return o.rel === 'modify'; }) !== undefined;\n\n // return canModifyLineItem;\n }\n\n function regroupLineItemsOnArticle() {\n vm.resellerOrder.lineItems = _.sortBy(vm.resellerOrder.lineItems, ['variantDetail1Name', 'variantDetail2SortOrder']);\n vm.lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({\n article: {\n displayArticleNumber: value.length > 0 ? value[0].displayArticleNumber : '',\n articleName: value.length > 0 ? value[0].articleName : '',\n id: key,\n showRows: false\n }, lineItemsGroupedOnVariant1: regroupLineItemsOnVariant1(value) }))\n .value();\n }\n function regroupLineItemsOnVariant1(lineItems) {\n var lineItemsGroupedByVariant1 = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({\n variantDetail1Name: key,\n lineItems: value\n }))\n .value();\n return lineItemsGroupedByVariant1;\n }\n\n function groupBy(array, field) {\n return _.groupBy(array, field);\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n\n function viewOrderArticle(article) {\n vm.onArticleSelected({ article: article });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n}\n","angular.module('components.createResellerReturnOrderArticlesOverview', [])\n .component('createResellerReturnOrderArticlesOverview', {\n templateUrl: 'main/resellerorder/resellerreturnordermodify/components/articlelist_overview.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n resellerOrder: '=',\n disabled: '<',\n onArticleSelected: '&',\n onLineItemChanged: '&'\n },\n controller: ['$scope', '$state', '$window', '$translate', 'confirmationDialogService', controller]\n });\n\n// @ngInject\nfunction controller($scope, $state, $window, $translate, confirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.lineItemsGroupedByArticle = [];\n\n //Methods\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.groupBy = groupBy;\n vm.saveLineItem = saveLineItem;\n vm.canModifyLineItem = canModifyLineItem;\n vm.toggleExpandAll = toggleExpandAll;\n vm.removeArticleFromOrder = removeArticleFromOrder;\n vm.canDeleteArticleFromOrder = canDeleteArticleFromOrder;\n vm.getStatusTranslation = getStatusTranslation;\n vm.getProductGrossPriceSum = getProductGrossPriceSum;\n vm.getTotalGrossPriceSum = getTotalGrossPriceSum;\n vm.getProductGrossPrice = getProductGrossPrice;\n vm.getProductQuantitySum = getProductQuantitySum;\n vm.getTotalQuantitySum = getTotalQuantitySum;\n vm.getProductUnfulfilledQuantitySum = getProductUnfulfilledQuantitySum;\n vm.getFinalAmount = getFinalAmount;\n vm.goToProduct = goToProduct;\n\n function onInit() {\n if (vm.resellerOrder.lineItems === undefined) {\n vm.resellerOrder.lineItems = [];\n } else {\n regroupLineItems();\n }\n\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n regroupLineItems();\n }\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function getFinalAmount(lineItem) {\n var discountPercent = lineItem.discountPercent ? lineItem.discountPercent : 0;\n return lineItem.amount * (1 - discountPercent);\n }\n\n function getProductUnfulfilledQuantitySum(article) {\n var sumQty = 0;\n sumQty += _.sumBy(article.lineItems, function(li) {\n return li.fulfilledQuantity;\n });\n return sumQty;\n }\n\n function getProductGrossPriceSum(article) {\n var sumPrice = 0;\n sumPrice += _.sumBy(article.lineItems, function(li) {\n return li.amount * li.quantity;\n });\n return sumPrice;\n }\n\n function getTotalGrossPriceSum() {\n var sumPrice = 0;\n _.forEach(vm.lineItemsGroupedByArticle, function(o) {\n sumPrice += getProductGrossPriceSum(o);\n });\n return sumPrice;\n }\n\n function getProductGrossPrice(article) {\n var sumPrice = 0, sumTotalQuantity = 0;\n sumPrice += _.sumBy(article.lineItems, function(li) {\n sumTotalQuantity += li.quantity;\n return li.amount * li.quantity;\n });\n return sumPrice / (sumTotalQuantity === 0 ? 1 : sumTotalQuantity);\n }\n\n function getProductQuantitySum(article) {\n var sumQty = 0;\n sumQty += _.sumBy(article.lineItems, function(li) {\n return li.quantity;\n });\n return sumQty;\n }\n\n function getTotalQuantitySum() {\n var sumQty = 0;\n _.forEach(vm.lineItemsGroupedByArticle, function(o) {\n sumQty += getProductQuantitySum(o);\n });\n return sumQty;\n }\n\n function getStatusTranslation(text) {\n if (text) {\n var textCapital = text.substr(0, 1).toUpperCase() + text.substr(1, text.length - 1);\n return $translate.instant('resellerorder.status' + textCapital);\n }\n }\n\n function removeArticleFromOrder(article) {\n if (!article) { return false; }\n\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmRemoveArticle'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(article.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n vm.resellerOrder.lineItems = _.filter(vm.resellerOrder.lineItems, function(o) {\n return o.articleId !== parseInt(article.article.id);\n });\n }\n });\n }\n function canDeleteArticleFromOrder(lineItemsGroupedOnArticle) {\n if (!lineItemsGroupedOnArticle) { return false; }\n\n var canDelete = true;\n _.forEach(lineItemsGroupedOnArticle.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'delete'; }) === undefined) {\n canDelete = false;\n }\n });\n return canDelete;\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.lineItemsGroupedByArticle, function (o) {\n if (!o.article.showRows || o.article.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.lineItemsGroupedByArticle, function(art) {\n if (!allAreExpanded) {\n art.article.showRows = true;\n } else {\n art.article.showRows = false;\n }\n });\n }\n\n function canModifyLineItem(lineItem) {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canModifyLineItems;\n }\n\n function regroupLineItems() {\n vm.resellerOrder.lineItems = _.sortBy(vm.resellerOrder.lineItems, ['variantDetail1Name', 'variantDetail2SortOrder']);\n vm.lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({\n article: {\n displayArticleNumber: value.length > 0 ? value[0].displayArticleNumber : '',\n articleName: value.length > 0 ? value[0].articleName : '',\n id: key,\n showRows: false\n }, lineItems: value }))\n .value();\n\n _.forEach(vm.lineItemsGroupedByArticle, function(lineItemArticle) {\n _.forEach(lineItemArticle.lineItems, function(lineItem) {\n lineItem.discountDisplayPercent = lineItem.discountPercent * 100 + '%';\n });\n });\n }\n\n function groupBy(array, field) {\n return _.groupBy(array, field);\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n\n function viewOrderArticle(article) {\n vm.onArticleSelected({ article: article });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n}\n","angular.module('components.createResellerReturnOrderArticlesQuantity', [])\n .component('createResellerReturnOrderArticlesQuantity', {\n templateUrl: 'main/resellerorder/resellerreturnordermodify/components/articlelist_quantity.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n resellerOrder: '=',\n disabled: '<',\n onArticleSelected: '&',\n onLineItemChanged: '&',\n onVariantChanged: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($rootScope, $scope, $state, $window, $translate, ResellerOrdersApiService, confirmationDialogService) {\n var vm = this;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n //Properties\n vm.lineItemsGroupedByArticle = [];\n\n //Methods\n vm.viewOrderArticle = viewOrderArticle;\n vm.absolute = absolute;\n vm.groupBy = groupBy;\n vm.saveLineItem = saveLineItem;\n vm.saveVariant = saveVariant;\n vm.canModifyLineItem = canModifyLineItem;\n vm.getVariant1s = getVariant1s;\n vm.getVariant2s = getVariant2s;\n vm.toggleExpandAll = toggleExpandAll;\n vm.canClearRow = canClearRow;\n vm.confirmClearRow = confirmClearRow;\n vm.removeArticleFromOrder = removeArticleFromOrder;\n vm.canDeleteArticleFromOrder = canDeleteArticleFromOrder;\n vm.canUpdateWholeRow = canUpdateWholeRow;\n vm.updateWholeRow = updateWholeRow;\n vm.getProductQuantitySum = getProductQuantitySum;\n vm.getTotalQuantitySum = getTotalQuantitySum;\n vm.getVariantQuantitySum = getVariantQuantitySum;\n vm.getProductGrossPrice = getProductGrossPrice;\n vm.canModifyLineItemDeliveryDate = canModifyLineItemDeliveryDate;\n vm.deliveryDateChanged = deliveryDateChanged;\n vm.setWholeRowPrice = setWholeRowPrice;\n vm.setWholeRowDiscountPercent = setWholeRowDiscountPercent;\n vm.getFinalAmount = getFinalAmount;\n vm.goToProduct = goToProduct;\n\n function onInit() {\n if (vm.resellerOrder.lineItems === undefined) {\n vm.resellerOrder.lineItems = [];\n } else {\n regroupLineItemsOnArticle();\n }\n\n $scope.$watch(function () { return vm.resellerOrder.lineItems.length; }, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n regroupLineItemsOnArticle();\n }\n });\n $rootScope.$on('ResellerOrder.hideLineSpinner', function() {\n vm.showSpinner = false;\n });\n }\n function onChanges() {\n }\n function onDestroy() {\n }\n\n function goToProduct(articleId) {\n var url = $state.href('product.articles.article', {articleId: articleId});\n $window.open(url,'_blank');\n }\n\n function getFinalAmount(lineItemArticle, variant) {\n var avgPrice = parseFloat(vm.getProductGrossPrice(lineItemArticle).toFixed(2));\n if (!variant.wholeRowPrice) { variant.wholeRowPrice = avgPrice; }\n if (!variant.wholeRowDiscountPercent) { variant.wholeRowDiscountPercent = 0; }\n\n var temp = parseFloat((variant.wholeRowPrice * (1 - variant.wholeRowDiscountPercent)).toFixed(2));\n return temp;\n }\n\n function setWholeRowPrice(lineItemArticle, variant) {\n var avgPrice = parseFloat(vm.getProductGrossPrice(lineItemArticle).toFixed(2));\n if (!variant.wholeRowPrice) { variant.wholeRowPrice = avgPrice; }\n variant.wholeRowFinalPrice = parseFloat((variant.wholeRowPrice * (1 - variant.wholeRowDiscount / 100)).toFixed(2));\n\n _.forEach(variant.lineItems, function(li) {\n if (!li.amount || li.amount === 0) {\n li.amount = variant.wholeRowPrice;\n li.finalAmount = parseFloat((parseFloat(variant.wholeRowPrice) * (1 - parseFloat(variant.wholeRowDiscount) / 100)).toFixed(2));\n }\n });\n\n saveVariant(variant);\n }\n\n function setWholeRowDiscountPercent(lineItemArticle, variant) {\n var avgPrice = parseFloat(vm.getProductGrossPrice(lineItemArticle).toFixed(2));\n if (!variant.wholeRowPrice) { variant.wholeRowPrice = avgPrice; }\n if (!variant.wholeRowDiscount) { variant.wholeRowDiscount = 0; }\n variant.wholeRowFinalPrice = parseFloat((variant.wholeRowPrice * (1 - variant.wholeRowDiscountPercent)).toFixed(2));\n\n _.forEach(variant.lineItems, function(li) {\n if (!li.amount || li.amount === 0) {\n li.amount = variant.wholeRowPrice;\n li.finalAmount = parseFloat((parseFloat(variant.wholeRowPrice) * (1 - variant.wholeRowDiscountPercent)).toFixed(2));\n }\n li.discountPercent = variant.wholeRowDiscountPercent;\n });\n\n saveVariant(variant);\n }\n\n function getProductGrossPrice(article) {\n var sumPrice = 0, sumTotalQuantity = 0;\n _.forEach(article.lineItemsGroupedOnVariant1, function(liGrp) {\n sumPrice += _.sumBy(liGrp.lineItems, function(li) {\n sumTotalQuantity += li.quantity;\n return li.amount * li.quantity;\n });\n });\n return sumPrice / (sumTotalQuantity === 0 ? 1 : sumTotalQuantity);\n }\n\n function getVariantQuantitySum(variant) {\n var sumQty = 0;\n sumQty += _.sumBy(variant.lineItems, function(li) {\n return li.quantity;\n });\n return sumQty;\n }\n\n function getProductQuantitySum(article) {\n var sumQty = 0;\n _.forEach(article.lineItemsGroupedOnVariant1, function(liGrp) {\n sumQty += _.sumBy(liGrp.lineItems, function(li) {\n return li.quantity;\n });\n });\n return sumQty;\n }\n\n function getTotalQuantitySum() {\n var sumQty = 0;\n _.forEach(vm.lineItemsGroupedByArticle, function(o) {\n sumQty += getProductQuantitySum(o);\n });\n return sumQty;\n }\n\n function removeArticleFromOrder(article) {\n if (!article || !article.lineItemsGroupedOnVariant1) { return false; }\n\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmRemoveArticle'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(article.lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n });\n vm.resellerOrder.lineItems = _.filter(vm.resellerOrder.lineItems, function(o) {\n return o.articleId !== parseInt(article.article.id);\n });\n }\n });\n }\n function canDeleteArticleFromOrder(lineItemsGroupedOnVariant1) {\n if (!lineItemsGroupedOnVariant1) { return false; }\n\n var canDelete = true;\n _.forEach(lineItemsGroupedOnVariant1, function(variant1) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'delete'; }) === undefined) {\n canDelete = false;\n }\n });\n });\n return canDelete;\n }\n\n function canClearRow() {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function confirmClearRow(lineItemsGroupedOnVariant1) {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmClearRow'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(lineItemsGroupedOnVariant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = 0;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n lineItemsGroupedOnVariant1.wholeRowQuantity = '';\n }\n });\n }\n\n function canUpdateWholeRow() {\n var canUpdateWholeRow = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canUpdateWholeRow;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function updateWholeRow(variant1, wholeRowQuantity) {\n if (!variant1) { return; }\n if (!variant1.lineItems) { return; }\n if (!wholeRowQuantity || wholeRowQuantity === '') { return; }\n\n var lineItem = _.find(variant1.lineItems, function(o) { return o.quantity > 0; });\n if (lineItem !== undefined) {\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmUpdateWholeRow'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = wholeRowQuantity;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n }\n variant1.wholeRowQuantity = '';\n });\n } else {\n _.forEach(variant1.lineItems, function(li) {\n if (_.find(li.links, function(l) { return l.rel === 'modify'; }) !== undefined) {\n li.quantity = wholeRowQuantity;\n vm.onLineItemChanged({ lineItem: li });\n }\n });\n variant1.wholeRowQuantity = '';\n }\n }\n\n function toggleExpandAll() {\n var allAreExpanded = true;\n _.forEach(vm.lineItemsGroupedByArticle, function (o) {\n if (!o.article.showRows || o.article.showRows === false) {\n allAreExpanded = false;\n }\n });\n\n _.forEach(vm.lineItemsGroupedByArticle, function(art) {\n if (!allAreExpanded) {\n art.article.showRows = true;\n } else {\n art.article.showRows = false;\n }\n });\n }\n\n function getVariant1s(lineItems) {\n var variants = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({ variantDetail1Name: key, lineItems: value }))\n .value();\n\n return variants;\n }\n function getVariant2s(lineItems) {\n var variants = _.map(lineItems, 'variantDetail2Name');\n\n return variants;\n }\n\n function canModifyLineItem() {\n var canModifyLineItems = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'upsertLineItems'; }) !== undefined;\n return canModifyLineItems;\n\n //TODO look on each lineitem if able to upsert\n }\n\n function regroupLineItemsOnArticle() {\n vm.resellerOrder.lineItems = _.sortBy(vm.resellerOrder.lineItems, ['variantDetail1Name', 'variantDetail2SortOrder']);\n vm.lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({\n article: {\n displayArticleNumber: value.length > 0 ? value[0].displayArticleNumber : '',\n articleName: value.length > 0 ? value[0].articleName : '',\n id: key,\n showRows: false,\n plannedDeliveryDate: (_.find(value, function(v) { return v.quantity > 0; }) || value[0]).plannedDeliveryDateUtc\n },\n lineItemsGroupedOnVariant1: regroupLineItemsOnVariant1(value)\n }))\n .value();\n _.forEach(vm.lineItemsGroupedByArticle, function(lineItemArticle) {\n var avgPrice = vm.getProductGrossPrice(lineItemArticle);\n _.forEach(lineItemArticle.lineItemsGroupedOnVariant1, function(variant) {\n variant.initialProductGrossPrice = avgPrice;\n _.forEach(variant.lineItems, function(lineItem) {\n lineItem.discountDisplayPercent = lineItem.discountPercent * 100 + '%';\n lineItem.plannedDeliveryDateUtc = !lineItem.plannedDeliveryDateUtc ? lineItemArticle.article.plannedDeliveryDate : lineItem.plannedDeliveryDateUtc;\n });\n });\n });\n }\n function regroupLineItemsOnVariant1(lineItems) {\n var lineItemsGroupedByVariant1 = _.chain(lineItems)\n .groupBy('variantDetail1Name')\n .map((value, key) => ({\n variantDetail1Name: key,\n lineItems: value\n }))\n .value();\n return lineItemsGroupedByVariant1;\n }\n\n function groupBy(array, field) {\n return _.groupBy(array, field);\n }\n\n function saveVariant(variant) {\n var v = variant;\n _.forEach(v.lineItems, function(l) { \n var d = new Date(l.plannedDeliveryDateUtc);\n l.plannedDeliveryDateUtc = dateToUtc(d);\n });\n vm.onVariantChanged({ variant: variant });\n }\n\n function saveLineItem(lineItem) {\n vm.onLineItemChanged({ lineItem: lineItem });\n }\n\n function viewOrderArticle(article) {\n vm.onArticleSelected({ article: article });\n }\n\n function absolute(number) {\n if (_.isNumber(number)) {\n return Math.abs(number);\n }\n return 0;\n }\n\n function canModifyLineItemDeliveryDate(lineItemArticle) {\n // Planned delivery date can change at any moment (?)\n return true;\n }\n\n function dateToUtc(date) {\n var milliseconds = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());\n var d = new Date(milliseconds);\n return d;\n }\n\n function deliveryDateChanged(lineItemArticle) {\n var newDate = new Date(\n lineItemArticle.article.plannedDeliveryDate.getFullYear(),\n lineItemArticle.article.plannedDeliveryDate.getMonth(),\n lineItemArticle.article.plannedDeliveryDate.getDate(),\n 0, 0, 0, 0);\n\n _.forEach(lineItemArticle.lineItemsGroupedOnVariant1, function(group) {\n _.forEach(group.lineItems, function(lineItem) {\n lineItem.plannedDeliveryDateUtc = newDate;\n });\n saveVariant(group);\n });\n }\n}\n","angular.module('components.caResellerReturnOrderProductSearchMultiSelect', [])\n .component('caResellerReturnOrderProductSearchMultiSelect', {\n templateUrl: 'main/resellerorder/resellerreturnordermodify/components/resellerorderproductsearchmultiselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderId: '<',\n selectSameTwiceAllowed: '<',\n articlesToExclude: '<',\n disabled: '<',\n onArticlesRetrieved: '&'\n },\n controller: controller\n });\n\n// @ngInject\nfunction controller($q, $scope, ResellerOrdersApiService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.searchResultArticles = [];\n vm.articlesToAdd = [];\n vm.result = [];\n vm.currentPage = 1;\n\n vm.refreshArticles = refreshArticles;\n vm.addArticles = addArticles;\n\n function onInit() {\n if (!vm.selectSameTwiceAllowed) {\n vm.selectSameTwiceAllowed = false;\n }\n\n if (!vm.pageSize) {\n vm.pageSize = 20;\n }\n\n $scope.$watch(function() { return (vm.company !== undefined) ? vm.company.id : undefined; }, function() {\n vm.articlesToAdd = [];\n refreshArticles();\n });\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n\n // Refreshes the contents of the drop-down-list of selectable articles.\n function refreshArticles(filter) {\n ResellerOrdersApiService.getProducts(vm.orderId, filter).then(function(response) {\n vm.searchResultArticles = [];\n var excludeList = [];\n if (vm.articlesToExclude !== undefined) {\n excludeList = vm.articlesToExclude.map(function(oa) {\n return { id: oa.articleId };\n });\n }\n\n var products = response.data.products;\n\n for (var i = 0; i < products.length; i++) {\n var article = products[i];\n if (!_.find(excludeList, {'id': article.id})) {\n vm.searchResultArticles.push(article);\n }\n }\n }, function(error) {\n ToasterService.showError(error.errors);\n });\n }\n\n function addArticles() {\n vm.result = [];\n var promises = [];\n loadSpinnerService.start(\"mainSpinner\");\n _.forEach(vm.articlesToAdd, function(article) {\n var articleFetchPromise = ResellerOrdersApiService.getVariantsForProduct(vm.orderId, article.id);\n promises.push(articleFetchPromise);\n });\n\n $q.all(promises).then(function(responses) {\n _.forEach(responses, function(response) {\n vm.result.push(response.data);\n });\n vm.onArticlesRetrieved({articles: vm.result});\n vm.articlesToAdd = [];\n refreshArticles();\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n}\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('resellerorder.resellerreturnordermodify', {\n url: '/modifyreturn/{orderId:int}',\n templateUrl: 'main/resellerorder/resellerreturnordermodify/resellerreturnordermodify.tpl.html',\n controller: 'ResellerReturnOrderModifyController as vm',\n resolve: {\n resellerOrder: resellerOrderResolver\n },\n params: {\n }\n });\n}\n\n// @ngInject\nfunction resellerOrderResolver($stateParams, ResellerOrdersApiService) {\n return ResellerOrdersApiService.getOrderById($stateParams.orderId);\n}\n\n// @ngInject\nfunction ResellerReturnOrderModifyController($window, $rootScope, $state, $translate, resellerOrder,\n ResellerOrdersApiService, confirmationDialogService, setFieldConfirmationDialogService,invoiceConfirmationDialogService,\n loadSpinnerService, ToasterService, printLanguageConfirmationDialogService) {\n var vm = this;\n\n //Properties\n vm.resellerOrder = resellerOrder.order;\n vm.resellerOrder.links = resellerOrder.links;\n vm.links = resellerOrder.links;\n vm.canAccess = $rootScope.canAccess;\n vm.showSearchFields = false;\n vm.synchronizationStatus = '';\n vm.isSaving = false;\n vm.isEditingOrderNumber = false;\n vm.editedOrderNumber = '';\n \n\n //Public methods\n vm.invoiceConfirmation = invoiceConfirmation;\n vm.canCreateInvoice = canCreateInvoice;\n vm.canCancelOrder = canCancelOrder;\n vm.cancelOrder = cancelOrder;\n vm.canConfirmOrder = canConfirmOrder;\n vm.confirmOrder = confirmOrder;\n vm.canPrintOrder = canPrintOrder;\n vm.printOrder = printOrder;\n vm.saveLineItem = saveLineItem;\n vm.saveVariant = saveVariant;\n vm.createNewOrder = createNewOrder;\n vm.createNewReturnOrder = createNewReturnOrder;\n vm.getResellerOrderCsv = getResellerOrderCsv;\n vm.toggleSearchFields = toggleSearchFields;\n vm.canSetWholeOrderDeliveryDate = canSetWholeOrderDeliveryDate;\n vm.canSetWholeOrderDiscountPercent = canSetWholeOrderDiscountPercent;\n vm.setWholeOrderDeliveryDate = setWholeOrderDeliveryDate;\n vm.setWholeOrderDiscountPercent = setWholeOrderDiscountPercent;\n vm.editOrderNumber = editOrderNumber;\n vm.tryToSaveNewOrderNumber = tryToSaveNewOrderNumber;\n\n activate();\n\n function activate() {\n if (vm.resellerOrder.id !== 0) {\n //get product variants\n var lineItemsGroupedByArticle = _.chain(vm.resellerOrder.lineItems)\n // Group the elements of Array based on `color` property\n .groupBy('articleId')\n // `key` is group's name (color), `value` is the array of objects\n .map((value, key) => ({ article: { id: parseInt(key), showRows: false }, lineItems: value }))\n .value();\n\n loadSpinnerService.start('mainSpinner');\n _.forEach(lineItemsGroupedByArticle, function(li) {\n ResellerOrdersApiService.getVariantsForProduct(li.article.id).then(function (response) {\n fillOutArticle(response.data.variants);\n });\n });\n loadSpinnerService.stop('mainSpinner');\n }\n\n\n vm.synchronizationStatus = '(' + $translate.instant('common.allChangesSaved') + ')';\n $rootScope.$on('ResellerOrder.savingChanges', function() {\n vm.synchronizationStatus = '(' + $translate.instant('common.savingChanges') + ')';\n vm.isSaving = true;\n });\n $rootScope.$on('ResellerOrder.allChangesSaved', function() {\n vm.synchronizationStatus = '(' + $translate.instant('common.allChangesSaved') + ')';\n vm.isSaving = false;\n });\n }\n\n function editOrderNumber() {\n vm.isEditingOrderNumber = true;\n vm.editedOrderNumber = vm.resellerOrder.orderNumber;\n }\n\n function tryToSaveNewOrderNumber() {\n vm.isEditingOrderNumber = false;\n if(vm.editedOrderNumber === vm.resellerOrder.orderNumber){\n ToasterService.showError($translate.instant('productimport.noChangesToSave') + ' ' + angular.lowercase($translate.instant('common.in') + ' ' + $translate.instant('resellerorder.orderNumber') + '!'));\n return;\n }\n \n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.changeOrderNumber(vm.editedOrderNumber, vm.resellerOrder.id).then(function () {\n vm.resellerOrder.orderNumber = vm.editedOrderNumber;\n ToasterService.showSuccess($translate.instant('common.new') + ' ' + angular.lowercase($translate.instant('resellerorder.orderNumber')) + ': \"' + vm.editedOrderNumber + '\" ' + angular.lowercase($translate.instant('common.wasSaved') + '!'));\n }, function (error){\n vm.isEditingOrderNumber = true;\n ToasterService.showError(error.message);\n }).finally(function(){\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function createNewOrder() {\n $state.go('resellerorder.resellerordercreate');\n }\n\n function createNewReturnOrder() {\n $state.go('resellerorder.resellerreturnordercreate');\n }\n\n function getResellerOrderCsv() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + '?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderCsv(vm.orderId, result.locale).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n } \n\n function invoiceConfirmation() {\n var deliveryDate = new Date();\n //Needs fetch the most recent date from stock table, LastInventoriedDate\n invoiceConfirmationDialogService.showDialog(\n \"Bekräfta Faktureringsdatum\",\n deliveryDate,\n new Date(2015,1,1)\n ).then(function (result) {\n if (result.isCompleted === true) {\n var request = {\n orderId: vm.resellerOrder.id,\n accountingDate: result.deliveryDate\n };\n loadSpinnerService.start('mainSpinner');\n //Skapa försäljning\n ResellerOrdersApiService.setResellerReturnOrderSaleDate(request).then(function(response) {\n ToasterService.showSuccess($translate.instant(\"order.delivered\"), $translate.instant(\"common.deliver\"));\n $state.go('resellerorder.resellerorderview', { orderId: vm.resellerOrder.id });\n },\n function(error) {\n handleError(error);\n }\n ).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function canPrintOrder() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n return hasLineItems;\n } \n function canCreateInvoice() {\n \n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n\n if(hasLineItems && vm.resellerOrder.status !== 'closed'){\n return true;\n } \n else{\n return false;\n }\n \n }\n function printOrder() {\n printLanguageConfirmationDialogService.showDialog($translate.instant('order.printdisplayed') + ' PDF?').then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.getResellerOrderPdf(vm.resellerOrder.id, result.locale).then(function (response) {\n }, function (error) {\n ToasterService.showError(error.message);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function canSetWholeOrderDeliveryDate() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'updateDeliveryDate'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n function canSetWholeOrderDiscountPercent() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'updateDiscountPercent'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n\n function canCreateInvoice() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'updateDiscountPercent'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n\n function setWholeOrderDeliveryDate() {\n setFieldConfirmationDialogService.showDialog($translate.instant('resellerorder.confirmationSetWholeOrderDeliveryDate'), '', 'date', null, null).then(function (result) {\n if (result.isCompleted === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n orderId: vm.resellerOrder.id,\n deliveryDateUtc: result.dateValue\n };\n ResellerOrdersApiService.setWholeOrderDeliverDate(request).then(function(response) {\n //reload page\n $window.location.reload();\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function setWholeOrderDiscountPercent() {\n setFieldConfirmationDialogService.showDialog($translate.instant('resellerorder.confirmSetWholeOrderDiscountPercent'), '', 'number', 0, 100).then(function (result) {\n if (result.isCompleted === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n orderId: vm.resellerOrder.id,\n discountPercent: result.numberValue / 100\n };\n ResellerOrdersApiService.setWholeOrderDiscountPercent(request).then(function(response) {\n //reload page\n $window.location.reload();\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, error.message);\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n\n\n function toggleSearchFields() {\n vm.showSearchFields = !vm.showSearchFields;\n }\n\n function fillOutArticle(variants) {\n _.forEach(variants, function(v) {\n var existingLineItem = _.find(vm.resellerOrder.lineItems, function(li) { return li.articleVariantId === v.id; });\n if (existingLineItem === undefined) {\n var newLineItem = {\n amount: 0,\n articleId: v.articleId,\n articleName: v.articleName,\n articleVariantId: v.id,\n fulfilledQuantity: 0,\n id: 0,\n links: [{ rel: 'modify' }],\n orderId: vm.resellerOrder.id,\n quantity: 0,\n status: 'open',\n variantDetail1Name: v.variantDetail1Name,\n variantDetail2Name: v.variantDetail2Name,\n variantDetail2SortOrder: v.variantDetail2SortOrder,\n vatAmount: 0,\n vatRate: 0\n };\n vm.resellerOrder.lineItems.push(newLineItem);\n }\n });\n }\n\n function saveLineItem(lineItem) {\n var request = {\n orderId: lineItem.orderId,\n lineItems: [{\n articleVariantId: lineItem.articleVariantId,\n discountPercent: lineItem.discountPercent,\n plannedDeliveryDateUtc: lineItem.plannedDeliveryDateUtc,\n price: lineItem.amount,\n quantity: lineItem.quantity\n }]\n };\n\n $rootScope.$emit('ResellerOrder.savingChanges', '');\n ResellerOrdersApiService.upsertLineItems(request).then(function (response) {\n vm.resellerOrder.links = response.data.links;\n $rootScope.$emit('ResellerOrder.allChangesSaved', '');\n }, function (error) {\n console.log(error);\n }).then(function () {\n });\n }\n\n function saveVariant(variant) {\n var request = {\n orderId: variant.lineItems[0].orderId,\n lineItems: []\n };\n _.forEach(variant.lineItems, function(lineItem) {\n request.lineItems.push({\n articleVariantId: lineItem.articleVariantId,\n discountPercent: lineItem.discountPercent,\n plannedDeliveryDateUtc: lineItem.plannedDeliveryDateUtc,\n price: lineItem.amount,\n quantity: lineItem.quantity\n });\n });\n\n $rootScope.$emit('ResellerOrder.savingChanges', '');\n ResellerOrdersApiService.upsertLineItems(request).then(function (response) {\n vm.resellerOrder.links = response.data.links;\n $rootScope.$emit('ResellerOrder.allChangesSaved', '');\n }, function (error) {\n console.log(error);\n }).finally(function () {\n });\n }\n\n function canConfirmOrder() {\n var hasLineItems = vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0;\n var hasLink = _.find(vm.resellerOrder.links, function(o) { return o.rel === 'confirm'; }) !== undefined;\n\n return hasLineItems && hasLink;\n }\n\n function canCancelOrder() {\n var hasDeleteLink = _.find(vm.links, function(o) { return o.rel === 'delete'; }) !== undefined;\n\n return hasDeleteLink;\n }\n\n function cancelOrder() {\n //confirm scrap order\n confirmationDialogService.showDialog($translate.instant('resellerorder.confirmCancelOrder'), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n //clear line items and order head\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.deleteOrder(vm.resellerOrder.id).then(function () {\n ToasterService.showInfo($translate.instant('resellerorder.orderDeleted'), $translate.instant('common.information'));\n $state.go('resellerorder.resellerordersearch');\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.error, $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function confirmOrder() {\n confirmationDialogService.showDialog($translate.instant(\"resellerorder.confirmConfirmOrder\"), $translate.instant('common.warning')).then(function (result) {\n if (result === true) {\n //call backend, confirm order\n loadSpinnerService.start('mainSpinner');\n ResellerOrdersApiService.confirm(vm.resellerOrder.id).then(function () {\n ToasterService.showInfo($translate.instant('resellerorder.orderConfirmed'), $translate.instant('common.information'));\n\n $state.go('resellerorder.resellerorderview', { orderId: vm.resellerOrder.id });\n }, function (error) {\n console.log(error);\n ToasterService.showError(error.error, $translate.instant('common.error'));\n }).then(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n}\n\nangular\n .module('resellerorder.resellerreturnordermodify', [])\n .config(stateConfig)\n .controller('ResellerReturnOrderModifyController', ResellerReturnOrderModifyController);\n","// @ngInject\nfunction SalesApiService($q, $window, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'sales';\n\n return {\n getAllSalesTotals: getAllSalesTotals,\n approveSalesTotal: approveSalesTotal\n };\n\n function getAllSalesTotals(searchTerms) {\n var deferred = $q.defer();\n var params = {};\n\n if (!searchTerms) { searchTerms = {}; }\n\n if (searchTerms.currentPage && searchTerms.currentPage > 1) {\n params.page = searchTerms.currentPage;\n } else {\n params.page = 1;\n }\n\n if (searchTerms.itemsPerPage && searchTerms.itemsPerPage > 0) {\n params.limit = searchTerms.itemsPerPage;\n } else {\n params.limit = 20;\n }\n\n if (searchTerms.status && searchTerms.status.length > 0) {\n params.status = searchTerms.status;\n }\n\n if (searchTerms.locationId && searchTerms.locationId > 0) {\n params.locationId = searchTerms.locationId;\n }\n\n if (searchTerms.periodStart) {\n params.periodStart = searchTerms.periodStart;\n }\n if (searchTerms.periodEnd) {\n params.periodEnd = searchTerms.periodEnd;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + '/totals', { params: params }).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function approveSalesTotal(id) {\n var deferred = $q.defer();\n\n var params = { id: id, approvalBy: '' };\n\n DSHttpAdapter.PUT(DS.defaults.basePath + endpoint + '/totals/' + id + '/approval', { params: params }).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('sales.api', [])\n .factory('SalesApiService', SalesApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('sales', {\n url: '/sales',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/sales/sales.tpl.html',\n controller: 'MainSalesController as vm'\n });\n}\n\n// @ngInject\nfunction MainSalesController() {\n var vm = this;\n}\n\nangular\n .module('main.sales', ['sales.api','sales.salestotal'])\n .config(stateConfig)\n .controller('MainSalesController', MainSalesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('sales.salestotal',{\n url: '/salestotal?{ps}&{pe}&{l}',\n views: {'wideColumnView@sales': {\n templateUrl: 'main/sales/salestotal/salestotal.tpl.html',\n controller: 'SalesTotalController as vm'\n }},\n resolve: {\n salesTotalsPagination: salesTotalPaginationResolver,\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction salesTotalPaginationResolver(SalesApiService, $stateParams) {\n if (!$stateParams.ps) {\n $stateParams.ps = new Date().addDays(-30).getDatum();\n }\n if (!$stateParams.pe) {\n $stateParams.pe = new Date().getDatum();\n }\n if ($stateParams.l && $stateParams.l === '-1') {\n $stateParams.l = undefined;\n }\n return SalesApiService.getAllSalesTotals(\n {\n currentPage: 1,\n periodStart: $stateParams.ps,\n periodEnd: $stateParams.pe,\n itemsPerPage: 20,\n status: ['forReview']\n });\n}\n\n// @ngInject\nfunction locationsResolver(LocationsApiService) {\n return LocationsApiService.listAll({ locationTypes: ['onlinestore','store'], isActive: true });\n}\n\nDate.prototype.addDays = function(days) {\n var dat = new Date(this.valueOf());\n dat.setDate(dat.getDate() + days);\n return dat;\n};\nDate.prototype.getDatum = function() {\n var dat = new Date(this.valueOf());\n var month = dat.getMonth() + 1;\n if (month < 10) { month = '0' + month; }\n var date = dat.getDate();\n if (date < 10) { date = '0' + date; }\n var str = dat.getFullYear() + '-' + month + '-' + date;\n return str;\n};\n\n// @ngInject\nfunction SalesTotalController($state, $stateParams, $scope, $translate, salesTotalsPagination, locations,\n SalesApiService, loadSpinnerService, ToasterService, salesTotalFilterDialogService) {\n var vm = this;\n\n //Properties\n vm.salesTotals = salesTotalsPagination !== undefined &&\n salesTotalsPagination.data !== undefined &&\n salesTotalsPagination.data.saleTotals.results !== undefined ?\n salesTotalsPagination.data.saleTotals.results :\n {};\n _.forEach(vm.salesTotals, function(s) { s.showRows = false; });\n vm.pageSize = salesTotalsPagination !== undefined &&\n salesTotalsPagination.data !== undefined ?\n salesTotalsPagination.data.saleTotals.limit :\n 20;\n vm.currentPage = salesTotalsPagination !== undefined &&\n salesTotalsPagination.data !== undefined ?\n salesTotalsPagination.data.saleTotals.page :\n 1;\n vm.totalItems = salesTotalsPagination !== undefined &&\n salesTotalsPagination.data !== undefined ?\n salesTotalsPagination.data.saleTotals.total :\n 0;\n vm.locations = locations;\n _.forEach(vm.locations, function(l) {\n return l.locationName = l.locationNumber + ' ' + l.locationName;\n });\n vm.selectedLocation = {};\n\n vm.periodStartDate = $stateParams.ps ? new Date($stateParams.ps) : new Date().addDays(-30);\n vm.periodEndDate = $stateParams.pe ? new Date($stateParams.pe) : new Date();\n vm.shownStatuses = ['forReview'];\n vm.includeApproved = false;\n vm.includeForProcessing = false;\n vm.includeForReview = true;\n\n //Methods\n vm.toggleApproved = toggleApproved;\n vm.toggleForProcessing = toggleForProcessing;\n vm.toggleForReview = toggleForReview;\n vm.getSaleTotals = getSaleTotals;\n vm.getPaymentTotals = getPaymentTotals;\n vm.toggleRows = toggleRows;\n vm.approveSalesTotal = approveSalesTotal;\n vm.getPeriodPaymentSum = getPeriodPaymentSum;\n vm.getCalculatedPaymentSum = getCalculatedPaymentSum;\n vm.getSaleVatAmountSum = getSaleVatAmountSum;\n vm.getCalculatedVatAmountSum = getCalculatedVatAmountSum;\n vm.getTotalNetAmountSum = getTotalNetAmountSum;\n vm.getTotalVatAmountSum = getTotalVatAmountSum;\n vm.approveSalesTotal = approveSalesTotal;\n vm.viewApprovedButton = viewApprovedButton;\n vm.getStatusString = getStatusString;\n vm.getSaleNetAmountSum = getSaleNetAmountSum;\n vm.getCalculatedNetAmountSum = getCalculatedNetAmountSum;\n vm.showConfirmButton = showConfirmButton;\n vm.showRedSaleDiff = showRedSaleDiff;\n vm.showRedCalculatedDiff = showRedCalculatedDiff;\n vm.totalSaleDiff = totalSaleDiff;\n vm.totalCalculatedDiff = totalCalculatedDiff;\n vm.roundToTwo = roundToTwo;\n vm.showTotalDiffTable = showTotalDiffTable;\n vm.getSalesNumberSum = getSalesNumberSum;\n vm.getNetAmount = getNetAmount;\n vm.abs = Math.abs;\n vm.showFilterDialog = showFilterDialog;\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return vm.currentPage; }, function(newValue, oldValue) {\n if (newValue !== null && newValue !== oldValue) {\n loadSaleTotals();\n }\n });\n compileShownStatuses();\n\n if ($stateParams.l) {\n vm.selectedLocation = _.find(vm.locations, function (o) { return '' + o.id === $stateParams.l; });\n if (!vm.selectedLocation) { vm.selectedLocation = {}; }\n if (vm.selectedLocation.id) {\n loadSaleTotals();\n }\n }\n }\n\n function showFilterDialog() {\n salesTotalFilterDialogService\n .showDialog(\n vm.periodStartDate,\n vm.periodEndDate,\n vm.locations,\n vm.selectedLocation,\n vm.includeApproved,\n vm.includeForProcessing\n )\n .then(function(response) {\n if (response.confirmation) {\n var reloadRows = false;\n var refilter = false;\n\n if (!isSameDate(vm.periodStartDate, response.periodStartDate)) {\n vm.periodStartDate = response.periodStartDate;\n reloadRows = true;\n }\n\n if (!isSameDate(vm.periodEndDate, response.periodEndDate)) {\n vm.periodEndDate = response.periodEndDate;\n reloadRows = true;\n }\n if (vm.selectedLocation === undefined || vm.selectedLocation.id === undefined || vm.selectedLocation.id !== response.selectedLocation) {\n vm.selectedLocation = _.find(vm.locations, function(o) { return o.id === response.selectedLocation; });\n reloadRows = true;\n }\n if (vm.includeApproved !== response.includeApproved) {\n vm.includeApproved = response.includeApproved;\n refilter = true;\n }\n if (vm.includeForProcessing !== response.includeForProcessing) {\n vm.includeForProcessing = response.includeForProcessing;\n refilter = true;\n }\n\n if (reloadRows) {\n $state.go('sales.salestotal', {\n ps: new Date(vm.periodStartDate).getDatum(),\n pe: new Date(vm.periodEndDate).getDatum(),\n page: vm.currentPage,\n l: vm.selectedLocation ? vm.selectedLocation.id : undefined\n });\n }\n if (refilter === true) {\n compileShownStatuses();\n loadSaleTotals();\n }\n }\n });\n }\n\n function isSameDate(newValue, oldValue) {\n if (newValue === undefined || newValue === null) { return false; }\n if (oldValue === undefined || oldValue === null) { return false; }\n\n newValue = new Date(newValue);\n oldValue = new Date(oldValue);\n var newYear = newValue.getFullYear();\n var newMonth = newValue.getMonth();\n var newDay = newValue.getDate();\n var oldYear = oldValue.getFullYear();\n var oldMonth = oldValue.getMonth();\n var oldDay = oldValue.getDate();\n\n if (newYear !== oldYear) { return false; }\n if (newMonth !== oldMonth) { return false; }\n if (newDay !== oldDay) { return false; }\n\n return true;\n }\n\n function toggleApproved() {\n vm.includeApproved = !vm.includeApproved;\n compileShownStatuses();\n loadSaleTotals();\n }\n function toggleForProcessing() {\n vm.includeForProcessing = !vm.includeForProcessing;\n compileShownStatuses();\n loadSaleTotals();\n }\n function toggleForReview() {\n vm.includeForReview = !vm.includeForReview;\n compileShownStatuses();\n loadSaleTotals();\n }\n function compileShownStatuses() {\n vm.shownStatuses = [];\n if (vm.includeApproved) {\n vm.shownStatuses.push('approved');\n vm.shownStatuses.push('autoApproved');\n }\n if (vm.includeForProcessing) {\n vm.shownStatuses.push('forProcessing');\n }\n if (vm.includeForReview) {\n vm.shownStatuses.push('forReview');\n }\n }\n\n function loadSaleTotals() {\n //ForProcessing, Approved, ForReview\n loadSpinnerService.start('mainSpinner');\n SalesApiService.getAllSalesTotals({ currentPage: vm.currentPage, itemsPerPage: vm.pageSize, periodStart: vm.periodStartDate, periodEnd: vm.periodEndDate, locationId: vm.selectedLocation.id, status: vm.shownStatuses }).then(function(response) {\n vm.salesTotals = response !== undefined &&\n response.data !== undefined &&\n response.data.saleTotals.results !== undefined ?\n response.data.saleTotals.results :\n {};\n vm.pageSize = response !== undefined &&\n response.data !== undefined ?\n response.data.saleTotals.limit :\n 20;\n vm.currentPage = response !== undefined &&\n response.data !== undefined ?\n response.data.saleTotals.page :\n 1;\n vm.totalItems = response !== undefined &&\n response.data !== undefined ?\n response.data.saleTotals.total :\n 0;\n _.forEach(vm.salesTotals, function(s) { s.showRows = false; });\n }, function (error) {\n //console.log(error);\n ToasterService.showError(error, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getStatusString(status) {\n switch (status.toLowerCase()) {\n case 'approved':\n return $translate.instant('salestotal.statusApproved');\n case 'autoapproved':\n return $translate.instant('salestotal.statusAutoApproved');\n case 'forprocessing':\n return $translate.instant('salestotal.statusForProcessing');\n default:\n return '';\n }\n }\n\n function getSaleTotals(currentSaleTotal) {\n var totalSales = _.sumBy(currentSaleTotal.saleTotals, function(s) { return s.calculatedNetAmount - s.calculatedVatAmount; });\n var withdrawals = currentSaleTotal.withdrawalAmount;\n var deposits = currentSaleTotal.depositAmount;\n var total = totalSales + (withdrawals - deposits);\n return total;\n }\n\n function getPaymentTotals(currentSaleTotal) {\n var totalPayments = _.sumBy(currentSaleTotal.paymentTotals, function(s) { return s.calculatedAmount; });\n return totalPayments;\n }\n\n function toggleRows(salesTotal) {\n if (salesTotal.showRows === undefined) { salesTotal.showRows = false; return false; }\n salesTotal.showRows = !salesTotal.showRows;\n }\n\n function approveSalesTotal(salesTotal) {\n loadSpinnerService.start('mainSpinner');\n SalesApiService.approveSalesTotal(salesTotal.id).then(function(response) {\n loadSaleTotals();\n }, function (error) {\n //console.log(error);\n ToasterService.showError(error, $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function viewApprovedButton() {\n return true;\n }\n\n function getSalesNumberSum(saleTotals) {\n var sum = 0;\n\n if (saleTotals && saleTotals.length > 0) { sum = saleTotals[0].calculatedNumberOfSales; }\n\n return sum;\n }\n function getPeriodPaymentSum(paymentTotals) {\n var sum = _.sumBy(paymentTotals, function(s) { return s.amount - s.negativeAmount; });\n return sum;\n }\n function getCalculatedPaymentSum(paymentTotals) {\n var sum = _.sumBy(paymentTotals, function(s) { return s.calculatedAmount; });\n return sum;\n }\n\n function getSaleVatAmountSum(saleTotals) {\n var sum = _.sumBy(saleTotals, function(s) { return s.vatAmount - s.negativeVatAmount; });\n return sum;\n }\n function getCalculatedVatAmountSum(saleTotals) {\n var sum = _.sumBy(saleTotals, function(s) { return s.calculatedVatAmount; });\n return sum;\n }\n\n function getTotalNetAmountSum(saleTotals) {\n var sum = _.sumBy(saleTotals, function(s) { return (s.netAmount - s.negativeNetAmount) + (s.vatAmount - s.negativeVatAmount); });\n return sum;\n }\n function getTotalVatAmountSum(saleTotals) {\n var sum = _.sumBy(saleTotals, function(s) { return (s.calculatedNetAmount - s.calculatedVatAmount); });\n return sum;\n }\n\n function getSaleNetAmountSum(salesTotal) {\n var saleTotals = salesTotal.saleTotals;\n var sum = _.sumBy(saleTotals, function(s) { return getNetAmount(salesTotal, s); });\n return sum;\n }\n function getCalculatedNetAmountSum(saleTotals) {\n var sum = _.sumBy(saleTotals, function(s) { return s.calculatedNetAmount; });\n return sum;\n }\n function showConfirmButton(salesTotal) {\n if (!salesTotal || !salesTotal.links || salesTotal.links.length === 0) {\n return false;\n }\n\n var link = _.find(salesTotal.links, function (o) { return o.rel === 'approve'; });\n if (link) {\n return true;\n } else {\n return false;\n }\n }\n\n function showRedSaleDiff(salesTotal) {\n var temp1 = vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals);\n var temp2 = vm.getPeriodPaymentSum(salesTotal.paymentTotals);\n\n if (Math.abs(roundToTwo(temp2)) === 0.00) { return true; }\n if (Math.abs(roundToTwo(temp1 - temp2)) !== 0.00) { return true; }\n return false;\n }\n function showRedCalculatedDiff(salesTotal) {\n var temp1 = vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals);\n var temp2 = vm.getCalculatedPaymentSum(salesTotal.paymentTotals);\n\n if (Math.abs(roundToTwo(temp2)) === 0.00) { return true; }\n if (Math.abs(roundToTwo(temp1 - temp2)) !== 0.00) { return true; }\n return false;\n }\n\n function roundToTwo(number) {\n var precision = 2;\n var shift = function (number, precision, reverseShift) {\n if (reverseShift) {\n precision = -precision;\n }\n var numArray = ('' + number).split(\"e\");\n return +(numArray[0] + \"e\" + (numArray[1] ? (+numArray[1] + precision) : precision));\n };\n\n var result = shift(Math.round(shift(number, precision, false)), precision, true);\n if (result === 0) { return '0.00'; }\n return result.toFixed(2);\n }\n\n function showTotalDiffTable(salesTotal) {\n var temp1 = (vm.getSaleNetAmountSum(salesTotal.saleTotals) + vm.getSaleVatAmountSum(salesTotal.saleTotals));\n var temp2 = vm.getPeriodPaymentSum(salesTotal.paymentTotals);\n var temp3 = (vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals));\n var temp4 = vm.getCalculatedPaymentSum(salesTotal.paymentTotals);\n\n if (roundToTwo(temp1 - temp2) !== '0.00' ||\n roundToTwo(temp3 - temp4) !== '0.00') {\n return true;\n } else {\n return false;\n }\n }\n\n function totalSaleDiff(salesTotal) {\n var temp1 = (vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals));\n var temp2 = vm.getPeriodPaymentSum(salesTotal.paymentTotals);\n\n return (temp2 - temp1);\n }\n function totalCalculatedDiff(salesTotal) {\n var temp1 = (vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals));\n var temp2 = vm.getCalculatedPaymentSum(salesTotal.paymentTotals);\n\n return (temp2 - temp1);\n }\n\n function getNetAmount(salesTotal, saleTotal) {\n if (saleTotal.vatRate === 0) {\n return saleTotal.netAmount - saleTotal.negativeNetAmount + salesTotal.withdrawalAmount;\n }\n\n return saleTotal.netAmount - saleTotal.negativeNetAmount;\n }\n}\n\nangular\n .module('sales.salestotal', [])\n .config(stateConfig)\n .controller('SalesTotalController', SalesTotalController);\n","angular.module('stock.articles.caArticleStocksHistory', [])\n.component('caArticleStocksHistory',{\n templateUrl: 'main/stock/articles/articleStocksHistory/articleStocksHistory.component.tpl.html',\n bindings: {\n articleId: '<',\n locationId: '<',\n articleVariantId: '<',\n showSum: '<',\n navigated: '&',\n disabled: '<'\n },\n controllerAs: 'vm',\n controller: controller\n});\n\n// @ngInject\nfunction controller($state, $window, $translate, StockApiService, loadSpinnerService) {\n var vm = this;\n\n //Properties\n var previousArticleId, previousLocationId, previousArticleVariantId;\n vm.rowData = [];\n vm.displayedRows = [];\n vm.transGrid = {};\n vm.transGrid.columns = [];\n vm.transGrid.rows = [];\n vm.stockTransactions = [];\n vm.elementsPerPage = 15;\n vm.currentPage = 1;\n\n //Methods\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.goToReference = goToReference;\n vm.showLink = showLink;\n vm.pageChanged = pageChanged;\n\n function onInit() {\n\n }\n\n function onChanges() {\n if (!vm.disabled) {\n if (vm.articleId && vm.locationId && vm.articleVariantId &&\n (previousArticleId !== vm.articleId || previousLocationId !== vm.locationId || previousArticleVariantId !== vm.articleVariantId)) {\n previousArticleId = vm.articleId;\n previousLocationId = vm.locationId;\n previousArticleVariantId = vm.articleVariantId;\n\n loadSpinnerService.start('mainSpinner');\n StockApiService\n .getStockTransactionsForArticleAndLocation(\n {\n articleId: vm.articleId,\n locationId: vm.locationId,\n variantDetailId: vm.articleVariantId\n }\n )\n .then(function(data) {\n vm.stockTransactions = data;\n setUpGridData();\n loadGridData();\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n }\n\n function setUpGridData() {\n vm.transGrid.columns = [];\n\n vm.transGrid.columns.push({ id: 'accountingDate', name: $translate.instant('common.date') });\n vm.transGrid.columns.push({ id: 'transactionType', name: $translate.instant('stocktransaction.transactionType') });\n vm.transGrid.columns.push({ id: 'referenceDescription', name: $translate.instant('stocktransaction.referenceDescription') });\n\n var columns = getDataColumns();\n\n // Add dynamic columns\n _.forEach(columns, function(variantDetail) {\n vm.transGrid.columns.push({ id: variantDetail.variantDetailName, name: variantDetail.variantDetailName });\n });\n }\n\n function showLink(referenceType) {\n //NoReference, Order, Sale, BalanceChange, Delivery\n if (referenceType === 'noReference') {\n return false;\n } else if (referenceType === 'order') {\n return true;\n } else if (referenceType === 'sale') {\n return false;\n } else if (referenceType === 'balanceChange') {\n return false;\n } else if (referenceType === 'delivery') {\n return false;\n }\n }\n\n function goToReference(e, stockTransaction) {\n e.preventDefault();\n\n if (stockTransaction.referenceType === 'order') {\n // Go directly to the order\n if(stockTransaction.referenceId && stockTransaction.referenceId !== 0){\n $window.open($state.href('order.ordersearch', { orderId: stockTransaction.referenceId }), '_blank');\n }\n // Go to search for the order\n else\n {\n $window.open($state.href('order.ordersearch', {\n searchTerm: '' + stockTransaction.referenceDescription,\n showOnlyUndeliveredOrders: false,\n orderTypes: [] //Has the same effect as setting 'All'\n }), '_blank');\n }\n\n if (vm.navigated) {\n vm.navigated();\n }\n }\n\n return false;\n }\n\n function getDataColumns() {\n var columns = [];\n var articleVariants = [];\n\n _.forEach(vm.stockTransactions, function(stockTransaction) {\n articleVariants.push(stockTransaction.articleVariant);\n });\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(articleVariants, function(variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function(newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function loadGridData() {\n\n var rows = [];\n\n _.forEach(vm.stockTransactions, function (stockTransaction) {\n var r = {};\n\n r.accountingDate = moment(stockTransaction.accountingDate).format('YYYY-MM-DD');\n r.comment = stockTransaction.comment;\n r.transactionType = stockTransaction.stockTransactionType.stockTransactionTypeName;\n r.systemTransactionType = stockTransaction.stockTransactionType.systemTransactionType.toLowerCase();\n r.referenceId = stockTransaction.referenceId;\n r.referenceDescription = stockTransaction.referenceDescription;\n r.referenceType = stockTransaction.referenceType;\n r.variantName = stockTransaction.articleVariant.variantDetail2.variantDetailName;\n r.groupKey = r.accountingDate + ' ' + r.transactionType + ' ' + r.referenceId + ' ' + r.referenceDescription;\n r.columns = vm.transGrid.columns;\n r.fullDateTime = stockTransaction.accountingDate;\n\n if (stockTransaction.stockTransactionType.systemTransactionType.toLowerCase() === \"salereservation\") {\n r[r.variantName] = stockTransaction.reservedQuantity;\n } else if (stockTransaction.stockTransactionType.systemTransactionType.toLowerCase() === \"purchasereservation\") {\n r[r.variantName] = stockTransaction.orderedQuantity;\n } else {\n r[r.variantName] = stockTransaction.quantity;\n }\n\n rows.push(r);\n });\n\n var oldRow = {};\n\n vm.rowData.splice(0,vm.rowData.length); // Clears array\n\n _.forEach(_.sortBy(rows, 'groupKey'), function (row) {\n if (oldRow.groupKey !== row.groupKey) {\n vm.rowData.push(row);\n oldRow = row;\n } else {\n if (oldRow[row.variantName]) {\n oldRow[row.variantName] += row[row.variantName];\n } else {\n oldRow[row.variantName] = row[row.variantName];\n }\n }\n });\n\n vm.rowData = _.orderBy(vm.rowData, 'fullDateTime', 'desc');\n\n vm.displayedRows = vm.rowData.slice(0, vm.elementsPerPage);\n\n //Compile summaries of each row\n _.forEach(vm.displayedRows, function(dr) {\n var sum = _.sumBy(dr.columns, function(c) {\n if (c.id === 'accountingDate' || c.id === 'transactionType' || c.id === 'referenceDescription') { return 0; }\n return dr[c.id];\n });\n dr.sum = sum;\n });\n\n //Compile summaries of each column\n var summaryRow = { columns: [], sum: 0 };\n _.forEach(vm.displayedRows, function(dr) {\n _.forEach(dr.columns, function(c) {\n if (!_.find(summaryRow.columns, function(o) { return o.id === c.id; })) { summaryRow.columns.push(c); }\n\n if (!summaryRow[c.id]) { summaryRow[c.id] = 0; }\n if (c.id === 'accountingDate' || c.id === 'transactionType' || c.id === 'referenceDescription') {\n summaryRow[c.id] = '';\n } else {\n summaryRow[c.id] += dr[c.id] ? dr[c.id] : 0;\n }\n });\n summaryRow.sum += dr.sum;\n });\n vm.displayedRows.push(summaryRow);\n }\n\n function pageChanged() {\n vm.displayedRows.length = 0;\n var numberOfItems = Math.min(vm.elementsPerPage, vm.rowData.length);\n var startPosition = vm.elementsPerPage * (vm.currentPage - 1);\n var endPosition = Math.min(((startPosition + numberOfItems) - 1), vm.rowData.length);\n for (var i = startPosition; i <= endPosition; i++) {\n vm.displayedRows.push(vm.rowData[i]);\n }\n }\n}\n\n\n","// @ngInject\nfunction ArticleStocksHistoryDialogService($uibModal, StockApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(articleId, locationId, articleVariantId) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'ArticleStocksHistoryDialogController as vm',\n templateUrl: 'main/stock/articles/articleStocksHistory/articleStocksHistory.dialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n articleId: function() {\n return articleId;\n },\n locationId: function() {\n return locationId;\n },\n articleVariantId: function() {\n return articleVariantId;\n },\n article: function() {\n return StockApiService.getProduct(articleId);\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction ArticleStocksHistoryDialogController($uibModalInstance, article, articleId, locationId, articleVariantId) {\n var vm = this;\n vm.article = article;\n\n vm.articleId = articleId;\n vm.locationId = locationId;\n vm.articleVariantId = articleVariantId;\n vm.close = close;\n vm.articleVariant = {};\n\n var colorvariants = _.filter(vm.article.articleVariants, { 'variantDetail1': { 'id': articleVariantId}});\n\n if (colorvariants.length > 0) {\n vm.articleVariant = colorvariants[0];\n }\n\n function close() {\n $uibModalInstance.close();\n }\n}\n\nangular.module('stock.articles.articleStocksHistory', [])\n.service('ArticleStocksHistoryDialogService', ArticleStocksHistoryDialogService)\n.controller('ArticleStocksHistoryDialogController', ArticleStocksHistoryDialogController);\n\n\n\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.articlesearch.article', {\n url: '/{articleId}',\n views: {\n \"articleView@stock\": {\n templateUrl: 'main/stock/articles/article/article.tpl.html',\n controller: 'StockArticleController as vm'\n }\n },\n resolve: {\n article: articleResolver,\n stocks: stocksResolver\n }\n });\n}\n\n// @ngInject\nfunction articleResolver($stateParams, StockApiService) {\n return StockApiService.getProduct($stateParams.articleId);\n}\n\n// @ngInject\nfunction stocksResolver($stateParams, StockApiService) {\n return StockApiService.getProductStock($stateParams.articleId);\n}\n\n// @ngInject\nfunction StockArticleController($state, $window, $translate, article, stocks, AuthService, ArticleLabelsPrintDialogService) {\n var vm = this;\n console.log(article);\n //Properties\n vm.selectedArticle = article;\n vm.selectedArticleStocks = stocks;\n var variantsGrid = {};\n variantsGrid.columns = [];\n vm.rowData = [];\n vm.variantsGrid = [];\n vm.variantsGrid.columns = [];\n vm.selectedLocation = {};\n vm.selectedVariantDetail1 = {};\n vm.validationErrors = [];\n vm.lastVariant1RowClicked = {};\n vm.selectedFilter = {};\n vm.stocksLocations = pickOutUniqueLocations(stocks);\n vm.stocksVariant1s = _.sortBy(pickOutUniqueVarDetail1s(article.articleVariants), function(variant) { return variant.variantDetailName; });\n vm.locationFilter = angular.copy(vm.stocksLocations);\n vm.locationFilter.unshift({ id: -1, locationName: $translate.instant('common.all') });\n vm.selectedFilter.location = vm.locationFilter[0];\n vm.variantFilters = angular.copy(vm.stocksVariant1s);\n vm.variantFilters.unshift({ id: -1, variantDetailName: $translate.instant('common.all') });\n vm.selectedFilter.variant = vm.variantFilters[0];\n vm.shouldDisplayDetails = false;\n\n //Properties\n vm.selectedVariantDetailChanged = selectedVariantDetailChanged;\n vm.setSelectedLocationAndVariant1 = setSelectedLocationAndVariant1;\n vm.filterRowData = filterRowData;\n vm.shouldShowDetails = shouldShowDetails;\n vm.getColumnSum = getColumnSum;\n vm.getTotalSum = getTotalSum;\n\n vm.shouldHaveIsCurrentStyle = shouldHaveIsCurrentStyle;\n vm.shouldNotHaveIsCurrentStyle = shouldNotHaveIsCurrentStyle;\n\n vm.openLabelsModal = openLabelsModal;\n \n vm.canAccess = AuthService.canAccess;\n vm.mayReadStockLogistics = AuthService.canAccess('stockLogistics', 'read');\n \n vm.productStateGo = productStateGo;\n\n updateVariantsGridData();\n\n function openLabelsModal() {\n ArticleLabelsPrintDialogService.showDialog(vm.selectedArticle.id);\n }\n\n function selectedVariantDetailChanged(sender) {\n vm.selectedVariantDetail1 = sender.selectedItem;\n }\n\n function setSelectedLocationAndVariant1(row) {\n if (!row.showHistory) {\n vm.lastVariant1RowClicked = {\n selectedVariantDetail1id: row.variantDetails1Id,\n selectedLocationId: row.location.id\n };\n vm.selectedVariantDetail1.id = row.variantDetails1Id;\n vm.selectedLocation.id = row.location.id;\n row.showHistory = true;\n } else if (row.showHistory &&\n vm.lastVariant1RowClicked.selectedVariantDetail1id === row.variantDetails1Id &&\n vm.lastVariant1RowClicked.selectedLocationId === row.location.id) {\n vm.lastVariant1RowClicked = {\n selectedVariantDetail1id: row.variantDetails1Id,\n selectedLocationId: row.location.id\n };\n row.showHistory = false;\n } else {\n vm.selectedVariantDetail1.id = row.variantDetails1Id;\n vm.selectedLocation.id = row.location.id;\n }\n }\n\n function updateVariantsGridData() {\n var variantDetail1s = [];\n var variantDetail2s = [];\n\n _.each(vm.selectedArticle.articleVariants, function(articleVariant) {\n variantDetail1s.push(articleVariant.variantDetail1);\n variantDetail2s.push(articleVariant.variantDetail2);\n });\n\n variantDetail1s = _.uniqBy(variantDetail1s, function(detail) {\n return detail.id; // Compare by ID\n });\n variantDetail2s = _.uniqBy(variantDetail2s, function(detail) {\n return detail.id; // Compare by ID\n });\n\n variantDetail1s = _.sortBy(variantDetail1s, function(detail) { return detail.variantDetailName; });\n variantDetail2s = _.sortBy(variantDetail2s, function(detail) { return detail.sortOrder; });\n\n vm.variantsGrid.columns = [];\n\n // Add first row header column\n // vm.variantsGrid.columns.push({ id: \"locationName\", name: $translate.instant('location.location') });\n // vm.variantsGrid.columns.push({ id: \"variantDetails1Name\", name: $translate.instant('article.variant') });\n\n _.each(variantDetail2s, function(varDetail2) {\n vm.variantsGrid.columns.push({ id: varDetail2.variantDetailName, name: varDetail2.variantDetailName });\n });\n\n // vm.variantsGrid.columns.push({ id: \"sum\", name: $translate.instant('stock.sumQuantity') });\n\n loadVariantsGridData();\n }\n\n function loadVariantsGridData() {\n vm.rowData = [];\n var currentLocationStocks = vm.selectedArticleStocks;\n\n var variantRows = _.groupBy(vm.selectedArticle.articleVariants, function(variant) {\n return variant.variantDetail1.id;\n });\n var locations = vm.stocksLocations;\n locations = _.sortBy(locations, function(location) { return location.locationNumber; });\n\n _.each(locations, function(location) {\n _.each(variantRows, function(variantRowValues) {\n var r = {};\n r.sum = 0;\n r.orderedSum = 0;\n r.reservedSum = 0;\n r.showHistory = false;\n\n //Get variant stock quantities\n _.each(variantRowValues, function(variantRowValue) {\n var relatedStock = _.find(currentLocationStocks, function(stock) { return stock.articleVariant.id === variantRowValue.id && stock.location.id === location.id; });\n r.variantDetails1Name = variantRowValue.variantDetail1.variantDetailName;\n r.variantDetails1Id = variantRowValue.variantDetail1.id;\n r.IsCurrent = variantRowValue.isCurrent; \n r.currentRank = variantRowValue.articleCollection.currentRank;\n if (relatedStock !== undefined) {\n if (!r[variantRowValue.variantDetail2.variantDetailName]) {\n r[variantRowValue.variantDetail2.variantDetailName] = {};\n r[variantRowValue.variantDetail2.variantDetailName].quantity = 0;\n r[variantRowValue.variantDetail2.variantDetailName].orderedQuantity = 0;\n r[variantRowValue.variantDetail2.variantDetailName].reservedQuantity = 0;\n }\n r[variantRowValue.variantDetail2.variantDetailName].quantity += relatedStock.quantity;\n r[variantRowValue.variantDetail2.variantDetailName].orderedQuantity += relatedStock.orderedQuantity;\n r[variantRowValue.variantDetail2.variantDetailName].reservedQuantity += relatedStock.reservedQuantity;\n r.sum += relatedStock.quantity;\n r.orderedSum += relatedStock.orderedQuantity;\n r.reservedSum += relatedStock.reservedQuantity;\n }\n });\n\n //Get variant location names\n r.locationName = location.locationName;\n r.location = location;\n\n vm.rowData.push(r);\n console.log(r);\n });\n });\n }\n\n\n function pickOutUniqueLocations(stocks) {\n var locations = [];\n _.each(stocks, function(stock) {\n var unique = true;\n _.each(locations, function(location) {\n if (sameLocation(location, stock.location)) {\n unique = false;\n }\n });\n if (unique) {\n locations.push(stock.location);\n }\n });\n return locations;\n }\n\n function pickOutUniqueVarDetail1s(articleVariants) {\n var varDetail1s = [];\n _.forEach(articleVariants, function(artVar) {\n varDetail1s.push(artVar.variantDetail1);\n });\n varDetail1s = _.uniqBy(varDetail1s, function(detail) {\n return detail.id;\n });\n return varDetail1s;\n }\n\n function sameLocation(location1, location2) {\n if (location1.id === location2.id) {\n return true;\n }\n return false;\n }\n\n function filterRowData(row) {\n return (vm.selectedFilter.location.id === -1 ||\n row.location.locationName === vm.selectedFilter.location.locationName) &&\n (vm.selectedFilter.variant.id === -1 ||\n row.variantDetails1Name === vm.selectedFilter.variant.variantDetailName);\n }\n\n function shouldShowDetails(row) {\n return row.showHistory && vm.selectedVariantDetail1.id === row.variantDetails1Id && vm.selectedLocation.id === row.location.id;\n }\n\n function getColumnSum(col) {\n var sum = _.sumBy(vm.rowData, function(o) {\n if (vm.filterRowData(o) && o[col.id]) {\n return o[col.id].quantity;\n } else {\n return 0;\n }\n });\n\n return sum;\n }\n\n function getTotalSum() \n {\n var sum = 0;\n _.forEach(vm.rowData, function(r) {\n sum += r.sum;\n });\n return sum;\n }\n\n function shouldHaveIsCurrentStyle(row) \n {\n if (!row) { return false; }\n return row.IsCurrent === true;\n }\n\n function shouldNotHaveIsCurrentStyle(row) {\n if (!row) { return false; }\n return row.IsCurrent === false && (row.currentRank < 0);\n }\n\n function productStateGo(stringState){\n $state.go(stringState, \n {\n articleId: vm.selectedArticle.id,\n filter: $state.params.filter,\n currentPage: $state.params.currentPage,\n pageSize: $state.params.pageSize,\n inactive: $state.params.inactive,\n match: $state.params.match\n }\n );\n }\n}\n\nangular.module('stock.articles.article', [])\n .config(stateConfig)\n .controller('StockArticleController', StockArticleController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.articlesearch', {\n url: '/stockarticles?currentPage&filter&pageSize&inactive&match',\n views: {\n 'articleList@stock': {\n templateUrl: 'main/stock/articles/articles.tpl.html',\n controller: 'StockArticlesController as vm'\n }\n },\n resolve: {\n articles: articlesResolver,\n isModelInventory: function() { return false; },\n isOrderingPoints: function() { return false; },\n searchTerms: searchTermResolver\n }\n });\n\n $stateProvider.state('stock.modelinventorysearch', {\n url: '/modelinventory?currentPage&filter&pageSize&inactive&match',\n views: {\n 'articleList@stock': {\n templateUrl: 'main/stock/articles/articles.tpl.html',\n controller: 'StockArticlesController as vm'\n }\n },\n resolve: {\n articles: articlesResolver,\n isModelInventory: function() { return true; },\n isOrderingPoints: function() { return false; },\n searchTerms: searchTermResolver\n }\n });\n\n $stateProvider.state('stock.orderingpointssearch', {\n url: '/orderingpoints?currentPage&filter&pageSize&inactive&match',\n views: {\n 'articleList@stock': {\n templateUrl: 'main/stock/articles/articles.tpl.html',\n controller: 'StockArticlesController as vm'\n }\n },\n resolve: {\n articles: articlesResolver,\n isModelInventory: function() { return false; },\n isOrderingPoints: function() { return true; },\n searchTerms: searchTermResolver\n }\n });\n}\n\n// @ngInject\nfunction articlesResolver(StockApiService, $stateParams) {\n if (!$stateParams.currentPage || $stateParams.currentPage < 1) { $stateParams.currentPage = 1; }\n if (!$stateParams.filter) { $stateParams.filter = ''; }\n if (!$stateParams.pageSize || $stateParams.pageSize < 20) { $stateParams.pageSize = 20; }\n if (!$stateParams.inactive === undefined) { $stateParams.inactive = false; }\n if (!$stateParams.match === undefined) { $stateParams.match = false; }\n return StockApiService.getProducts($stateParams.currentPage, $stateParams.filter, $stateParams.pageSize, $stateParams.inactive, $stateParams.match);\n}\n// @ngInject\nfunction searchTermResolver($stateParams) {\n return {\n filter: $stateParams.filter,\n currentPage: $stateParams.currentPage,\n pageSize: $stateParams.pageSize,\n inactive: $stateParams.inactive,\n match: $stateParams.match\n };\n}\n// @ngInject\nfunction StockArticlesController($scope, $state, $stateParams, StockApiService, loadSpinnerService, articles, isModelInventory, isOrderingPoints, searchTerms) {\n var vm = this;\n\n //Properties\n vm.articles = articles.data.results;\n vm.filter = '';\n vm.currentPage = 1;\n vm.selectedArticleId = 0;\n vm.pageSize = 20;\n vm.pageSize = articles.data.total;\n vm.selectedArticleId = 0;\n vm.useElasticProductSearch = false;\n vm.match = false;\n vm.inactive = false;\n\n //Methods\n vm.selectArticle = selectArticle;\n vm.getSearchTooltipText = getSearchTooltipText;\n\n activate();\n\n function activate() {\n vm.filter = searchTerms.filter ? searchTerms.filter : '';\n vm.currentPage = searchTerms.currentPage > 1 ? searchTerms.currentPage : 1;\n vm.pageSize = searchTerms.pageSize >= 20 ? searchTerms.pageSize : 20;\n vm.match = searchTerms.match ? searchTerms.match == 'true' ? true : false : false;\n vm.inactive = searchTerms.inactive ? searchTerms.inactive == 'true' ? true : false : false;\n\n $scope.$watch(function onArticleIdWatch() {\n return $state.params.articleId;\n }, function onArticleIdChanged() {\n vm.selectedArticleId = parseInt($state.params.articleId, 10);\n });\n }\n\n function getSearchTooltipText() {\n var tooltipString = 'Sökning med partiella ord görs med en stjärna, ex. \"Ja*\" för \"Jacka\"';\n if (!vm.useElasticProductSearch) { tooltipString = ''; }\n\n return tooltipString;\n }\n\n function selectArticle(article) {\n if (isModelInventory) {\n $state.go('stock.modelinventorysearch.modelinventory', {\n articleId: article.articleId,\n filter: article.searchTerms.filter,\n currentPage: article.searchTerms.currentPage,\n pageSize: article.searchTerms.pageSize,\n inactive: article.searchTerms.inactive,\n match: article.searchTerms.match\n });\n } else if (isOrderingPoints) {\n $state.go('stock.orderingpointssearch.orderingpoints', {\n articleId: article.articleId,\n filter: article.searchTerms.filter,\n currentPage: article.searchTerms.currentPage,\n pageSize: article.searchTerms.pageSize,\n inactive: article.searchTerms.inactive,\n match: article.searchTerms.match\n });\n } else {\n $state.go('stock.articlesearch.article', {\n articleId: article.articleId,\n filter: article.searchTerms.filter,\n currentPage: article.searchTerms.currentPage,\n pageSize: article.searchTerms.pageSize,\n inactive: article.searchTerms.inactive,\n match: article.searchTerms.match\n });\n }\n }\n}\n\nangular\n .module('stock.articles', ['stock.articles.article', 'stock.articles.modelinventory', 'stock.articles.caArticleStocksHistory', 'stock.articles.articleStocksHistory'])\n .config(stateConfig)\n .controller('StockArticlesController', StockArticlesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state(\"stock.modelinventorysearch.modelinventory\", {\n url: \"/{articleId}\",\n views: {\n \"articleView@stock\": {\n templateUrl:\n \"main/stock/articles/modelinventory/modelinventory.tpl.html\",\n controller: \"StockModelInventoryController as vm\",\n },\n },\n\n resolve: {\n article: articleResolver,\n stocks: stocksResolver,\n inventoriesCount: getPendingInventoryCountResolver,\n },\n });\n}\n\n// @ngInject\nfunction articleResolver($stateParams, StockApiService) {\n return StockApiService.getProduct($stateParams.articleId);\n}\n\n// @ngInject\nfunction stocksResolver($stateParams, StockApiService) {\n return StockApiService.getProductStock($stateParams.articleId);\n}\n\n// @ngInject\nfunction getPendingInventoryCountResolver(\n $stateParams,\n InventoryingApiService\n) {\n return InventoryingApiService.getPendingInventoryCount(\n $stateParams.articleId\n );\n}\n\n// @ngInject\nfunction StockModelInventoryController(\n $window,\n $state,\n $translate,\n $timeout,\n $scope,\n AuthService,\n article,\n stocks,\n inventoriesCount,\n StockApiService,\n ToasterService,\n loadSpinnerService,\n ArticleLabelsPrintDialogService,\n InventoryingApiService\n) {\n var vm = this;\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n var flexGrid = {};\n var flexGridCurrentlySelectedItem = {};\n var originalCellValue = \"\";\n\n var totalsGrid = {};\n\n vm.selectedArticle = article;\n vm.stocksData = stocks;\n vm.inventoriesPending = inventoriesCount.data;\n vm.saveButtonDisable = vm.inventoriesPending.count > 0;\n vm.stocksLocations = pickOutUniqueLocations(vm.stocksData);\n vm.selectedLocation = {};\n vm.totals = [\n {\n sumName: \"Total\",\n theoreticalTotal: 0,\n inventoriedTotal: 0,\n difference: 0,\n },\n ];\n\n vm.inventory = {\n inventoryDescription: \"\",\n deliverImmediately: true,\n location: vm.selectedLocation,\n article: vm.selectedArticle,\n inventoryDate: new Date(),\n inventoryRows: [],\n };\n\n vm.canAccess = AuthService.canAccess;\n vm.mayReadStockLogistics = AuthService.canAccess(\"stockLogistics\", \"read\");\n vm.captureVariantsGrid = captureVariantsGrid;\n vm.beginEditing = beginEditing;\n vm.editEnded = editEnded;\n vm.selectedLocationChanged = selectedLocationChanged;\n vm.zeroAllQuantities = zeroAllQuantities;\n vm.captureTotalsGrid = captureTotalsGrid;\n vm.contextMenuZeroRow = contextMenuZeroRow;\n vm.saveChanges = saveChanges;\n vm.openLabelsModal = openLabelsModal;\n vm.productStateGo = productStateGo;\n\n activate();\n\n function activate() {\n $window.addEventListener(\"click\", hideContextMenuListener);\n\n StockApiService.getFilteredLocations().then(\n function (response) {\n vm.stocksLocations = response;\n },\n function (error) {\n console.log(error);\n }\n );\n }\n\n function pollPendingInventoryCount(isNewInventory) {\n var loadTime = 5000, //Load the data every 5 second\n loadPromise;\n\n var getData = function () {\n InventoryingApiService.getPendingInventoryCount(\n vm.selectedArticle.id\n ).then(\n function (response) {\n vm.inventoriesPending = response.data;\n if (response.data.count === 0) {\n cancelNextLoad();\n $state.reload();\n ToasterService.showInfo(\n $translate.instant(\"common.done\"),\n $translate.instant(\"stock.inventorymodel\")\n );\n\n return;\n }\n nextLoad();\n },\n function (error) {\n console.log(error);\n }\n );\n };\n\n var cancelNextLoad = function () {\n $timeout.cancel(loadPromise);\n };\n\n var nextLoad = function () {\n //Clear timeout\n cancelNextLoad();\n loadPromise = $timeout(getData, loadTime);\n };\n\n //Start polling the data from the server\n getData();\n\n $scope.$on(\"$destroy\", function () {\n cancelNextLoad();\n });\n }\n\n function captureTotalsGrid(sender) {\n totalsGrid = sender;\n\n // Setting the item formatter, coloring the first line (total sum) differently.\n totalsGrid.itemFormatter = function (panel, r, c, cell) {\n var style = cell.style;\n var regularCellType = wijmo.grid.CellType.Cell;\n\n if (r === 0 && panel.cellType === regularCellType) {\n style.color = \"#000000\";\n style.backgroundColor = \"#dddddd\";\n }\n };\n }\n\n function openLabelsModal() {\n ArticleLabelsPrintDialogService.showDialog(vm.selectedArticle.id);\n }\n\n function saveChanges() {\n vm.inventory.inventoryRows = [];\n\n _.forEach(rowData, function (data) {\n var keys = Object.keys(data);\n var variant1Name = data[\"variantDetails1Name\"];\n _.forEach(keys, function (key) {\n if (key !== \"variantDetails1Name\") {\n var relatedArticleVariant = _.find(\n vm.selectedArticle.articleVariants,\n function (articleVariant) {\n return (\n articleVariant.variantDetail1.variantDetailName ===\n variant1Name &&\n articleVariant.variantDetail2.variantDetailName === key\n );\n }\n );\n\n var specifiedQuantity = data[key].split(\"(\")[0].trim();\n\n var inventoryRow = {\n articleVariant: relatedArticleVariant,\n quantity: parseInt(specifiedQuantity),\n };\n\n vm.inventory.inventoryRows.push(inventoryRow);\n }\n });\n });\n\n loadSpinnerService.start(\"mainSpinner\");\n StockApiService.saveProductInventory(vm.inventory)\n .then(\n function (response) {\n ToasterService.showInfo(\n $translate.instant(\"stock.inventorybeingprocessed\"),\n $translate.instant(\"stock.inventorymodel\")\n );\n //$state.reload();\n },\n function (error) {\n console.log(error);\n ToasterService.showError(\n $translate.instant(error.message),\n $translate.instant(\"common.error\")\n );\n }\n )\n .finally(function () {\n // $state.reload();\n pollPendingInventoryCount(true);\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n function zeroAllQuantities() {\n _.forEach(rowData, function (data) {\n var keys = Object.keys(data);\n _.forEach(keys, function (key) {\n if (key !== \"variantDetails1Name\") {\n var dataContents = data[key].split(\"(\");\n data[key] = 0 + \" (\" + dataContents[1];\n }\n });\n });\n\n flexGrid.invalidate();\n calculateNewTotals();\n }\n\n function calculateNewTotals() {\n var totalsObject = _.find(vm.totals, function (totalsEntry) {\n return totalsEntry.sumName === \"Total\";\n });\n\n totalsObject.theoreticalTotal = 0;\n totalsObject.inventoriedTotal = 0;\n totalsObject.difference = 0;\n\n _.forEach(rowData, function (data) {\n var keys = Object.keys(data);\n var variant1TotalsObject = _.find(vm.totals, function (variant1Entry) {\n return variant1Entry.sumName === data[\"variantDetails1Name\"];\n });\n if (variant1TotalsObject === undefined) {\n variant1TotalsObject = {\n sumName: data[\"variantDetails1Name\"],\n theoreticalTotal: 0,\n inventoriedTotal: 0,\n difference: 0,\n };\n vm.totals.push(variant1TotalsObject);\n }\n\n variant1TotalsObject.theoreticalTotal = 0;\n variant1TotalsObject.inventoriedTotal = 0;\n variant1TotalsObject.difference = 0;\n\n _.forEach(keys, function (key) {\n if (key !== \"variantDetails1Name\") {\n var currentData = data[key].split(\"(\");\n currentData[1] = currentData[1].substring(\n 0,\n currentData[1].length - 1\n );\n\n totalsObject.theoreticalTotal += parseInt(currentData[1]);\n totalsObject.inventoriedTotal += parseInt(currentData[0]);\n\n variant1TotalsObject.theoreticalTotal += parseInt(currentData[1]);\n variant1TotalsObject.inventoriedTotal += parseInt(currentData[0]);\n\n variant1TotalsObject.difference =\n variant1TotalsObject.inventoriedTotal -\n variant1TotalsObject.theoreticalTotal;\n }\n });\n });\n\n totalsObject.difference =\n totalsObject.inventoriedTotal - totalsObject.theoreticalTotal;\n if (totalsGrid.collectionView) {\n totalsGrid.collectionView.refresh();\n }\n }\n\n function beginEditing(sender, e) {\n var rowNumber = flexGrid.selection.row;\n var columnNumber = flexGrid.selection.col;\n\n var columnHeader = flexGrid.columns[columnNumber].binding;\n\n originalCellValue = angular.copy(rowData[rowNumber][columnHeader]);\n\n rowData[rowNumber][columnHeader] = rowData[rowNumber][columnHeader]\n .split(\"(\")[0]\n .trim();\n rowCollection.refresh();\n }\n\n function editEnded(sender, e) {\n var rowNumber = flexGrid.selection.row;\n var columnNumber = flexGrid.selection.col;\n\n var columnHeader = flexGrid.columns[columnNumber].binding;\n\n // Reinserting the parenthesis value.\n rowData[rowNumber][columnHeader] =\n rowData[rowNumber][columnHeader] + \" (\" + originalCellValue.split(\"(\")[1];\n rowCollection.refresh();\n calculateNewTotals();\n }\n\n function selectedLocationChanged(sender) {\n if (!sender.selectedItem) {\n return;\n }\n\n vm.selectedLocation = _.find(vm.stocksLocations, function (location) {\n return location.id === sender.selectedItem.id;\n });\n\n vm.inventory.location = vm.selectedLocation;\n initializeGridColumns();\n }\n\n function initializeGridColumns() {\n // Need to wait for the grid to be initialized\n if (!flexGrid.columns) {\n setTimeout(initializeGridColumns, 100);\n return;\n }\n\n rowData.length = 0;\n flexGrid.columns.clear();\n rowCollection.refresh();\n\n // Add first row header column\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"variantDetails1Name\";\n rowHeader.header = \" \";\n rowHeader.allowSorting = false;\n rowHeader.width = 100;\n rowHeader.isReadOnly = true;\n flexGrid.columns.push(rowHeader);\n\n var columns = getDataColumns();\n\n // Add dynamic columns\n _.forEach(columns, function (variantDetail) {\n var c = new wijmo.grid.Column();\n c.binding = variantDetail.variantDetailName;\n c.header = variantDetail.variantDetailName;\n c.width = \"*\";\n c.allowSorting = false;\n c.inputType = \"text\";\n c.isReadOnly = false;\n c.align = \"right\";\n flexGrid.columns.push(c);\n });\n\n loadGridData();\n }\n\n function captureVariantsGrid(sender) {\n flexGrid = sender;\n\n flexGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Cell,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.None,\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\n isReadOnly: false,\n itemsSource: rowCollection,\n });\n\n initializeGridColumns();\n\n var host = flexGrid.hostElement;\n host.addEventListener(\"contextmenu\", contextMenuListener);\n }\n\n function getDataColumns() {\n var columns = [];\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(vm.selectedArticle.articleVariants, function (variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(\n columns,\n function (newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n },\n []\n );\n\n return _.sortBy(columns, \"sortOrder\");\n }\n\n function loadGridData() {\n var articleVariants = _.groupBy(\n vm.selectedArticle.articleVariants,\n function (articleVariant) {\n return articleVariant.variantDetail1.variantDetailName;\n }\n );\n\n _.forEach(articleVariants, function (variantRowValues) {\n var r = {};\n _.forEach(variantRowValues, function (variantRowValue) {\n r.variantDetails1Name =\n variantRowValue.variantDetail1.variantDetailName;\n\n var relatedStock = getStockFor(\n r.variantDetails1Name,\n variantRowValue.variantDetail2.variantDetailName\n );\n\n if (\n relatedStock === undefined ||\n relatedStock.location.id !== vm.selectedLocation.id\n ) {\n relatedStock = {};\n relatedStock[\"quantity\"] = 0;\n }\n\n r[variantRowValue.variantDetail2.variantDetailName] =\n relatedStock.quantity + \" (\" + relatedStock.quantity + \")\";\n });\n rowData.push(r);\n });\n rowCollection.refresh();\n\n calculateNewTotals();\n }\n\n function getStockFor(variantDetail1Name, variantDetail2Name) {\n return _.find(vm.stocksData, function (stock) {\n return (\n stock.articleVariant.variantDetail1.variantDetailName ===\n variantDetail1Name &&\n stock.articleVariant.variantDetail2.variantDetailName ===\n variantDetail2Name &&\n stock.location.id === vm.selectedLocation.id\n );\n });\n }\n\n function pickOutUniqueLocations(stocks) {\n var locations = [];\n _.each(stocks, function (stock) {\n var unique = true;\n _.each(locations, function (location) {\n if (location.id === stock.location.id) {\n unique = false;\n }\n });\n if (unique) {\n locations.push(stock.location);\n }\n });\n return locations;\n }\n\n function contextMenuZeroRow() {\n console.log(flexGridCurrentlySelectedItem);\n var keys = Object.keys(flexGridCurrentlySelectedItem);\n\n _.forEach(keys, function (key) {\n if (key !== \"variantDetails1Name\") {\n console.log(\"Current key: \" + key);\n console.log(flexGridCurrentlySelectedItem[key]);\n var oldValue = flexGridCurrentlySelectedItem[key].split(\"(\");\n\n flexGridCurrentlySelectedItem[key] = 0 + \" (\" + oldValue[1];\n }\n });\n\n flexGrid.invalidate();\n calculateNewTotals();\n }\n\n function hideContextMenuListener(e) {\n var jqContextMenu = $(\"#inventoryContextMenu\");\n jqContextMenu.css(\"visibility\", \"hidden\");\n }\n\n function contextMenuListener(event) {\n var sel = flexGrid.selection;\n var clickedRowNumber = sel.row;\n var jqContextMenu = $(\"#inventoryContextMenu\");\n\n event.preventDefault();\n flexGridCurrentlySelectedItem = rowData[clickedRowNumber];\n\n jqContextMenu.css(\"left\", event.clientX);\n jqContextMenu.css(\"top\", event.clientY);\n jqContextMenu.css(\"visibility\", \"visible\");\n }\n\n function productStateGo(stringState) {\n if(typeof cancelNextLoad === 'function'){\n cancelNextLoad();\n }\n $state.go(stringState, {\n articleId: vm.selectedArticle.id,\n filter: $state.params.filter,\n currentPage: $state.params.currentPage,\n pageSize: $state.params.pageSize,\n inactive: $state.params.inactive,\n match: $state.params.match,\n },\n {reload:true});\n }\n}\n\nangular\n .module(\"stock.articles.modelinventory\", [])\n .config(stateConfig)\n .controller(\"StockModelInventoryController\", StockModelInventoryController);\n","// @ngInject\nfunction InventoryingApiService($q, DS, DSHttpAdapter, ResourcesService, $cookies, $window) {\n return {\n getAll: getAll,\n getById: getById,\n getHeadInfoById: getHeadInfoById,\n getInventoryItemGroups: getInventoryItemGroups,\n getInventoryTypes: getInventoryTypes,\n createInventory: createInventory,\n updateInventory: updateInventory,\n getInventoryDataForArticle: getInventoryDataForArticle,\n uploadParseFile: uploadParseFile,\n getInventoryRowsRelatedToItemGroup: getInventoryRowsRelatedToItemGroup,\n getInventoryRowsRelatedToArticle: getInventoryRowsRelatedToArticle,\n getInventoryRows: getInventoryRows,\n approveItemGroupRelatedRows: approveItemGroupRelatedRows,\n approveInventoryRow: approveInventoryRow,\n approveInventoryRows: approveInventoryRows,\n getInventoryReport: getInventoryReport,\n getInventoryMainGroups: getInventoryMainGroups,\n getInventoryFileErrors: getInventoryFileErrors,\n getInventoryBrands: getInventoryBrands,\n getMainGroupInventoryRows: getMainGroupInventoryRows,\n getBrandInventoryRows: getBrandInventoryRows,\n uploadInventoryFile: uploadInventoryFile,\n queueInventoryForFinalization: queueInventoryForFinalization,\n getPendingInventoryCount: getPendingInventoryCount\n };\n\n function getAll(page, filter, pageSize) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories', {params: params}).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getById(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getPendingInventoryCount(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/pendingcount/' + articleId ).then(function(response) {\n console.log(\"response\", response)\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryMainGroups(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/maingroups').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryBrands(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/brands').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMainGroupInventoryRows(inventoryId, mainGroupId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/maingroups/' + mainGroupId + '/inventoryrows').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getBrandInventoryRows(inventoryId, brandId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/brands/' + brandId + '/inventoryrows').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getHeadInfoById(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/head').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function uploadParseFile(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'inventories/' + inventoryId + '/inventoryfile').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateInventory(data) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'inventories/', data).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryRowsRelatedToItemGroup(inventoryId, itemGroupId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/itemgroups/' + itemGroupId + '/inventoryrows').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryRowsRelatedToArticle(inventoryId, articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/articles/' + articleId + '/inventoryrows').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryRows(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/inventoryrows').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryFileErrors(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/file/errors').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryItemGroups(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/itemgroups').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryDataForArticle(inventoryId, articleId) {\n var deferred = $.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'inventories/' + inventoryId + '/articles/' + articleId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryTypes() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'types/inventory').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createInventory(data) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'inventories', data).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function approveItemGroupRelatedRows(inventoryId, itemGroupId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'inventories/' + inventoryId + '/itemgroups/' + itemGroupId + '/approve').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function approveInventoryRow(inventoryId, inventoryRowId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'inventories/' + inventoryId + '/inventoryrows/' + inventoryRowId + '/approve').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function approveInventoryRows(inventoryId, inventoryRows) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'inventories/' + inventoryId + '/inventoryrows/approve', inventoryRows).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function uploadInventoryFile(inventoryId, fileData) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'inventories/' + inventoryId + '/uploadfile', fileData).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function queueInventoryForFinalization(inventoryId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'inventories/' + inventoryId + '/queueforfinalization').then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getInventoryReport(inventoryId, language, format) {\n var deferred = $q.defer();\n\n //eg. inventoryId = '1', language = 'se', format = 'xls' => 'inventories/1/report/se/asxls'\n var url = DS.defaults.basePath + 'inventories/' + inventoryId + '/report/' + language + '/as' + format;\n DSHttpAdapter.GET(url, { responseType: 'arraybuffer' }).then(function(response) {\n var blob;\n if (format === 'pdf') {\n blob = new Blob([response.data], {type: 'application/pdf'});\n } else if (format === 'csv') {\n blob = new Blob([response.data], {type: 'application/csv'});\n } else if (format === 'xls') {\n blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\n }\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'report.' + format);\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s]){1,}(.pdf|.csv|.xls)/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('inventorying.api', [])\n .factory('InventoryingApiService', InventoryingApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.stockpickinglist', {\n url: \"/stockpickinglist\",\n views: {\n 'articleView@stock': {\n templateUrl: 'main/stock/pickinglist/stockPickingList.tpl.html',\n controller: 'StockPickingListController as vm'\n }\n },\n resolve: {\n locations: locationResolver\n }\n });\n}\n\n// @ngInject\nfunction locationResolver(AnalysisApiService) {\n return AnalysisApiService.getLocations();\n}\n\n// @ngInject\nfunction StockPickingListController($window, $translate, $scope, loadSpinnerService, StockApiService, ToasterService, locations) {\n var vm = this;\n\n //Properties\n vm.startDate = new Date();\n vm.endDate = new Date();\n vm.location = undefined;\n vm.locations = locations;\n vm.sortorders = [];\n vm.sortOrder2 = undefined;\n vm.sortOrder3 = undefined;\n vm.showCollection = false;\n vm.showDepartment = false;\n vm.selectedGrouping = {};\n vm.includeArticleNumber = false;\n vm.includeStorageItems = false;\n vm.includeIsPhotographed = false;\n vm.includeZeroAndNegativeQuantity = false;\n vm.showRestOfLocations = false;\n\n vm.portraitOrientation = false;\n vm.groupings = [];\n\n //Methods\n vm.getStockPickingList = getStockPickingList;\n vm.canPrintStockPickingList = canPrintStockPickingList;\n\n activate();\n\n function activate() {\n vm.startDate.setDate(vm.startDate.getDate() - 1);\n vm.startDate.setHours(0);\n vm.startDate.setMinutes(0);\n vm.sortorders = [\n { id: 1, description: $translate.instant('article.brand'), code: 'Brand' }, //'Varumärke'\n { id: 2, description: $translate.instant('article.maingroup'), code: 'MainGroup' }, //'Huvudgrupp'\n { id: 3, description: $translate.instant('article.articlename'), code: 'ArticleName' }, //'Produktnamn'\n { id: 4, description: $translate.instant('article.articlenumber'), code: 'ArticleNumber' }, //'Produktnummer'\n { id: 5, description: $translate.instant('article.alternativearticlenumber'), code: 'AlternativeArticleNumber' }, //'Lev. produktnummer'\n { id: 6, description: $translate.instant('article.department'), code: 'Department' }, //'Avdelning'\n { id: 7, description: $translate.instant('common.variant1s'), code: 'Variant1Name' }, //'Variant 1 (färg)'\n { id: 8, description: $translate.instant('common.variant2s'), code: 'Variant2Name' }, //'Variant 2 (storlek)'\n { id: 9, description: $translate.instant('article.storageLocation'), code: 'StorageLocation' } //'Lagerplats'\n ];\n vm.sortOrder1 = vm.sortorders[0];\n vm.groupings = [\n { id: 1, name: $translate.instant('stock.print.noGrouping'), value: 'none' }, //'Ingen'\n { id: 2, name: $translate.instant('stock.print.groupOnCollection'), value: 'groupOnCollection' }, //'Gruppera pÃ¥ säsong'\n { id: 3, name: $translate.instant('stock.print.groupOnDepartment'), value: 'groupOnDepartment' }, //'Gruppera pÃ¥ avdelning'\n { id: 4, name: $translate.instant('stock.print.groupOnCollectionAndSubcategory'), value: 'groupOnCollectionAndSubcategory' }, //'Gruppera pÃ¥ säsong och produktkategori'\n { id: 5, name: $translate.instant('stock.print.groupOnDepartmentAndSubcategory'), value: 'groupOnDepartmentAndSubcategory' } //'Gruppera pÃ¥ avdelning och produktkategori'\n ];\n vm.selectedGrouping = vm.groupings[0];\n readSettingsFromLocalStorage();\n\n $scope.$watch(function() { return vm.portraitOrientation; }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n vm.showCollection = false;\n vm.showDepartment = false;\n vm.includeArticleNumber = false;\n vm.includeStorageItems = false;\n vm.includeIsPhotographed = false;\n vm.includeZeroAndNegativeQuantity = false;\n vm.showRestOfLocations = false;\n\n }\n });\n }\n\n function getStockPickingList() {\n loadSpinnerService.start('mainSpinner');\n\n saveSettingsToLocalStorage();\n\n var request = {\n startDate: vm.startDate,\n endDate: vm.endDate,\n locationId: vm.location.id,\n sortOrder1: vm.sortOrder1.code,\n sortOrder2: vm.sortOrder2 ? vm.sortOrder2.code : undefined,\n sortOrder3: vm.sortOrder3 ? vm.sortOrder3.code : undefined,\n showCollection: vm.showCollection,\n showDepartment: vm.showDepartment,\n grouping: vm.selectedGrouping.value,\n includeArticleNumber: vm.includeArticleNumber,\n includeStorageItems: vm.includeStorageItems,\n includeIsPhotographed: vm.includeIsPhotographed,\n includeZeroAndNegativeQuantity: vm.includeZeroAndNegativeQuantity,\n portraitOrientation: vm.portraitOrientation,\n showRestOfLocations: vm.showRestOfLocations\n };\n\n StockApiService.downloadStockPickingList(request).then(function(response) {\n if (response && response.status === 204) {\n ToasterService.showWarning(\n $translate.instant('pickinglist.timespan') + ' ' + formatDate(vm.startDate) + ' - ' + formatDate(vm.endDate) + ' ' + $translate.instant('common.noResults'),\n $translate.instant('stock.stockpickinglist')\n );\n }\n }, function(error) {\n console.log(error);\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function formatDate(date) {\n if (!date) { return ''; }\n return date.getFullYear() + '-' + (date.getMonth() + 1).toString().padStart(2, '0') + '-' + date.getDate().toString().padStart(2, '0') + ' ' + date.getHours().toString().padStart(2, '0') + ':' + date.getMinutes().toString().padStart(2, '0');\n }\n\n function canPrintStockPickingList() {\n return !vm.location || vm.location.id <= 0;\n }\n\n function saveSettingsToLocalStorage() {\n var request = {\n sortOrder1: angular.copy(vm.sortOrder1.code),\n sortOrder2: vm.sortOrder2 ? angular.copy(vm.sortOrder2.code) : null,\n sortOrder3: vm.sortOrder3 ? angular.copy(vm.sortOrder3.code) : null,\n showCollection: vm.showCollection,\n showDepartment: vm.showDepartment,\n grouping: vm.selectedGrouping.value,\n includeArticleNumber: vm.includeArticleNumber,\n includeStorageItems: vm.includeStorageItems,\n includeIsPhotographed: vm.includeIsPhotographed,\n includeZeroAndNegativeQuantity: vm.includeZeroAndNegativeQuantity,\n portraitOrientation: vm.portraitOrientation,\n showRestOfLocations: vm.showRestOfLocations\n };\n\n $window.localStorage.setItem('printStockPickingListSettings', JSON.stringify(request));\n }\n\n function readSettingsFromLocalStorage() {\n if ($window.localStorage.printStockPickingListSettings) {\n if (!isJsonString($window.localStorage.getItem('printStockPickingListSettings'))) {\n $window.localStorage.removeItem('printStockPickingListSettings');\n }\n\n var settingsStr = $window.localStorage.getItem('printStockPickingListSettings');\n if (settingsStr !== null) {\n var json = JSON.parse(settingsStr);\n if (json.portraitOrientation) { vm.portraitOrientation = json.portraitOrientation; }\n if (json.showCollection) { vm.showCollection = json.showCollection; }\n if (json.showDepartment) { vm.showDepartment = json.showDepartment; }\n if (json.grouping) { vm.selectedGrouping = _.find(vm.groupings, function (o) { return o.value === json.grouping; }); }\n if (json.includeArticleNumber) { vm.includeArticleNumber = json.includeArticleNumber; }\n if (json.includeStorageItems) { vm.includeStorageItems = json.includeStorageItems; }\n if (json.includeIsPhotographed) { vm.includeIsPhotographed = json.includeIsPhotographed; }\n if (json.includeZeroAndNegativeQuantity) { vm.includeZeroAndNegativeQuantity = json.includeZeroAndNegativeQuantity; }\n if (json.showRestOfLocations) { vm.showRestOfLocations = json.showRestOfLocations; }\n if (json.sortOrder1 && _.indexOf(vm.sortorders, function(so) { return so.code === json.sortOrder1; })) { vm.sortOrder1 = _.find(vm.sortorders, function(so) { return so.code === json.sortOrder1; }); }\n if (json.sortOrder2 && _.indexOf(vm.sortorders, function(so) { return so.code === json.sortOrder2; })) { vm.sortOrder2 = _.find(vm.sortorders, function(so) { return so.code === json.sortOrder2; }); }\n if (json.sortOrder3 && _.indexOf(vm.sortorders, function(so) { return so.code === json.sortOrder3; })) { vm.sortOrder3 = _.find(vm.sortorders, function(so) { return so.code === json.sortOrder3; }); }\n }\n }\n }\n function isJsonString(str) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n}\n\nangular.module('stock.stockpickinglist', [])\n .config(stateConfig)\n .controller('StockPickingListController', StockPickingListController);\n","// @ngInject\r\nfunction stateConfig($stateProvider) {\r\n $stateProvider.state('stock.saleThroughputReports', {\r\n url: '/salethroughputreports',\r\n views: {\r\n \"wideColumnView@stock\": {\r\n templateUrl: 'main/stock/reports/saleThroughputReports.tpl.html',\r\n controller: 'SaleThroughputReportsController as vm'\r\n }\r\n },\r\n resolve: {\r\n brands: brandsResolver,\r\n collections: collectionsResolver,\r\n locations: locationsResolver,\r\n departments: departmentsResolver\r\n }\r\n });\r\n}\r\n\r\n// @ngInject\r\nfunction brandsResolver(StockApiService) {\r\n return StockApiService.getFilteredBrands();\r\n}\r\n\r\n// @ngInject\r\nfunction collectionsResolver(StockApiService) {\r\n return StockApiService.getCollections();\r\n}\r\n\r\n// @ngInject\r\nfunction locationsResolver(StockApiService) {\r\n return StockApiService.getFilteredLocations();\r\n}\r\n\r\n// @ngInject\r\nfunction departmentsResolver(StockApiService) {\r\n return StockApiService.getDepartments();\r\n}\r\n\r\n\r\n// @ngInject\r\nfunction SaleThroughputReportsController($translate, StockApiService, brands, loadSpinnerService, collections, locations, ToasterService, departments) {\r\n var vm = this;\r\n\r\n vm.reportParameters = {\r\n startDate: new Date(1970, 1, 1, 0, 0, 0),\r\n endDate: new Date(),\r\n brandId: undefined,\r\n collectionId: undefined,\r\n includeIsCurrent: false\r\n };\r\n\r\n vm.brands = brands;\r\n vm.collections = collections;\r\n vm.locations = locations;\r\n vm.departments = departments;\r\n vm.groupings = [\r\n { id: 0, label: $translate.instant('reports.groupingNone'), grouping: 'None' },\r\n { id: 1, label: $translate.instant('reports.groupingProduct'), grouping: 'Product' },\r\n { id: 2, label: $translate.instant('reports.groupingProductLocation'), grouping: 'ProductLocation' },\r\n { id: 3, label: $translate.instant('reports.groupingVariantDetail1'), grouping: 'VariantDetail1' },\r\n { id: 4, label: $translate.instant('reports.groupingVariantDetail1Location'), grouping: 'VariantDetail1Location' },\r\n { id: 5, label: $translate.instant('reports.groupingVariantDetail1VariantDetail2'), grouping: 'VariantDetail1VariantDetail2' },\r\n { id: 6, label: $translate.instant('reports.groupingVariantDetail1VariantDetail2Location'), grouping: 'VariantDetail1VariantDetail2Location'},\r\n { id: 7, label: $translate.instant('reports.groupingBrand'), grouping: 'Brand'}\r\n ];\r\n vm.selectedGrouping = vm.groupings[0];\r\n\r\n vm.selectedCollections = [];\r\n vm.selectedBrands = [];\r\n vm.selectedLocations = [];\r\n vm.selectedDepartments = [];\r\n\r\n vm.switchToCsv = switchToCsv;\r\n vm.switchToPdf = switchToPdf;\r\n \r\n vm.fileFormatChoice = {\r\n csv: true,\r\n pdf: false\r\n };\r\n\r\n //Methods\r\n vm.getSaleThroughputReport = getSaleThroughputReport;\r\n \r\n activate();\r\n\r\n function activate() {\r\n _.forEach(vm.locations, function(location) {\r\n vm.selectedLocations.push(location);\r\n });\r\n _.forEach(vm.departments, function(department) {\r\n vm.selectedDepartments.push(department);\r\n });\r\n }\r\n\r\n function getSaleThroughputReport() {\r\n if (!validateRequest()) {\r\n return;\r\n }\r\n\r\n var request = {\r\n endDate: vm.reportParameters.endDate,\r\n brandIds: [],\r\n collectionIds: [],\r\n locationIds: [],\r\n departmentIds: [],\r\n grouping: vm.selectedGrouping.grouping,\r\n includeIsCurrent: vm.reportParameters.includeIsCurrent,\r\n startDate: vm.reportParameters.startDate\r\n };\r\n\r\n _.forEach(vm.selectedBrands, function(brand) { request.brandIds.push(brand.id); });\r\n _.forEach(vm.selectedCollections, function (collection) { request.collectionIds.push(collection.id); });\r\n _.forEach(vm.selectedLocations, function(location) { request.locationIds.push(location.id); });\r\n _.forEach(vm.selectedDepartments, function(department) { request.departmentIds.push(department.id); });\r\n\r\n loadSpinnerService.start(\"mainSpinner\");\r\n if (vm.fileFormatChoice.csv) {\r\n StockApiService.downloadSaleThroughputReport(request).finally(function () {\r\n loadSpinnerService.stop(\"mainSpinner\");\r\n });\r\n } else if (vm.fileFormatChoice.pdf) {\r\n StockApiService.downloadSaleThroughputReportPdf(request).finally(function () {\r\n loadSpinnerService.stop(\"mainSpinner\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function validateRequest() {\r\n if (vm.selectedBrands.length === 0) {\r\n ToasterService.showWarning($translate.instant('reports.error.needToSelectBrands'));\r\n return false;\r\n }\r\n if (vm.selectedCollections.length === 0) {\r\n ToasterService.showWarning($translate.instant('reports.error.needToSelectCollections'));\r\n return false;\r\n }\r\n if (vm.selectedLocations.length === 0) {\r\n ToasterService.showWarning($translate.instant('reports.error.needToSelectLocations'));\r\n return false;\r\n }\r\n // if (vm.selectedDepartments.length === 0) {\r\n // ToasterService.showWarning($translate.instant('reports.error.needToSelectDepartments'));\r\n // return false;\r\n // }\r\n return true;\r\n }\r\n\r\n function switchToCsv() {\r\n var keys = Object.keys(vm.fileFormatChoice);\r\n _.forEach(keys, function(key) { vm.fileFormatChoice[key] = false; });\r\n vm.fileFormatChoice.csv = true;\r\n }\r\n\r\n function switchToPdf() {\r\n var keys = Object.keys(vm.fileFormatChoice);\r\n _.forEach(keys, function(key) { vm.fileFormatChoice[key] = false; });\r\n vm.fileFormatChoice.pdf = true;\r\n }\r\n\r\n}\r\n\r\nangular.module('stock.saleThroughputReports', [])\r\n .config(stateConfig)\r\n .controller('SaleThroughputReportsController', SaleThroughputReportsController);\r\n","// @ngInject\r\nfunction stateConfig($stateProvider) {\r\n $stateProvider.state('stock.soldStockReports', {\r\n url: '/soldstockreports',\r\n views: {\r\n \"wideColumnView@stock\": {\r\n templateUrl: 'main/stock/reports/soldStockReports.tpl.html',\r\n controller: 'SoldStockReportsController as vm'\r\n }\r\n },\r\n resolve: {\r\n locations: locationsResolver,\r\n companies: companiesResolver\r\n }\r\n });\r\n}\r\n\r\n// @ngInject\r\nfunction locationsResolver(StockApiService) {\r\n return StockApiService.getLocations();\r\n}\r\n\r\n// @ngInject\r\nfunction companiesResolver(StockApiService) {\r\n return StockApiService.getCompaniesBrief();\r\n}\r\n\r\n// @ngInject\r\nfunction SoldStockReportsController($translate, StockApiService, locations, loadSpinnerService, companies) {\r\n var vm = this;\r\n\r\n //Properties\r\n vm.reportParameters = {\r\n startDate: new Date(),\r\n endDate: new Date(),\r\n locationIds: [],\r\n companyIds: [],\r\n sortOrder1: undefined,\r\n sortOrder2: undefined,\r\n sortOrder3: undefined\r\n };\r\n vm.selectedLocations = [];\r\n vm.selectedCompanies = [];\r\n vm.sortorders = [];\r\n vm.sortOrder2 = undefined;\r\n vm.sortOrder3 = undefined;\r\n vm.printLanguage = 'se';\r\n vm.locations = locations;\r\n vm.companies = companies;\r\n vm.selectedLocations = angular.copy(locations);\r\n vm.includeStorageItems = false;\r\n vm.includeIsPhotographed = false;\r\n\r\n //Methods\r\n vm.getSoldStockReport = getSoldStockReport;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.sortorders = [\r\n { id: 1, description: $translate.instant('article.brand'), code: 'BrandCode' }, //'Varumärke'\r\n { id: 2, description: $translate.instant('article.maingroup'), code: 'MainGroupCode' }, //'Huvudgrupp'\r\n { id: 3, description: $translate.instant('article.articlename'), code: 'ArticleName' }, //'Produktnamn'\r\n { id: 4, description: $translate.instant('article.alternativearticlenumber'), code: 'AlternativeArticleNumber' }, //'Lev. produktnummer'\r\n { id: 5, description: $translate.instant('article.department'), code: 'Department' }, //'Avdelning'\r\n { id: 6, description: $translate.instant('common.variant1s'), code: 'VariantDetail1Name' }, //'Variant 1 (färg)'\r\n { id: 7, description: $translate.instant('common.variant2s'), code: 'VariantDetail2Name' }, //'Variant 2 (storlek)'\r\n { id: 8, description: $translate.instant('article.storageLocation'), code: 'StorageLocation' } //'Lagerplats'\r\n ];\r\n vm.sortOrder1 = vm.sortorders[0];\r\n }\r\n\r\n function getSoldStockReport() {\r\n var request = {\r\n startDate: vm.reportParameters.startDate,\r\n endDate: vm.reportParameters.endDate,\r\n locationIds: [],\r\n companyIds: [],\r\n languageCode: vm.printLanguage,\r\n sortOrder1: vm.sortOrder1 ? vm.sortOrder1.code : undefined,\r\n sortOrder2: vm.sortOrder2 ? vm.sortOrder2.code : undefined,\r\n sortOrder3: vm.sortOrder3 ? vm.sortOrder3.code : undefined\r\n };\r\n\r\n vm.selectedLocations.forEach(function(location) { request.locationIds.push(location.id); });\r\n vm.selectedCompanies.forEach(function(company) { request.companyIds.push(company.id); });\r\n\r\n loadSpinnerService.start(\"mainSpinner\");\r\n StockApiService.downloadSoldStockReport(request).finally(function () {\r\n loadSpinnerService.stop(\"mainSpinner\");\r\n });\r\n }\r\n}\r\n\r\nangular.module('stock.soldStockReports', [])\r\n .config(stateConfig)\r\n .controller('SoldStockReportsController', SoldStockReportsController);\r\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.stockValueReports', {\n url: '/stockvaluereports',\n views: {\n \"wideColumnView@stock\": {\n templateUrl: 'main/stock/reports/stockValueReports.tpl.html',\n controller: 'ReportsController as vm'\n }\n },\n resolve: {\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction locationsResolver(StockApiService) {\n return StockApiService.getLocations();\n}\n\n\n\n// @ngInject\nfunction ReportsController(StockApiService, $window, locations, loadSpinnerService, ToasterService, $translate) {\n var vm = this;\n\n //Properties\n vm.reportParameters = {\n stockEndDate: new Date(),\n inventoryDays: 0,\n locations: []\n };\n vm.locations = locations;\n vm.selectedInventoryDays = { name: 0, value: 0 };\n vm.inventoryDayList = [];\n vm.printLanguage = 'se';\n vm.includeExternalId = false;\n vm.includeBarcode = false;\n vm.groupingLevels = [\n //{ name: 'article.itemgroup', value: 'itemGroupLevel' },\n { name: 'grouping.variant1', value: 'articleVariant1Level' },\n { name: 'grouping.variant2', value: 'articleVariant1Variant2Level' }\n ];\n\n for (var i = 0; i < 15; i++) {\n vm.inventoryDayList.push({ name: i, value: i });\n }\n\n //Methods\n vm.getStockValueReport = getStockValueReport;\n\n activate();\n\n function activate() {\n vm.reportParameters.locations = angular.copy(locations);\n vm.selectedGroupingLevel = _.find(vm.groupingLevels, function(o) { return o.value === 'articleVariant1Level';});\n readSettingsFromLocalStorage();\n }\n\n function getStockValueReport() {\n var request = {\n stockDate: vm.reportParameters.stockEndDate,\n inventoryDays: vm.selectedInventoryDays.value,\n locationIds: _.map(vm.reportParameters.locations, 'id'),\n languageCode: vm.printLanguage,\n level: vm.selectedGroupingLevel.value,\n includeExternalId: vm.includeExternalId,\n includeBarcode: vm.includeBarcode\n };\n\n loadSpinnerService.start(\"mainSpinner\");\n saveSettingsToLocalStorage();\n\n StockApiService.downloadStockValueReport(request).then(function () {\n //Display CSV file\n ToasterService.showSuccess($translate.instant('analysis.reportName') + ' ' + $translate.instant('common.created'), $translate.instant('common.stock'));\n }, function (error) {\n if (error.errors) {\n vm.validationErrors = error.errors;\n }\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function saveSettingsToLocalStorage() {\n var request = {\n languageCode: vm.printLanguage,\n groupingLevel: vm.selectedGroupingLevel.value,\n includeExternalId: vm.includeExternalId,\n includeBarcode: vm.includeBarcode\n };\n\n $window.localStorage.setItem('printStockValueReportSettings', JSON.stringify(request));\n }\n function readSettingsFromLocalStorage() {\n if ($window.localStorage.printStockValueReportSettings) {\n if (!isJsonString($window.localStorage.getItem('printStockValueReportSettings'))) {\n $window.localStorage.removeItem('printStockValueReportSettings');\n }\n\n var settingsStr = $window.localStorage.getItem('printStockValueReportSettings');\n if (settingsStr !== null) {\n var json = JSON.parse(settingsStr);\n if (json.languageCode) { vm.printLanguage = json.languageCode; }\n if (json.groupingLevel) { vm.selectedGroupingLevel = _.find(vm.groupingLevels, function(o) { return o.value === json.groupingLevel; }); }\n if (json.includeExternalId) { vm.includeExternalId = json.includeExternalId; }\n if (json.includeBarcode) { vm.includeBarcode = json.includeBarcode; }\n }\n }\n }\n function isJsonString(str) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n}\n\nangular.module('stock.stockValueReports', [])\n .config(stateConfig)\n .controller('ReportsController', ReportsController);\n\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.scannerinventorying.inventory.articledetails', {\n url: '/article/{articleId}/location/{locationId}/variantdetail/{variantDetailId}',\n templateUrl: 'main/stock/scannerinventorying/inventory/articledetails/articledetails.tpl.html',\n controller: 'ArticleDetailsController as vm',\n resolve: {\n stockTransactions: stockTransactionsResolver,\n article: articleResolver\n }\n\n });\n}\n\n// @ngInject\nfunction stockTransactionsResolver($stateParams, StockApiService) {\n return StockApiService.getStockTransactionsForArticleAndLocation(\n {\n articleId: $stateParams.articleId,\n locationId: $stateParams.locationId,\n variantDetailId: $stateParams.variantDetailId\n }\n );\n}\n\n// @ngInject\nfunction articleResolver($stateParams, StockApiService) {\n return StockApiService.getProduct($stateParams.articleId);\n}\n\n// @ngInject\nfunction ArticleDetailsController(stockTransactions, article) {\n var vm = this;\n\n var transactionsGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n\n vm.stockTransactions = stockTransactions;\n vm.currentVariantDetail1 = {};\n vm.article = article;\n\n vm.initGrid = initGrid;\n\n activate();\n\n function activate() {\n if (vm.stockTransactions.length !== 0) {\n vm.currentVariantDetail1 = vm.stockTransactions[0].articleVariant.variantDetail1;\n }\n }\n\n function initGrid(sender) {\n transactionsGrid = sender;\n\n transactionsGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.None,\n itemsSource: rowCollection\n });\n\n updateTransactionGridGroupings();\n\n transactionsGrid.collapseGroupsToLevel(0);\n\n setUpGridData();\n loadGridData();\n\n transactionsGrid.collapseGroupsToLevel(0);\n }\n\n function updateTransactionGridGroupings() {\n transactionsGrid.groupHeaderFormat = '{value}';\n\n var timeTypeGrouping = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.accountingDate.toString().split(\" \")[0] + \" \" + item.transactionType;\n });\n\n transactionsGrid.collectionView.groupDescriptions.push(timeTypeGrouping);\n\n transactionsGrid.invalidate();\n transactionsGrid.collectionView.refresh();\n }\n\n function setUpGridData() {\n\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"accountingDate\";\n rowHeader.header = \" \";\n rowHeader.allowSorting = false;\n rowHeader.width = 150;\n rowHeader.isReadOnly = true;\n transactionsGrid.columns.push(rowHeader);\n\n rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"transactionType\";\n rowHeader.header = \" \";\n rowHeader.allowSorting = false;\n rowHeader.width = 150;\n rowHeader.isReadOnly = true;\n transactionsGrid.columns.push(rowHeader);\n\n var columns = getDataColumns();\n\n // Add dynamic columns\n _.forEach(columns, function(variantDetail) {\n var c = new wijmo.grid.Column();\n c.binding = variantDetail.variantDetailName;\n c.header = variantDetail.variantDetailName;\n c.width = \"*\";\n c.allowSorting = false;\n c.inputType = 'text';\n c.isReadOnly = true;\n c.align = 'Right';\n c.aggregate = 'Sum';\n transactionsGrid.columns.push(c);\n });\n }\n\n function getDataColumns() {\n var columns = [];\n var articleVariants = [];\n\n _.forEach(vm.stockTransactions, function(stockTransaction) {\n articleVariants.push(stockTransaction.articleVariant);\n });\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(articleVariants, function(variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function(newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function loadGridData() {\n var variantRows = _.groupBy(vm.stockTransactions, function(stockTransaction) {\n return stockTransaction.articleVariant.variantDetail1.id;\n });\n\n var stockTransactions = _.sortBy(vm.stockTransactions, 'accountingDate');\n\n _.forEach(stockTransactions, function (stockTransaction) {\n var r = {};\n\n r.transactionDate = stockTransaction.transactionDate.toString().replace('T', ' ');\n r.accountingDate = stockTransaction.accountingDate.toString().replace('T', ' ');\n r.transactionType = stockTransaction.stockTransactionType.stockTransactionTypeName;\n r[stockTransaction.articleVariant.variantDetail2.variantDetailName] = stockTransaction.quantity;\n\n rowData.push(r);\n });\n\n rowCollection.refresh();\n }\n}\n\nangular\n .module('scannerinventorying.inventory.articledetails', [])\n .config(stateConfig)\n .controller('ArticleDetailsController', ArticleDetailsController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.scannerinventorying.inventory', {\n url: '/{inventoryId}',\n templateUrl: 'main/stock/scannerinventorying/inventory/inventory.tpl.html',\n controller: 'InventoryController as vm',\n resolve: {\n inventoryHead: inventoryHeadResolver\n }\n });\n}\n\n// @ngInject\nfunction inventoryHeadResolver($stateParams, InventoryingApiService) {\n return InventoryingApiService.getHeadInfoById($stateParams.inventoryId);\n}\n\n// @ngInject\nfunction InventoryController($stateParams, $state, inventoryHead, InventoryingApiService, inventoryCorrectionsDialogService, ResourcesService,\n loadSpinnerService, ArticleStocksHistoryDialogService, confirmationDialogService, printInventoryReportDialogService, ToasterService, $translate, $rootScope) {\n var vm = this;\n\n //Properties\n var inventoryId = $stateParams.inventoryId; \n var totalsGrid = {};\n var detailsGrid = {};\n var summarizationGrid = {};\n var currentItemGroupId = 0;\n var inventoryRowsGrid = {};\n var inventoryOverviewGrid = {};\n var inventoryFileErrorGrid = {};\n var currentlyChosenMainGroupId = 0;\n var currentlyChosenBrandId = 0;\n vm.currentUserClaims = $rootScope.currentUser.claims;\n vm.hasClaim = havePurchaseCostClaim();\n vm.uploadErrors = [];\n vm.inventoryFileErrors = [];\n vm.inventoryRows = [];\n vm.inventoryRowsAll = [];\n vm.autoAcceptLevel = 2;\n vm.displayLevel = 0;\n vm.totalValueThreshold = 500;\n vm.numberOfErrors = 0;\n vm.showAllErrors = false;\n vm.inventoryHead = inventoryHead.data;\n vm.inventoryHead.inventoryDate = vm.inventoryHead.inventoryDate.split(\"T\")[0];\n vm.itemGroupInventoryRows = {};\n vm.isShowingUploadForm = false;\n vm.filterChoice = {\n showUnapproved: false,\n showAll: true,\n showApproved: false\n };\n vm.itemGroupTotals = {\n theoreticalBalance: 0,\n inventoried: 0,\n difference: 0,\n differenceValue: 0\n };\n vm.inventoryRowTotals = {\n theoreticalBalance: 0,\n inventoried: 0,\n difference: 0,\n totalValue: 0\n };\n vm.overViewGridFilter = {\n mainGroups: false,\n brands: false\n };\n vm.totalsGridItems = [\n vm.inventoryRowTotals\n ];\n\n //Methods\n vm.showInventoryErrors = showInventoryErrors;\n vm.captureTotalsGrid = captureTotalsGrid;\n vm.captureDetailsGrid = captureDetailsGrid;\n vm.setCurrentItemGroup = setCurrentItemGroup;\n vm.approveItemGroup = approveItemGroup;\n vm.approveInventoryRow = approveInventoryRow;\n vm.expandArticlesGroups = expandArticlesGroups;\n vm.contractArticlesGroups = contractArticlesGroups;\n vm.openAnalyzeModal = openAnalyzeModal;\n vm.showUnApprovedItemGroups = showUnApprovedItemGroups;\n vm.showApprovedItemGroups = showApprovedItemGroups;\n vm.resetItemGroupsFiltering = resetItemGroupsFiltering;\n vm.showUnApprovedInventoryRows = showUnApprovedInventoryRows;\n vm.showApprovedInventoryRows = showApprovedInventoryRows;\n vm.resetInventoryRowsFiltering = resetInventoryRowsFiltering;\n vm.hasFileErrors = hasFileErrors;\n vm.captureInventoryRowsGrid = captureInventoryRowsGrid;\n vm.displayLevelChanged = displayLevelChanged;\n vm.autoAccept = autoAccept;\n vm.sendInventoryRowsForApproval = sendInventoryRowsForApproval;\n vm.captureSummarizationGrid = captureSummarizationGrid;\n vm.captureInventoryOverviewGrid = captureInventoryOverviewGrid;\n vm.captureInventoryFileErrorGrid = captureInventoryFileErrorGrid;\n vm.inventoryFileErrorGrid = inventoryFileErrorGrid;\n vm.fetchMainGroups = fetchMainGroups;\n vm.fetchBrands = fetchBrands;\n vm.getMainGroupInventoryRows = getMainGroupInventoryRows;\n vm.getBrandInventoryRows = getBrandInventoryRows;\n vm.uploadAndParseFile = uploadAndParseFile;\n vm.toggleUploadFormVisibility = toggleUploadFormVisibility;\n vm.acceptInventory = acceptInventory;\n vm.printInventoryReport = printInventoryReport;\n vm.loadItemGroupsInventoryRows = loadItemGroupsInventoryRows;\n vm.openCorrectionsModal = openCorrectionsModal;\n vm.loadInventoryFileErrors = loadInventoryFileErrors;\n\n activate();\n\n function activate() {\n fetchMainGroups();\n loadInventoryFileErrors();\n }\n\n function getMainGroupInventoryRows(mainGroupId) {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getMainGroupInventoryRows(inventoryId, mainGroupId).then(function(response) {\n\n vm.inventoryRows = response.data;\n vm.inventoryRowsAll = vm.inventoryRows;\n\n inventoryRowsGrid.itemsSource = vm.inventoryRows;\n inventoryRowsGrid.invalidate();\n recalculateInventoryRowsTotals();\n inventoryRowsGrid.collapseGroupsToLevel(vm.displayLevel);\n resetInventoryRowsFiltering();\n currentlyChosenMainGroupId = mainGroupId;\n }, function(error) {\n handleError(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getBrandInventoryRows(brandId) {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getBrandInventoryRows(inventoryId, brandId).then(function(response) {\n\n vm.inventoryRows = response.data;\n vm.inventoryRowsAll = response.data;\n\n inventoryRowsGrid.itemsSource = vm.inventoryRows;\n inventoryRowsGrid.invalidate();\n recalculateInventoryRowsTotals();\n inventoryRowsGrid.collapseGroupsToLevel(vm.displayLevel);\n resetInventoryRowsFiltering();\n currentlyChosenBrandId = brandId;\n }, function(error) {\n handleError(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function fetchMainGroups() {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getInventoryMainGroups(inventoryId).then(function(response) {\n inventoryOverviewGrid.itemsSource = _.sortBy(response.data, function(mainGroup) {\n return mainGroup.mainGroupCode;\n });\n\n _.forEach(inventoryOverviewGrid.columns, function(column) {\n if (column.binding === \"mainGroupDescription\") {\n column.width = \"2*\";\n } else if (column.binding === \"brandDescription\") {\n column.width = 0;\n }\n });\n\n inventoryOverviewGrid.invalidate();\n\n vm.overViewGridFilter.mainGroups = true;\n vm.overViewGridFilter.brands = false;\n }, function(error) {\n handleError(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function fetchBrands() {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getInventoryBrands(inventoryId).then(function(response) {\n inventoryOverviewGrid.itemsSource = _.sortBy(response.data, function(brand) {\n return brand.brandCode;\n });\n\n _.forEach(inventoryOverviewGrid.columns, function(column) {\n if (column.binding === \"mainGroupDescription\") {\n column.width = 0;\n } else if (column.binding === \"brandDescription\") {\n column.width = \"2*\";\n }\n });\n\n inventoryOverviewGrid.invalidate();\n\n vm.overViewGridFilter.mainGroups = false;\n vm.overViewGridFilter.brands = true;\n }, function(error) {\n handleError(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function reFetchOverViewGridData() {\n if (vm.overViewGridFilter.mainGroups) {\n fetchMainGroups();\n } else if (vm.overViewGridFilter.brands) {\n fetchBrands();\n }\n }\n\n function reFetchInventoryRowsGridData() {\n if (vm.overViewGridFilter.mainGroups) {\n getMainGroupInventoryRows(currentlyChosenMainGroupId);\n } else if (vm.overViewGridFilter.brands) {\n getBrandInventoryRows(currentlyChosenBrandId);\n }\n }\n\n function showUnApprovedInventoryRows() {\n resetInventoryRowsFiltering();\n\n vm.inventoryRows = _.filter(vm.inventoryRows, function(inventoryRow) {\n return !inventoryRow.isApproved;\n });\n\n vm.filterChoice.showUnapproved = true;\n vm.filterChoice.showAll = false;\n\n inventoryRowsGrid.itemsSource = vm.inventoryRows;\n\n updateInventoryRowsGridGroupings();\n recalculateInventoryRowsTotals();\n\n inventoryRowsGrid.collapseGroupsToLevel(vm.displayLevel);\n }\n\n function captureInventoryFileErrorGrid(sender) {\n inventoryFileErrorGrid = sender;\n }\n\n function captureInventoryOverviewGrid(sender) {\n inventoryOverviewGrid = sender;\n inventoryOverviewGrid.allowMerging = 'Cells';\n inventoryOverviewGrid.columns[0].allowMerging = true;\n }\n\n function captureSummarizationGrid(sender) {\n summarizationGrid = sender;\n }\n\n function showApprovedInventoryRows() {\n resetInventoryRowsFiltering();\n\n vm.inventoryRows = _.filter(vm.inventoryRows, function(inventoryRow) {\n return inventoryRow.isApproved;\n });\n\n vm.filterChoice.showApproved = true;\n vm.filterChoice.showAll = false;\n\n inventoryRowsGrid.itemsSource = vm.inventoryRows;\n\n updateInventoryRowsGridGroupings();\n recalculateInventoryRowsTotals();\n\n inventoryRowsGrid.collapseGroupsToLevel(vm.displayLevel);\n }\n\n function resetInventoryRowsFiltering() {\n vm.inventoryRows = vm.inventoryRowsAll;\n\n vm.filterChoice.showAll = true;\n vm.filterChoice.showUnapproved = false;\n vm.filterChoice.showApproved = false;\n\n inventoryRowsGrid.itemsSource = vm.inventoryRows;\n\n updateInventoryRowsGridGroupings();\n recalculateInventoryRowsTotals();\n\n inventoryRowsGrid.collapseGroupsToLevel(vm.displayLevel);\n }\n\n function expandArticlesGroups() {\n detailsGrid.collapseGroupsToLevel(detailsGrid.collectionView.groupDescriptions.length);\n }\n\n function displayLevelChanged() {\n console.log(\"InventoryRowsGrid:\");\n console.log(inventoryRowsGrid);\n\n inventoryRowsGrid.collapseGroupsToLevel(vm.displayLevel);\n }\n\n function sendInventoryRowsForApproval() {\n var inventoryRows = [];\n\n _.forEach(vm.inventoryRows, function(invRow) {\n if (invRow.isApproved) {\n inventoryRows.push(invRow);\n }\n });\n\n console.log(\"InventoryRows to send for approval:\");\n console.log(inventoryRows);\n\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.approveInventoryRows(inventoryId, inventoryRows).then(function(response) {\n console.log(\"InventoryRows approved.\");\n reFetchOverViewGridData();\n }, function(error) {\n handleError(error);\n }).finally(function () {\n loadSpinnerService.stop('mainSpinner');\n });\n\n }\n\n function autoAccept() {\n var groupedInventoryRows = {};\n var inventoryRowsToAccept = [];\n var autoAcceptLevel = parseInt(vm.autoAcceptLevel);\n\n var mainGroupNames;\n if (autoAcceptLevel === 0) {\n // Grouping\n groupedInventoryRows = _.groupBy(vm.inventoryRows, function(inventoryRow) {\n return (vm.overViewGridFilter.mainGroups) ? inventoryRow.mainGroupDescription : inventoryRow.brandDescription;\n });\n\n mainGroupNames = Object.keys(groupedInventoryRows);\n\n // Summarization\n _.forEach(mainGroupNames, function(mgName) {\n var invRows = groupedInventoryRows[mgName];\n var sum = _.reduce(invRows, function(memo, invRow) { return memo + invRow.totalValue; }, 0);\n if (Math.abs(sum) < vm.totalValueThreshold) {\n _.forEach(invRows, function(invRow) { inventoryRowsToAccept.push(invRow); });\n }\n });\n } else if (autoAcceptLevel === 1) {\n // Grouping\n groupedInventoryRows = _.groupBy(vm.inventoryRows, function(inventoryRow) {\n return (vm.overViewGridFilter.mainGroups) ? inventoryRow.mainGroupDescription : inventoryRow.brandDescription;\n });\n\n mainGroupNames = Object.keys(groupedInventoryRows);\n _.forEach(mainGroupNames, function(mgName) {\n groupedInventoryRows[mgName] = _.groupBy(groupedInventoryRows[mgName], function(inventoryRow) {\n return (vm.overViewGridFilter.mainGroups) ? inventoryRow.brandDescription : inventoryRow.mainGroupDescription;\n });\n });\n\n // Summarization\n _.forEach(mainGroupNames, function(mainGroupName) {\n _.forEach(groupedInventoryRows[mainGroupName], function(inventoryRows) {\n var sum = _.reduce(inventoryRows, function(memo, invRow) { return memo + invRow.totalValue; }, 0);\n if (Math.abs(sum) < vm.totalValueThreshold) {\n _.forEach(inventoryRows, function(invRow) { inventoryRowsToAccept.push(invRow); });\n }\n });\n });\n } else if (autoAcceptLevel === 2) {\n // Grouping\n groupedInventoryRows = _.groupBy(vm.inventoryRows, function(inventoryRow) {\n return (vm.overViewGridFilter.mainGroups) ? inventoryRow.mainGroupDescription : inventoryRow.brandDescription;\n });\n\n mainGroupNames = Object.keys(groupedInventoryRows);\n _.forEach(mainGroupNames, function(mgName) {\n groupedInventoryRows[mgName] = _.groupBy(groupedInventoryRows[mgName], function(inventoryRow) {\n return (vm.overViewGridFilter.mainGroups) ? inventoryRow.brandDescription : inventoryRow.mainGroupDescription;\n });\n });\n\n _.forEach(mainGroupNames, function(mgName) {\n var brandNames = Object.keys(groupedInventoryRows[mgName]);\n _.forEach(brandNames, function(bName) {\n groupedInventoryRows[mgName][bName] = _.groupBy(groupedInventoryRows[mgName][bName], function(inventoryRow) {\n return inventoryRow.alternativeArticleNumber + inventoryRow.articleName;\n });\n });\n });\n\n // Summarization\n _.forEach(mainGroupNames, function(mgName) {\n var brandNames = Object.keys(groupedInventoryRows[mgName]);\n _.forEach(brandNames, function(brandName) {\n var articleNames = Object.keys(groupedInventoryRows[mgName][brandName]);\n _.forEach(articleNames, function(articleName) {\n\n var invRows = groupedInventoryRows[mgName][brandName][articleName];\n var sum = _.reduce(invRows, function(memo, invRow) { return memo + invRow.totalValue; }, 0);\n if (Math.abs(sum) < vm.totalValueThreshold) {\n _.forEach(invRows, function(invRow) { inventoryRowsToAccept.push(invRow); });\n }\n });\n });\n });\n }\n\n console.log(\"groupedInventoryRows:\");\n console.log(groupedInventoryRows);\n\n console.log(\"InventoryRowsToAccept:\");\n console.log(inventoryRowsToAccept);\n\n _.forEach(inventoryRowsToAccept, function(invRow) {\n invRow.isApproved = true;\n invRow.isAutoApproved = true;\n });\n\n inventoryRowsGrid.invalidate();\n\n // Send the rows immediately.\n sendInventoryRowsForApproval();\n }\n\n function recalculateInventoryRowsTotals() {\n vm.inventoryRowTotals.inventoried = 0;\n vm.inventoryRowTotals.theoreticalBalance = 0;\n vm.inventoryRowTotals.difference = 0;\n vm.inventoryRowTotals.totalValue = 0;\n\n _.forEach(vm.inventoryRows, function(invRow) {\n vm.inventoryRowTotals.inventoried += invRow.quantity;\n vm.inventoryRowTotals.theoreticalBalance += invRow.theoreticalStockBalance;\n vm.inventoryRowTotals.difference += invRow.stockDifference;\n vm.inventoryRowTotals.totalValue += invRow.totalValue;\n });\n\n\n }\n\n function recalculateItemGroupTotals() {\n vm.itemGroupTotals.theoreticalBalance = 0;\n vm.itemGroupTotals.inventoried = 0;\n vm.itemGroupTotals.difference = 0;\n vm.itemGroupTotals.differenceValue = 0;\n\n _.forEach(vm.itemGroups, function(itemGroup) {\n vm.itemGroupTotals.theoreticalBalance += itemGroup.summarizedTransactionQuantity;\n vm.itemGroupTotals.inventoried += itemGroup.summarizedInventoryRowsQuantity;\n vm.itemGroupTotals.difference += itemGroup.difference;\n vm.itemGroupTotals.differenceValue += itemGroup.summarizedCostPrice;\n });\n }\n\n function setFilterChoiceFalse() {\n vm.filterChoice.showUnapproved = false;\n vm.filterChoice.showAll = false;\n vm.filterChoice.showApproved = false;\n }\n\n function contractArticlesGroups() {\n detailsGrid.collapseGroupsToLevel(0);\n }\n\n function captureInventoryRowsGrid(sender) {\n inventoryRowsGrid = sender;\n inventoryRowsGrid.collapseGroupsToLevel(0);\n\n console.log(\"inventoryRowsGrid\");\n console.log(inventoryRowsGrid);\n\n recalculateInventoryRowsTotals();\n }\n\n function updateInventoryRowsGridGroupings() {\n inventoryRowsGrid.groupHeaderFormat = '{value} ({count})';\n\n var mainGroupGrouping = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.mainGroupDescription;\n });\n var brandGrouping = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.brandDescription;\n });\n var articleGrouping = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.alternativeArticleNumber + \" \" + item.articleName;\n });\n\n if (vm.overViewGridFilter.mainGroups) {\n inventoryRowsGrid.collectionView.groupDescriptions.push(mainGroupGrouping);\n inventoryRowsGrid.collectionView.groupDescriptions.push(brandGrouping);\n } else {\n inventoryRowsGrid.collectionView.groupDescriptions.push(brandGrouping);\n inventoryRowsGrid.collectionView.groupDescriptions.push(mainGroupGrouping);\n }\n\n var articleVariant1SortOrderSortDescription = new wijmo.collections.SortDescription(\"variantDetail1Name\", 'true');\n var articleVariant2SortOrderSortDescription = new wijmo.collections.SortDescription(\"variantDetail2SortOrder\", 'true');\n\n inventoryRowsGrid.collectionView.groupDescriptions.push(articleGrouping);\n\n inventoryRowsGrid.collectionView.sortDescriptions.push(articleVariant1SortOrderSortDescription);\n inventoryRowsGrid.collectionView.sortDescriptions.push(articleVariant2SortOrderSortDescription);\n\n inventoryRowsGrid.invalidate();\n inventoryRowsGrid.collectionView.refresh();\n }\n\n function showUnApprovedItemGroups() {\n resetItemGroupsFiltering();\n\n vm.itemGroups = _.filter(vm.itemGroups, function(itemGroup) {\n return !itemGroup.isApproved;\n });\n\n setFilterChoiceFalse();\n vm.filterChoice.showUnapproved = true;\n\n totalsGrid.itemsSource = vm.itemGroups;\n updateTotalsGridGroupings();\n recalculateItemGroupTotals();\n }\n\n function showApprovedItemGroups() {\n resetItemGroupsFiltering();\n\n vm.itemGroups = _.filter(vm.itemGroups, function(itemGroup) {\n return itemGroup.isApproved;\n });\n\n setFilterChoiceFalse();\n vm.filterChoice.showApproved = true;\n\n totalsGrid.itemsSource = vm.itemGroups;\n updateTotalsGridGroupings();\n recalculateItemGroupTotals();\n }\n\n function resetItemGroupsFiltering() {\n vm.itemGroups = vm.allItemGroups;\n\n setFilterChoiceFalse();\n vm.filterChoice.showAll = true;\n\n totalsGrid.itemsSource = vm.itemGroups;\n updateTotalsGridGroupings();\n recalculateItemGroupTotals();\n }\n\n function approveItemGroup(itemGroup) {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.approveItemGroupRelatedRows(inventoryId, itemGroup.id).then(function(response) {\n console.log(\"Success\");\n vm.loadItemGroupsInventoryRows(itemGroup.id);\n itemGroup.isApproved = true;\n totalsGrid.invalidate();\n }, function(error) {\n handleError(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function openAnalyzeModal(articleId, inventoryId, variantDetail1Id) {\n ArticleStocksHistoryDialogService.showDialog(articleId, inventoryId, variantDetail1Id);\n }\n\n function approveInventoryRow(inventory) {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.approveInventoryRow(inventoryId, inventory.id).then(function() {\n console.log(\"Success. Now set the isApproved of the object\");\n inventory.isApproved = true;\n detailsGrid.invalidate();\n }, function(error) {\n handleError(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function loadItemGroupsInventoryRows(itemGroupId) {\n InventoryingApiService.getInventoryRowsRelatedToItemGroup(inventoryId, itemGroupId).then(function(response) {\n console.log(\"Got the following inventoryRows related to the itemGroup:\");\n console.log(response);\n vm.itemGroupInventoryRows = response.data;\n }, function(error) {\n handleError(error);\n });\n }\n\n function hasFileErrors() {\n return vm.inventoryFileErrors.length > 0;\n }\n\n function showInventoryErrors() {\n vm.showAllErrors = !vm.showAllErrors;\n if (vm.showAllErrors) {\n vm.loadInventoryFileErrors();\n }\n }\n\n function loadInventoryFileErrors() {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getInventoryFileErrors(inventoryId).then(function(response) {\n console.log(\"Got the following inventory file upload errors:\");\n console.log(response);\n vm.numberOfErrors = response.data.errorRows.length;\n vm.inventoryFileErrors = response.data.errorRows;\n inventoryFileErrorGrid.itemsSource = response.data.errorRows;\n inventoryFileErrorGrid.invalidate();\n }, function(error) {\n handleError(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function setCurrentItemGroup(itemGroupId) {\n currentItemGroupId = itemGroupId;\n }\n\n function openCorrectionsModal(articleId) {\n console.log(\"openCorrectionsModal with articleId: \" + articleId + \" and inventoryId: \" + inventoryId);\n inventoryCorrectionsDialogService.showDialog(inventoryId, articleId).then(function(result) {\n if (result) {\n vm.loadItemGroupsInventoryRows(currentItemGroupId);\n reFetchOverViewGridData();\n updateLocalInventoryRows(result.data);\n }\n });\n }\n\n function updateLocalInventoryRows(inventoryRows) {\n _.forEach(inventoryRows, function(inventoryRow) {\n var inventoryRowToUpdate = _.find(vm.inventoryRowsAll, function(invRow) {\n return invRow.id === inventoryRow.id;\n });\n inventoryRowToUpdate.quantity = inventoryRow.quantity;\n inventoryRowToUpdate.stockDifference = inventoryRowToUpdate.quantity - inventoryRowToUpdate.theoreticalStockBalance;\n });\n\n inventoryRowsGrid.invalidate();\n }\n\n function captureTotalsGrid(sender) {\n totalsGrid = sender;\n totalsGrid.itemsSource = vm.itemGroups;\n\n updateTotalsGridGroupings();\n\n showUnApprovedItemGroups();\n recalculateItemGroupTotals();\n }\n\n function updateTotalsGridGroupings() {\n totalsGrid.groupHeaderFormat = '{value} ({count})';\n\n var mainGroupDescription = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.itemGroup.mainGroup.mainGroupDescription;\n });\n\n totalsGrid.collectionView.groupDescriptions.push(mainGroupDescription);\n\n totalsGrid.collapseGroupsToLevel(0);\n }\n\n function captureDetailsGrid(sender) {\n detailsGrid = sender;\n }\n\n function setDetailsGridData() {\n detailsGrid.itemsSource = vm.itemGroupInventoryRows;\n detailsGrid.groupHeaderFormat = '{value} ({count})';\n\n var articleNameDescription = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.article.articleName;\n });\n var variant1Description = new wijmo.collections.PropertyGroupDescription('', function(item, prop) {\n return item.articleVariant.variantDetail1.variantDetailName;\n });\n\n detailsGrid.collectionView.groupDescriptions.push(articleNameDescription);\n detailsGrid.collectionView.groupDescriptions.push(variant1Description);\n\n detailsGrid.invalidate();\n detailsGrid.collectionView.refresh();\n }\n\n function uploadAndParseFile() {\n vm.uploadErrors = [];\n var fileInputDomElement = $(\"#inventoryingFileUploadElement\")[ 0 ];\n var file = fileInputDomElement.files[0];\n var reader = new FileReader();\n\n reader.onload = onLoadFunction;\n\n reader.readAsArrayBuffer(file);\n\n function onLoadFunction(e) {\n try {\n\n var data = \"\";\n var bytes = new Uint8Array(e.target.result);\n var length = bytes.byteLength;\n for (var i = 0; i < length; i++) {\n data += String.fromCharCode(bytes[i]);\n }\n\n var sendData = {\n fileName: file.name,\n data: data\n };\n\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.uploadInventoryFile(inventoryId, sendData).then(function(response) {\n console.log(response);\n $state.go($state.current, {inventoryId: inventoryId}, {reload: true});\n }, function(error) {\n console.log(error);\n vm.uploadErrors.push({message: \"Could not add file.\"});\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n\n } catch (error) {\n console.log(error);\n } finally {\n }\n }\n }\n\n function acceptInventory() {\n var message = $translate.instant('inventory.confirmAccept');\n confirmationDialogService.showDialog(message).then(function(response) {\n if (response) {\n InventoryingApiService.queueInventoryForFinalization(inventoryId).then(function(response) {\n $state.go($state.current, {inventoryId: inventoryId}, {reload: true});\n }, function(error) {\n console.log(error);\n });\n }\n });\n }\n\n function toggleUploadFormVisibility() {\n vm.isShowingUploadForm = !vm.isShowingUploadForm;\n inventoryFileErrorGrid.invalidate();\n }\n\n function printInventoryReport() {\n printInventoryReportDialogService.showDialog().then(function (result) {\n if (result.result === true) {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getInventoryReport(inventoryId, result.languageCode, result.printFormat).then(function(response) {\n\n }, function(error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n });\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n function havePurchaseCostClaim(){\n if(vm.currentUserClaims.seepurchasecost === undefined){\n return false\n }\n\n if(!vm.currentUserClaims.seepurchasecost.read){\n return false\n }\n\n return true\n }\n\n}\n\nangular.module('scannerinventorying.inventory', ['scannerinventorying.inventory.articledetails'])\n .config(stateConfig)\n .controller('InventoryController', InventoryController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.scannerinventorying', {\n url: '/scanner',\n views: {\n \"wideColumnView@stock\": {\n templateUrl: 'main/stock/scannerinventorying/scannerinventorying.tpl.html',\n controller: 'ScannerInventoryingController as vm'\n }\n },\n controller: 'ScannerInventoryingController as vm'\n });\n}\n\n// @ngInject\nfunction ScannerInventoryingController($state, loadSpinnerService, InventoryingApiService, NewInventoryDialogService, $rootScope) {\n var vm = this;\n var ordersGrid = {};\n\n vm.currentPage = 1;\n vm.itemsPerPage = 15;\n vm.totalItems = 0;\n vm.searchTerm = \"\";\n vm.previouslySelectedInventoryId = 0;\n\n vm.orders = [];\n\n vm.searchTermChange = searchTermChange;\n vm.loadOrders = loadOrders;\n vm.openNewInventoryModal = openNewInventoryModal;\n vm.uploadAndParseFile = uploadAndParseFile;\n\n vm.isHidingInventoriesGrid = false;\n vm.hideInventoriesGrid = hideInventoriesGrid;\n vm.unHideInventoriesGrid = unHideInventoriesGrid;\n\n loadOrders({ id : parseInt($state.params.inventoryId) });\n activate();\n\n function activate() {\n $rootScope.$on('NavigatingTo', function(event, response) {\n if (response === 'stock.scannerinventorying') {\n loadOrders();\n }\n });\n }\n\n function loadOrders(inventoryItem) {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getAll(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function getAllOrders(response) {\n vm.orders = response.data;\n vm.totalItems = response.totalItems;\n formatPlannedDeliveryDate(vm.orders);\n\n if (inventoryItem && inventoryItem.id) {\n hideInventoriesGrid(_.find(vm.orders, function(o) { return o.id === inventoryItem.id; }));\n $state.go('stock.scannerinventorying.inventory', { inventoryId: inventoryItem.id });\n }\n }).finally(function afterGetAllOrders() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n\n function uploadAndParseFile() {\n var orderId = ordersGrid.itemsSource[ordersGrid.selection.row].id;\n InventoryingApiService.uploadParseFile(orderId);\n }\n\n\n function formatPlannedDeliveryDate(orders) {\n for (var i = 0; i < orders.length; i++) {\n var order = orders[i];\n order.inventoryDate = order.inventoryDate.split('T')[0];\n }\n }\n\n function openNewInventoryModal() {\n NewInventoryDialogService.showDialog().then(function(result) {\n if (result && result.success) {\n loadOrders(result.inventoryItem);\n }\n });\n }\n\n function searchTermChange() {\n vm.isHidingInventoriesGrid = false;\n loadOrders();\n }\n\n function hideInventoriesGrid(item) {\n vm.previouslySelectedInventoryId = 0;\n vm.orders = [];\n vm.orders.push(item);\n vm.isHidingInventoriesGrid = true;\n }\n\n function unHideInventoriesGrid() {\n vm.previouslySelectedInventoryId = parseInt($state.params.inventoryId);\n vm.isHidingInventoriesGrid = false;\n $state.go('stock.scannerinventorying');\n loadOrders();\n }\n}\n\nangular.module('stock.scannerinventorying', ['scannerinventorying.inventory'])\n .config(stateConfig)\n .controller('ScannerInventoryingController', ScannerInventoryingController);\n","// @ngInject\nfunction StockApiService(ResourcesService, $window, DSHttpAdapter, $q, DS) {\n\n var endpoint = 'stock';\n\n return {\n getProductStock: ResourcesService.apiFactory.get(endpoint + '/productstock'),\n getProducts: getProducts,\n getProduct: ResourcesService.apiFactory.get(endpoint + '/products'),\n getLocation: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getCompaniesBrief: ResourcesService.apiFactory.get(endpoint + '/companiesbrief'),\n getFilteredLocations: getFilteredLocations,\n getFilteredBrands: getFilteredBrands,\n getMainGroups: ResourcesService.apiFactory.get(endpoint + '/maingroups'),\n getInventoryTypes: ResourcesService.apiFactory.get(endpoint + '/inventorytypes'),\n getBrands: ResourcesService.apiFactory.get(endpoint + '/brands'),\n getCollections: ResourcesService.apiFactory.get(endpoint + '/collections'),\n getStockTransactionsForArticleAndLocation: ResourcesService.apiFactory.get(endpoint + '/stocktransactions'),\n saveProductInventory: ResourcesService.apiFactory.save(endpoint + '/productinventory'),\n downloadStockValueReport: downloadStockValueReport,\n downloadSoldStockReport: downloadSoldStockReport,\n downloadStockPickingList: downloadStockPickingList,\n downloadSaleThroughputReport: downloadSaleThroughputReport,\n downloadSaleThroughputReportPdf: downloadSaleThroughputReportPdf,\n getDepartments: ResourcesService.apiFactory.get(endpoint + '/departments')\n };\n\n function downloadStockPickingList(request) {\n var deferred = $q.defer();\n\n var params = {\n locationId: request.locationId,\n startDate: request.startDate,\n endDate: request.endDate,\n sortOrder1: request.sortOrder1,\n sortOrder2: request.sortOrder2,\n sortOrder3: request.sortOrder3,\n showCollection: request.showCollection,\n showDepartment: request.showDepartment,\n grouping: request.grouping,\n includeArticleNumber: request.includeArticleNumber,\n includeStorageItems: request.includeStorageItems,\n includeIsPhotographed: request.includeIsPhotographed,\n includeZeroAndNegativeQuantity: request.includeZeroAndNegativeQuantity,\n portraitOrientation: request.portraitOrientation,\n showRestOfLocations: request.showRestOfLocations\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'stock/pickinglist', { params: params, responseType: 'arraybuffer' }).then(function(response) {\n //If 204 the call returned no result/empty list don't return a downloadable file\n if (response && response.status === 204) {\n deferred.resolve(response);\n return deferred.promise;\n }\n\n //\"attachment; filename=stockpickinglist20190110.pdf\"\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'stockpickinglist.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadSaleThroughputReport(reportParameters) {\n var url = $window.URL || $window.webkitURL;\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/salethroughputreport', reportParameters, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], { type: 'text/csv' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'SaleThroughput.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadSaleThroughputReportPdf(reportParameters) {\n var url = $window.URL || $window.webkitURL;\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/salethroughputreportpdf', reportParameters, { responseType: 'arraybuffer' }).then(function (response) {\n var blob = new Blob([response.data], { type: 'application/pdf' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'SaleThroughput.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProducts(page, filter, pageSize, companyId, showInactiveArticles, matchEntireSearchTerm) {\n\n var params = {\n filter: '',\n page: 1,\n pageSize: 20\n };\n\n if (page && page > 1) {\n params.page = page;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.filter = filter;\n }\n\n if (companyId) {\n params.companyId = companyId;\n }\n\n if (showInactiveArticles) {\n params.showInactiveArticles = showInactiveArticles;\n }\n\n if(matchEntireSearchTerm !== undefined) {\n params.matchEntireSearchTerm = matchEntireSearchTerm;\n }\n\n var args = { params: params };\n\n return ResourcesService.apiFactory.get(endpoint + '/products')(args);\n }\n\n function downloadStockValueReport(reportParameters) {\n var url = $window.URL || $window.webkitURL;\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/stockvaluereport', reportParameters, { responseType: 'arraybuffer' }).then(function (response) {\n //\"attachment; filename=stockpickinglist20190110.pdf\"\n var blob = new Blob([response.data], { type: 'text/csv' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'StockValueReport.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadSoldStockReport(reportParameters) {\n var url = $window.URL || $window.webkitURL;\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/soldStockReport', reportParameters, { responseType: 'arraybuffer' }).then(function (response) {\n //\"attachment; filename=stockpickinglist20190110.pdf\"\n var blob = new Blob([response.data], { type: 'text/csv' });\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'SoldStockReport.csv');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var downloadUrl = url.createObjectURL(blob);\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFilteredLocations() {\n var args = { params: {filterOnUser: true} };\n return ResourcesService.apiFactory.get(endpoint + '/locations')(args);\n }\n\n function getFilteredBrands() {\n var args = { params: {filterOnUser: true} };\n return ResourcesService.apiFactory.get(endpoint + '/brands')(args);\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=StockPickingList20190110.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([-\\w\\d\\s]){1,}\\.(pdf|csv|xls){1,}/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('stock.api', [])\n .factory('StockApiService', StockApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock', {\n url: '/stock',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/stock/stock.tpl.html',\n controller: 'MainStockController as vm'\n });\n}\n\n// @ngInject\nfunction MainStockController() {\n var vm = this;\n}\n\nangular.module('main.stock', ['stock.api', 'inventorying.api', 'stock.articles', 'stock.scannerinventorying', 'stock.stockpickinglist', 'stock.stockValueReports', 'stock.soldStockReports', 'stock.saleThroughputReports'])\n .config(stateConfig)\n .controller('MainStockController', MainStockController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stocklogistics.articletransfer', {\n url: '/articletransfer',\n templateUrl: 'main/stocklogistics/articletransfer/articletransfer.tpl.html',\n controller: 'ArticleTransferController as vm',\n resolve: {\n locations: locationsResolver,\n collections: collectionsResolver\n }\n });\n}\n\n// @ngInject\nfunction locationsResolver(StockLogisticsApiService) {\n return StockLogisticsApiService.getLocations();\n}\n\n// @ngInject\nfunction collectionsResolver(StockLogisticsApiService) {\n return StockLogisticsApiService.getArticleCollections();\n}\n\n// @ngInject\nfunction ArticleTransferController($scope, $translate, $state, $interval, $timeout, AuthService, ProductsApiService, loadSpinnerService,\n OrdersApiService, locations, collections, ToasterService, StockLogisticsApiService) {\n var vm = this;\n\n //Properties\n var articlesGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n var locationsGrid = {};\n var locationsCollection = new wijmo.collections.CollectionView(locations);\n var stocksData = [];\n vm.searchTerm = \"\";\n vm.numberOfResults = 9999;\n vm.articleVariants = [];\n vm.locations = locations;\n vm.visibleLocations = [];\n vm.minDiffToCreateSuggestion = 2;\n vm.lowerThresholdQuantity = 1;\n vm.moveMaximum = 1;\n vm.includeIsCurrent = true;\n vm.adjustWithStockValues = false;\n vm.minimumCostPriceThreshold = 100;\n vm.excludeArticlesWithOrderingPoints = false;\n vm.collections = [];\n vm.selectedCollection = {};\n vm.tabSelection = {\n search: true,\n locations: false\n };\n\n //Methods\n vm.captureArticlesGrid = captureArticlesGrid;\n vm.captureLocationsGrid = captureLocationsGrid;\n vm.searchArticles = searchArticles;\n vm.insertStockQuantities = insertStockQuantities;\n vm.fetchQuantityInTransitData = fetchQuantityInTransitData;\n vm.submitAndCreateOrders = submitAndCreateOrders;\n vm.validateGridRow = validateGridRow;\n vm.preventChangingOfIsOkValue = preventChangingOfIsOkValue;\n vm.changeToSearchTab = changeToSearchTab;\n vm.changeToLocationsTab = changeToLocationsTab;\n vm.changeToRulesTab = changeToRulesTab;\n vm.selectAllLocations = selectAllLocations;\n vm.selectNoLocations = selectNoLocations;\n vm.canAccess = AuthService.canAccess;\n vm.canSubmitAndCreateOrders = canSubmitAndCreateOrders;\n vm.hasRowData = hasRowData;\n\n activate();\n\n function activate() {\n\n var counter = 0;\n _.forEach(vm.locations, function(location) {\n counter++;\n location.isVisible = true;\n location.distributionWeight = 1;\n location.locationPriority = counter;\n location.outDeliverable = true;\n location.inDeliverable = true;\n });\n setVisibleLocations();\n\n // Fallback if the translation wasn't ready when we tried to translate last time. (happens sometimes\n // when the user refreshes the page while in this controller/view)\n var updatePromise = $interval(function() {\n vm.collections[0].collectionDescription = $translate.instant('common.all');\n $interval.cancel(updatePromise);\n }, 5000);\n\n vm.collections.push({id: 0, collectionDescription: $translate.instant('common.all')});\n _.forEach(collections, function(collection) {\n if (collection.isArticleSeason) {\n vm.collections.push(collection);\n }\n });\n vm.selectedCollection = vm.collections[0];\n }\n\n function hasRowData() {\n return rowData && rowData.length > 0;\n }\n\n function captureArticlesGrid(s) {\n articlesGrid = s;\n articlesGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n itemsSource: rowCollection\n });\n\n articlesGrid.itemFormatter = function(panel, rowNum, colNum, cell) {\n var regularCellType = wijmo.grid.CellType.Cell;\n\n if (panel.cellType === regularCellType) {\n var relatedDataRow = rowData[rowNum];\n var quantityValues = [];\n var transferQuantityValues = [];\n var locationNumbers = [];\n var locationIds = [];\n _.forEach(vm.visibleLocations, function(location) {\n quantityValues.push(relatedDataRow[location.id]);\n\n var transferQuantityValue = relatedDataRow[location.id + 'Difference'];\n if (transferQuantityValue !== undefined && !_.isNumber(transferQuantityValue)) {\n transferQuantityValue = parseInt(transferQuantityValue);\n }\n transferQuantityValues.push(transferQuantityValue);\n\n locationNumbers.push(location.locationNumber);\n locationIds.push(location.id);\n });\n var maxValue = _.max(quantityValues);\n var minValue = _.min(quantityValues);\n\n var transferQuantitySum = _.sum(transferQuantityValues);\n var fromLocationCount = 0;\n _.forEach(transferQuantityValues, function(num) {\n if (num < 0) {\n fromLocationCount += 1;\n }\n });\n\n var col = panel.columns[colNum];\n\n var currentQuantityCellValue = relatedDataRow[col.binding];\n\n var columnBindingIsLocationId = _.some(locationIds, function(locationId) {\n return locationId.toString() === col.binding;\n });\n var columnHeaderIsLocationNumber = _.some(locationNumbers, function(locationNumber) {\n return locationNumber === col.header;\n });\n var columnBindingIsLocationNumberAndDiffMarker = _.some(locationIds, function(locationId) {\n return locationId.toString() + 'Difference' === col.binding;\n });\n\n if (columnBindingIsLocationId && columnHeaderIsLocationNumber) {\n // cell is currentStockCell\n if (minValue !== undefined && currentQuantityCellValue === minValue) {\n cell.style.color = \"#000000\";\n cell.style.backgroundColor = \"#f7a7a7\";\n } else if (maxValue !== undefined && currentQuantityCellValue === maxValue) {\n cell.style.color = \"#000000\";\n cell.style.backgroundColor = \"#93e0a5\";\n } else {\n cell.style.color = \"\";\n cell.style.backgroundColor = \"\";\n }\n } else if (columnBindingIsLocationNumberAndDiffMarker && columnHeaderIsLocationNumber) {\n // cell is transferSuggestionCell\n if (transferQuantitySum !== undefined && transferQuantitySum !== \"\" && (transferQuantitySum !== 0 || fromLocationCount > 1)) {\n cell.style.color = \"#000000\";\n cell.style.backgroundColor = \"#f7a7a7\";\n } else {\n cell.style.color = \"\";\n cell.style.backgroundColor = \"\";\n }\n }\n }\n };\n }\n\n function captureLocationsGrid(s) {\n locationsGrid = s;\n locationsGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.None,\n itemsSource: locationsCollection\n });\n }\n\n function generateArtilcesGridColumns() {\n articlesGrid.columns.clear();\n\n var altArtNumberColumn = new wijmo.grid.Column();\n altArtNumberColumn.binding = 'alternativeArticleNumberAndArticleName';\n altArtNumberColumn.header = $translate.instant('article.article');\n altArtNumberColumn.allowSorting = false;\n altArtNumberColumn.width = 200;\n altArtNumberColumn.isReadOnly = true;\n articlesGrid.columns.push(altArtNumberColumn);\n\n var variantDetail1Column = new wijmo.grid.Column();\n variantDetail1Column.binding = 'variantDetail1.variantDetailName';\n variantDetail1Column.header = $translate.instant('article.variantdetail1');\n variantDetail1Column.allowSorting = false;\n variantDetail1Column.width = 100;\n variantDetail1Column.isReadOnly = true;\n articlesGrid.columns.push(variantDetail1Column);\n\n var variantDetail2Column = new wijmo.grid.Column();\n variantDetail2Column.binding = 'variantDetail2.variantDetailName';\n variantDetail2Column.header = $translate.instant('article.variantdetail2');\n variantDetail2Column.allowSorting = false;\n variantDetail2Column.width = 50;\n variantDetail2Column.isReadOnly = true;\n articlesGrid.columns.push(variantDetail2Column);\n\n _.forEach(vm.locations, function(location) {\n if (location.isVisible) {\n var locationColumn = new wijmo.grid.Column();\n locationColumn.binding = location.id.toString();\n locationColumn.header = location.locationNumber;\n locationColumn.allowSorting = false;\n locationColumn.width = 40;\n locationColumn.isReadOnly = true;\n articlesGrid.columns.push(locationColumn);\n }\n });\n\n var checkboxColumn = new wijmo.grid.Column();\n checkboxColumn.binding = 'isOk';\n checkboxColumn.header = $translate.instant('common.ok');\n checkboxColumn.allowSorting = false;\n checkboxColumn.width = 50;\n checkboxColumn.isReadOnly = false;\n articlesGrid.columns.push(checkboxColumn);\n\n _.forEach(vm.locations, function(location) {\n if (location.isVisible) {\n var locationColumn = new wijmo.grid.Column();\n locationColumn.binding = location.id + \"\" + \"Difference\";\n locationColumn.header = location.locationNumber;\n locationColumn.allowSorting = false;\n locationColumn.width = 40;\n locationColumn.isReadOnly = false;\n articlesGrid.columns.push(locationColumn);\n }\n });\n\n articlesGrid.invalidate();\n }\n\n function generateArticlesRowData() {\n rowData.length = 0;\n _.forEach(vm.articleVariants, function(articleVariant) {\n articleVariant.isOk = false;\n rowData.push(articleVariant);\n });\n\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function searchArticles() {\n if (vm.searchTerm.length < 3 && (!AuthService.canAccess('article', 'readList') && !AuthService.canAccess('article', 'read'))) {\n return;\n }\n\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.getAllArticleVariants(0, vm.searchTerm, vm.numberOfResults, vm.selectedCollection.id).then(function (response) {\n vm.articleVariants = response.data;\n\n _.forEach(vm.articleVariants, function(articleVariant) {\n articleVariant['alternativeArticleNumberAndArticleName'] = articleVariant.article.alternativeArticleNumber + \" \" + articleVariant.article.articleName;\n });\n\n setVisibleLocations();\n generateArtilcesGridColumns();\n generateArticlesRowData();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function insertStockQuantities() {\n loadSpinnerService.start('mainSpinner');\n\n zeroAllGridValues();\n\n var articleVariantIdsAndLocationIds = [];\n _.forEach(rowData, function(row) {\n _.forEach(vm.locations, function (location) {\n if (location.isVisible) {\n articleVariantIdsAndLocationIds.push({ articleVariantId: row.id, locationId: location.id });\n }\n });\n });\n\n ProductsApiService.getProductVariantsStocks(articleVariantIdsAndLocationIds).then(function(response) {\n stocksData = response.data;\n insertStocksDataIntoGrid(response.data);\n\n // If we should exclude articles with ordering points\n if (vm.excludeArticlesWithOrderingPoints) {\n var articleVariantIds = [];\n _.forEach(articleVariantIdsAndLocationIds, function(item) { articleVariantIds.push(item['articleVariantId']); });\n StockLogisticsApiService.getByArticlesVariants(articleVariantIds).then(function(response) {\n removeStocksDataForStockLogistics(response.data);\n\n // THEN if we should account for in transit values.\n if (vm.adjustWithStockValues) {\n ProductsApiService.getProductVariantsInTransitValues(articleVariantIdsAndLocationIds).then(function(response) {\n adjustStocksDataWithTransferQuantities(response.data);\n createQuantityTransferSuggestions();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n createQuantityTransferSuggestions();\n }\n\n }, function(error) {\n console.log(error);\n });\n // If we should account for in transit values.\n } else if (vm.adjustWithStockValues) {\n ProductsApiService.getProductVariantsInTransitValues(articleVariantIdsAndLocationIds).then(function(response) {\n adjustStocksDataWithTransferQuantities(response.data);\n createQuantityTransferSuggestions();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n createQuantityTransferSuggestions();\n }\n\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function fetchQuantityInTransitData() {\n loadSpinnerService.start('mainSpinner');\n var articleVariantIdsAndLocationIds = [];\n _.forEach(rowData, function(row) {\n _.forEach(vm.locations, function (location) {\n if (location.isVisible) {\n articleVariantIdsAndLocationIds.push({ articleVariantId: row.id, locationId: location.id });\n }\n });\n });\n\n ProductsApiService.getProductVariantsInTransitValues(articleVariantIdsAndLocationIds).then(function(response) {\n adjustStocksDataWithTransferQuantities(response.data);\n createQuantityTransferSuggestions();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function submitAndCreateOrders() {\n var locationsArticleVariantsLinkStructures = [];\n\n _.forEach(rowData, function(row) {\n\n if (row.isOk) {\n var currentTransferObjects = [];\n\n var outLocation = _.find(vm.visibleLocations, function(location) {\n return row[location.id + \"Difference\"] < 0;\n });\n\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id + \"Difference\"] > 0) {\n currentTransferObjects.push({\n fromLocationId: outLocation.id,\n toLocationId: location.id,\n articleVariantId: row.id,\n quantity: parseInt(row[location.id + \"Difference\"])\n });\n }\n });\n\n if (outLocation) {\n var totalSum = parseInt(row[outLocation.id + \"Difference\"]);\n _.forEach(currentTransferObjects, function(transferObject) {\n totalSum += parseInt(transferObject.quantity);\n });\n\n if (totalSum === 0) {\n _.forEach(currentTransferObjects, function(transferObject) {\n locationsArticleVariantsLinkStructures.push(transferObject);\n });\n }\n }\n }\n });\n\n if (locationsArticleVariantsLinkStructures.length > 0) {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.createMultipleInternalOrders(locationsArticleVariantsLinkStructures).then(function(response) {\n $state.go('order.ordersearch');\n }, function(error) {\n ToasterService.showError($translate.instant(error), $translate.instant('common.error'));\n }).then(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n ToasterService.showWarning('Inga kvantiteter valda. Skapar ingen order.', $translate.instant('common.warning'));\n }\n }\n\n function createQuantityTransferSuggestions() {\n // Abstraction\n var findMax = true;\n var findMin = false;\n\n // Find all chosen locations.\n var visibleLocations = _.filter(vm.locations, function(location) {\n return location.isVisible;\n });\n\n _.forEach(rowData, function(row) {\n var locationsWithMaxQuantity = getLocationsWithEdgeStockQuantity(row, visibleLocations, findMax);\n var locationsWithMinQuantity = getLocationsWithEdgeStockQuantity(row, visibleLocations, findMin);\n\n locationsWithMaxQuantity = _.sortBy(locationsWithMaxQuantity, function(location) { return -location.locationPriority; });\n locationsWithMinQuantity = _.sortBy(locationsWithMinQuantity, function(location) { return location.locationPriority; });\n\n if (locationsWithMaxQuantity[0] === undefined || locationsWithMinQuantity[0] === undefined) {\n // Row does not have a maximum or minimum value.\n return;\n }\n\n var maxValue = locationsWithMaxQuantity[0]['stockQuantity'] + locationsWithMaxQuantity[0]['stockQuantityDifference'];\n var minValue = locationsWithMinQuantity[0]['stockQuantity'] + locationsWithMinQuantity[0]['stockQuantityDifference'];\n var diff = maxValue - minValue;\n\n var maxLocation = locationsWithMaxQuantity[0];\n var minLocation = locationsWithMinQuantity[0];\n\n var minLocationRelatedStock = _.find(stocksData, function(stock) {\n return stock.location.id === minLocation.id && stock.articleVariant.id === row.id;\n });\n\n var costIsAboveThreshold = false;\n if (minLocationRelatedStock !== undefined && minLocationRelatedStock.purchaseCost > vm.minimumCostPriceThreshold) {\n costIsAboveThreshold = true;\n }\n\n if (row[minLocation.id] <= vm.lowerThresholdQuantity && diff >= vm.minDiffToCreateSuggestion && costIsAboveThreshold) {\n row[maxLocation.id + \"Difference\"] = row[maxLocation.id + \"Difference\"] - 1;\n row[minLocation.id + \"Difference\"] = row[minLocation.id + \"Difference\"] + 1;\n }\n\n var rowHasTransferValues = false;\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id + \"Difference\"] === 0 || row[location.id + \"Difference\"] === \"\") {\n row[location.id + \"Difference\"] = undefined;\n }\n if (row[location.id + \"Difference\"] !== undefined) {\n rowHasTransferValues = true;\n }\n });\n\n if (rowHasTransferValues) {\n row.isOk = true;\n }\n });\n articlesGrid.invalidate();\n }\n\n function removeStocksDataForStockLogistics(stockLogistics) {\n _.forEach(stockLogistics, function(stockLogistic) {\n var relatedRow = _.find(rowData, function(row) {\n return row.id === stockLogistic.articleVariant.id;\n });\n\n _.pull(rowData, relatedRow);\n });\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function adjustStocksDataWithTransferQuantities(quantityInTransits) {\n _.forEach(quantityInTransits, function(transitData) {\n var relatedRow = _.find(rowData, function(row) {\n return row.id === transitData.articleVariant.id;\n });\n\n if (relatedRow !== undefined) {\n var relatedStock = _.find(stocksData, function(stock) {\n return stock.articleVariant.id === transitData.articleVariant.id && stock.location.id === transitData.location.id;\n });\n\n if (relatedStock !== undefined) {\n relatedRow[transitData.location.id] = relatedStock.quantity + transitData.quantityInTransit;\n } else {\n relatedRow[transitData.location.id] = transitData.quantityInTransit;\n }\n\n if (relatedRow[transitData.location.id] < 0) {\n relatedRow[transitData.location.id] = undefined;\n }\n }\n });\n\n var tempRowData = _.reject(rowData, function(row) {\n var allRowsAreValueless = true;\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id] !== undefined) {\n allRowsAreValueless = false;\n }\n });\n return allRowsAreValueless;\n });\n\n rowData.length = 0;\n _.forEach(tempRowData, function(row) {\n rowData.push(row);\n });\n\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function getLocationsWithEdgeStockQuantity(row, inLocations, findMax) {\n var locations = [];\n\n // Remove locations without stockQuantity.\n _.forEach(inLocations, function(loc) {\n if (row[loc.id] !== undefined) {\n locations.push(loc);\n }\n });\n\n if (locations.length < 1) {\n return [];\n }\n\n var locationsAndQuantity = [];\n\n _.forEach(locations, function(location) {\n location['stockQuantity'] = row[location.id];\n location['stockQuantityDifference'] = row[location.id + \"\" + \"Difference\"];\n locationsAndQuantity.push(location);\n });\n\n locationsAndQuantity = _.sortBy(locationsAndQuantity, function(location) {\n if (findMax) { // Descending\n return -(location['stockQuantity'] + location['stockQuantityDifference']);\n } else { // Ascending\n return (location['stockQuantity'] + location['stockQuantityDifference']);\n }\n });\n\n var maxValue = locationsAndQuantity[0]['stockQuantity'] - locationsAndQuantity[0]['stockQuantityDifference'];\n\n locationsAndQuantity = _.filter(locationsAndQuantity, function(location) {\n return (location['stockQuantity'] - locationsAndQuantity[0]['stockQuantityDifference']) === maxValue;\n });\n\n return locationsAndQuantity;\n }\n\n function changeToSearchTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.search = true;\n }\n\n function changeToLocationsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.locations = true;\n locationsGrid.invalidate();\n locationsCollection.refresh();\n }\n\n function changeToRulesTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.rules = true;\n }\n\n function selectAllLocations() {\n _.forEach(vm.locations, function(location) {\n location.isVisible = true;\n });\n locationsGrid.invalidate();\n locationsCollection.refresh();\n }\n\n function selectNoLocations() {\n _.forEach(vm.locations, function(location) {\n location.isVisible = false;\n });\n locationsGrid.invalidate();\n locationsCollection.refresh();\n }\n\n function setAllTabSelectionsToFalse() {\n var keys = Object.keys(vm.tabSelection);\n _.forEach(keys, function(key) {\n vm.tabSelection[key] = false;\n });\n }\n\n function insertStocksDataIntoGrid(stocks) {\n _.forEach(stocks, function(stock) {\n var foundRow = _.find(rowData, function(row) {\n return row.id === stock.articleVariant.id;\n });\n\n if (foundRow !== undefined) {\n foundRow[stock.location.id] = (stock.quantity >= 0) ? stock.quantity : undefined;\n foundRow[stock.location.id + \"Difference\"] = 0;\n }\n\n });\n\n // Keep only the rows that actually has stock values.\n var rowDataCopy = angular.copy(rowData);\n rowData.length = 0;\n _.forEach(rowDataCopy, function(row) {\n var rowHasValues = false;\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id] !== undefined) {\n rowHasValues = true;\n }\n });\n\n if (rowHasValues || vm.adjustWithStockValues) {\n rowData.push(row);\n }\n });\n\n rowCollection.refresh();\n articlesGrid.invalidate();\n }\n\n function setVisibleLocations() {\n vm.visibleLocations = _.filter(vm.locations, function(location) {\n return location.isVisible;\n });\n }\n\n function zeroAllGridValues() {\n _.forEach(rowData, function(row) {\n _.forEach(vm.visibleLocations, function(location) {\n var stock = _.find(stocksData, function(stock) {\n return stock.articleVariant.id === row.id && stock.location.id === location.id;\n });\n if (stock !== undefined) {\n row[location.id] = 0;\n } else {\n row[location.id] = undefined;\n }\n row[location.id + \"Difference\"] = undefined;\n row.isOk = false;\n });\n });\n }\n\n function validateGridRow(grid) {\n var rowNumber = grid.selection.row;\n var correspondingRowData = grid.rows[rowNumber].dataItem;\n\n var transferQuantityValues = [];\n _.forEach(vm.visibleLocations, function(location) {\n var transferQuantityValue = correspondingRowData[location.id + 'Difference'];\n if (transferQuantityValue === undefined) {\n transferQuantityValue = 0;\n } else if (transferQuantityValue !== undefined && !_.isNumber(transferQuantityValue)) {\n transferQuantityValue = parseInt(transferQuantityValue);\n }\n\n transferQuantityValues.push(transferQuantityValue);\n });\n\n var transferQuantitySum = _.sum(transferQuantityValues);\n var fromLocationCount = 0;\n _.forEach(transferQuantityValues, function(num) {\n if (num < 0) {\n fromLocationCount += 1;\n }\n });\n\n if (transferQuantitySum !== 0 || fromLocationCount > 1) {\n correspondingRowData.isOk = false;\n }\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function preventChangingOfIsOkValue(grid, e) {\n var rowNumber = grid.selection.row;\n var colNumber = grid.selection.col;\n var correspondingRowData = grid.rows[rowNumber].dataItem;\n\n var transferQuantityValues = [];\n _.forEach(vm.visibleLocations, function(location) {\n var transferQuantityValue = correspondingRowData[location.id + 'Difference'];\n if (transferQuantityValue === undefined) {\n transferQuantityValue = 0;\n } else if (transferQuantityValue !== undefined && !_.isNumber(transferQuantityValue)) {\n transferQuantityValue = parseInt(transferQuantityValue);\n }\n\n transferQuantityValues.push(transferQuantityValue);\n });\n\n var transferQuantitySum = _.sum(transferQuantityValues);\n var fromLocationCount = 0;\n _.forEach(transferQuantityValues, function(num) {\n if (num < 0) {\n fromLocationCount += 1;\n }\n });\n\n var selectedColumnBinding = grid.columns[colNumber].binding;\n\n if (selectedColumnBinding === 'isOk' && (transferQuantitySum !== 0 || fromLocationCount > 1)) {\n correspondingRowData.isOk = false;\n e.cancel = true;\n } else if (selectedColumnBinding !== 'isOk' && (transferQuantitySum !== 0 || fromLocationCount > 1)) {\n correspondingRowData.isOk = false;\n }\n\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function canSubmitAndCreateOrders() {\n var canAccess = vm.canAccess('order', 'create');\n var hasSelectedValidRows = _.findIndex(rowData, function(row) { return row.isOk; }) !== -1;\n\n return canAccess && hasSelectedValidRows;\n }\n}\n\nangular\n .module('stocklogistics.articletransfer', [])\n .config(stateConfig)\n .controller('ArticleTransferController', ArticleTransferController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stocklogistics.eshopreplenishment', {\n url: '/eshopreplenishment',\n templateUrl: 'main/stocklogistics/eshopreplenishment/eshopreplenishment.tpl.html',\n controller: 'EshopReplenishmentController as vm',\n resolve: {\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction locationsResolver(StockLogisticsApiService) {\n return StockLogisticsApiService.getLocations();\n}\n\n\n// @ngInject\nfunction EshopReplenishmentController($scope, $translate, $state, $interval, $timeout, AuthService, ProductsApiService, loadSpinnerService,\n OrdersApiService, locations, ToasterService, StockLogisticsApiService) {\n var vm = this;\n var int32Max = 2147483647;\n\n var articlesGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n\n var locationsGrid = {};\n var locationsCollection = new wijmo.collections.CollectionView(locations);\n\n var stocksData = [];\n var stockLogisticsData = [];\n var quantityInTansitData = [];\n\n vm.searchTerm = \"\";\n vm.numberOfResults = 9999;\n vm.articleVariants = [];\n vm.locations = locations;\n vm.visibleLocations = [];\n vm.minDiffToCreateSuggestion = 2;\n vm.lowerThresholdQuantity = 1;\n vm.moveMaximum = 1;\n vm.handleNegativeEshopQuantities = true;\n\n vm.selectedCollection = {};\n\n vm.captureArticlesGrid = captureArticlesGrid;\n vm.captureLocationsGrid = captureLocationsGrid;\n\n vm.searchArticles = searchArticles;\n vm.insertStockQuantities = insertStockQuantities;\n vm.fetchQuantityInTransitData = fetchQuantityInTransitData;\n vm.submitAndCreateOrders = submitAndCreateOrders;\n vm.validateGridRow = validateGridRow;\n vm.preventChangingOfIsOkValue = preventChangingOfIsOkValue;\n\n vm.changeToSearchTab = changeToSearchTab;\n vm.changeToLocationsTab = changeToLocationsTab;\n vm.tabSelection = {\n search: true,\n locations: false\n };\n vm.selectAllLocations = selectAllLocations;\n vm.selectNoLocations = selectNoLocations;\n vm.canAccess = AuthService.canAccess;\n\n activate();\n\n function activate() {\n\n var counter = 0;\n _.forEach(vm.locations, function(location) {\n counter++;\n location.isVisible = true;\n location.distributionWeight = 1;\n location.locationPriority = counter;\n\n if (_.toLower(location.locationType.locationSystemType) === \"eshop\") {\n location.outDeliverable = false;\n location.inDeliverable = true;\n } else {\n location.outDeliverable = true;\n location.inDeliverable = false;\n }\n\n });\n setVisibleLocations();\n }\n\n function captureArticlesGrid(s) {\n articlesGrid = s;\n articlesGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n itemsSource: rowCollection\n });\n\n articlesGrid.itemFormatter = function(panel, rowNum, colNum, cell) {\n var style = cell.style;\n var regularCellType = wijmo.grid.CellType.Cell;\n\n if (panel.cellType === regularCellType) {\n var relatedDataRow = rowData[rowNum];\n var quantityValues = [];\n var transferQuantityValues = [];\n var locationNumbers = [];\n var locationIds = [];\n _.forEach(vm.visibleLocations, function(location) {\n quantityValues.push(relatedDataRow[location.id]);\n\n var transferQuantityValue = relatedDataRow[location.id + 'Difference'];\n if (transferQuantityValue !== undefined && !_.isNumber(transferQuantityValue)) {\n transferQuantityValue = parseInt(transferQuantityValue);\n }\n transferQuantityValues.push(transferQuantityValue);\n\n locationNumbers.push(location.locationNumber);\n locationIds.push(location.id);\n });\n var maxValue = _.max(quantityValues);\n var minValue = _.min(quantityValues);\n var maxTransferValue = _.max(transferQuantityValues);\n var minTransferValue = _.min(transferQuantityValues);\n\n var transferQuantitySum = _.sum(transferQuantityValues);\n var fromLocationCount = 0;\n _.forEach(transferQuantityValues, function(num) {\n if (num < 0) {\n fromLocationCount += 1;\n }\n });\n\n var col = panel.columns[colNum];\n\n var currentQuantityCellValue = relatedDataRow[col.binding];\n\n var columnBindingIsLocationId = _.some(locationIds, function(locationId) {\n return locationId.toString() === col.binding;\n });\n var columnHeaderIsLocationNumber = _.some(locationNumbers, function(locationNumber) {\n return locationNumber === col.header;\n });\n var columnBindingIsLocationNumberAndDiffMarker = _.some(locationIds, function(locationId) {\n return locationId.toString() + 'Difference' === col.binding;\n });\n\n if (columnBindingIsLocationId && columnHeaderIsLocationNumber) {\n // cell is currentStockCell\n if (minValue !== undefined && currentQuantityCellValue === minValue) {\n cell.style.color = \"#000000\";\n cell.style.backgroundColor = \"#f7a7a7\";\n } else if (maxValue !== undefined && currentQuantityCellValue === maxValue) {\n cell.style.color = \"#000000\";\n cell.style.backgroundColor = \"#93e0a5\";\n } else {\n cell.style.color = \"\";\n cell.style.backgroundColor = \"\";\n }\n } else if (columnBindingIsLocationNumberAndDiffMarker && columnHeaderIsLocationNumber) {\n // cell is transferSuggestionCell\n if (transferQuantitySum !== undefined && transferQuantitySum !== \"\" && (transferQuantitySum !== 0 || fromLocationCount > 1)) {\n cell.style.color = \"#000000\";\n cell.style.backgroundColor = \"#f7a7a7\";\n } else {\n cell.style.color = \"\";\n cell.style.backgroundColor = \"\";\n }\n }\n }\n };\n }\n\n function captureLocationsGrid(s) {\n locationsGrid = s;\n locationsGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Row,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.None,\n itemsSource: locationsCollection\n });\n }\n\n function generateArtilcesGridColumns() {\n articlesGrid.columns.clear();\n\n var altArtNumberColumn = new wijmo.grid.Column();\n altArtNumberColumn.binding = 'alternativeArticleNumberAndArticleName';\n altArtNumberColumn.header = $translate.instant('article.article');\n altArtNumberColumn.allowSorting = false;\n altArtNumberColumn.width = 200;\n altArtNumberColumn.isReadOnly = true;\n articlesGrid.columns.push(altArtNumberColumn);\n\n var variantDetail1Column = new wijmo.grid.Column();\n variantDetail1Column.binding = 'variantDetail1.variantDetailName';\n variantDetail1Column.header = $translate.instant('article.variantdetail1');\n variantDetail1Column.allowSorting = false;\n variantDetail1Column.width = 100;\n variantDetail1Column.isReadOnly = true;\n articlesGrid.columns.push(variantDetail1Column);\n\n var variantDetail2Column = new wijmo.grid.Column();\n variantDetail2Column.binding = 'variantDetail2.variantDetailName';\n variantDetail2Column.header = $translate.instant('article.variantdetail2');\n variantDetail2Column.allowSorting = false;\n variantDetail2Column.width = 50;\n variantDetail2Column.isReadOnly = true;\n articlesGrid.columns.push(variantDetail2Column);\n\n _.forEach(vm.locations, function(location) {\n if (location.isVisible) {\n var locationColumn = new wijmo.grid.Column();\n locationColumn.binding = location.id.toString();\n locationColumn.header = location.locationNumber;\n locationColumn.allowSorting = false;\n locationColumn.width = 40;\n locationColumn.isReadOnly = true;\n articlesGrid.columns.push(locationColumn);\n }\n });\n\n var checkboxColumn = new wijmo.grid.Column();\n checkboxColumn.binding = 'isOk';\n checkboxColumn.header = $translate.instant('common.ok');\n checkboxColumn.allowSorting = false;\n checkboxColumn.width = 50;\n checkboxColumn.isReadOnly = false;\n articlesGrid.columns.push(checkboxColumn);\n\n _.forEach(vm.locations, function(location) {\n if (location.isVisible) {\n var locationColumn = new wijmo.grid.Column();\n locationColumn.binding = location.id + \"\" + \"Difference\";\n locationColumn.header = location.locationNumber;\n locationColumn.allowSorting = false;\n locationColumn.width = 40;\n locationColumn.isReadOnly = false;\n articlesGrid.columns.push(locationColumn);\n }\n });\n\n articlesGrid.invalidate();\n }\n\n function generateArticlesRowData() {\n rowData.length = 0;\n _.forEach(vm.articleVariants, function(articleVariant) {\n articleVariant.isOk = false;\n rowData.push(articleVariant);\n });\n\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function searchArticles() {\n if (vm.searchTerm.length < 3 && (!AuthService.canAccess('article', 'readList') && !AuthService.canAccess('article', 'read'))) {\n return;\n }\n\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.getProductVariants(0, vm.searchTerm, vm.numberOfResults, vm.selectedCollection.id, true).then(function (response) {\n vm.articleVariants = response.data;\n\n _.forEach(vm.articleVariants, function(articleVariant) {\n articleVariant['alternativeArticleNumberAndArticleName'] = articleVariant.article.alternativeArticleNumber + \" \" + articleVariant.article.articleName;\n });\n\n setVisibleLocations();\n generateArtilcesGridColumns();\n generateArticlesRowData();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function insertStockQuantities() {\n loadSpinnerService.start('mainSpinner');\n\n zeroAllGridValues();\n\n var articleVariantIdsAndLocationIds = [];\n _.forEach(rowData, function(row) {\n _.forEach(vm.locations, function (location) {\n if (location.isVisible) {\n articleVariantIdsAndLocationIds.push({ articleVariantId: row.id, locationId: location.id });\n }\n });\n });\n\n ProductsApiService.getProductVariantsStocks(articleVariantIdsAndLocationIds).then(function(response) {\n stocksData = response.data;\n insertStocksDataIntoGrid(response.data);\n\n createQuantityTransferSuggestions();\n\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function fetchQuantityInTransitData() {\n loadSpinnerService.start('mainSpinner');\n var articleVariantIdsAndLocationIds = [];\n _.forEach(rowData, function(row) {\n _.forEach(vm.locations, function (location) {\n if (location.isVisible) {\n articleVariantIdsAndLocationIds.push({ articleVariantId: row.id, locationId: location.id });\n }\n });\n });\n\n ProductsApiService.getProductVariantsInTransitValues(articleVariantIdsAndLocationIds).then(function(response) {\n quantityInTansitData = response.data;\n adjustStocksDataWithTransferQuantities(response.data);\n createQuantityTransferSuggestions();\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function submitAndCreateOrders() {\n var locationsArticleVariantsLinkStructures = [];\n\n _.forEach(rowData, function(row) {\n\n if (row.isOk) {\n var currentTransferObjects = [];\n\n var outLocation = _.find(vm.visibleLocations, function(location) {\n return row[location.id + \"Difference\"] < 0;\n });\n\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id + \"Difference\"] > 0) {\n currentTransferObjects.push({\n fromLocationId: outLocation.id,\n toLocationId: location.id,\n articleVariantId: row.id,\n quantity: parseInt(row[location.id + \"Difference\"])\n });\n }\n });\n\n var totalSum = parseInt(row[outLocation.id + \"Difference\"]);\n _.forEach(currentTransferObjects, function(transferObject) {\n totalSum += parseInt(transferObject.quantity);\n });\n\n if (totalSum === 0) {\n _.forEach(currentTransferObjects, function(transferObject) {\n locationsArticleVariantsLinkStructures.push(transferObject);\n });\n }\n }\n });\n\n OrdersApiService.createMultipleInternalOrders(locationsArticleVariantsLinkStructures).then(function(response) {\n console.log(\"Success\");\n $state.go('order.ordersearch');\n }, function(error) {\n console.log(\"Error\");\n });\n\n }\n\n function createQuantityTransferSuggestions() {\n // Abstraction\n var findMax = true;\n var findMin = false;\n\n // Find all chosen locations.\n var visibleLocations = _.filter(vm.locations, function(location) {\n return location.isVisible;\n });\n\n _.forEach(rowData, function(row) {\n var locationsWithMaxQuantity = getLocationsWithEdgeStockQuantity(row, visibleLocations, findMax);\n var locationsWithMinQuantity = getLocationsWithEdgeStockQuantity(row, visibleLocations, findMin);\n\n locationsWithMaxQuantity = _.sortBy(locationsWithMaxQuantity, function(location) { return -location.locationPriority; });\n locationsWithMinQuantity = _.sortBy(locationsWithMinQuantity, function(location) { return location.locationPriority; });\n\n if (locationsWithMaxQuantity[0] === undefined || locationsWithMinQuantity[0] === undefined) {\n // Row does not have a maximum or minimum value.\n return;\n }\n\n var maxValue = locationsWithMaxQuantity[0]['stockQuantity'] + locationsWithMaxQuantity[0]['stockQuantityDifference'];\n var minValue = locationsWithMinQuantity[0]['stockQuantity'] + locationsWithMinQuantity[0]['stockQuantityDifference'];\n var diff = maxValue - minValue;\n\n var maxLocation = locationsWithMaxQuantity[0];\n var minLocation = locationsWithMinQuantity[0];\n\n var minLocationRelatedStock = _.find(stocksData, function(stock) {\n return stock.location.id === minLocation.id && stock.articleVariant.id === row.id;\n });\n\n var eshops = _.filter(visibleLocations, function(location) {\n return _.toLower(location.locationType.locationSystemType) === 'eshop';\n });\n\n _.forEach(eshops, function(eshop) {\n var normalizationValue = 0 - Math.max(row[eshop.id], 0 - row[maxLocation.id]);\n if (vm.handleNegativeEshopQuantities && normalizationValue > 0) {\n row[maxLocation.id + \"Difference\"] = row[maxLocation.id + \"Difference\"] - normalizationValue;\n row[eshop.id + \"Difference\"] = row[eshop.id + \"Difference\"] + normalizationValue;\n } else if (!vm.handleNegativeEshopQuantities && normalizationValue < 0) {\n row[eshop.id + \"Difference\"] = row[eshop.id + \"Difference\"] + normalizationValue;\n row[minLocation.id + \"Difference\"] = row[minLocation.id + \"Difference\"] - normalizationValue;\n }\n });\n\n var rowHasTransferValues = false;\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id + \"Difference\"] === 0 || row[location.id + \"Difference\"] === \"\") {\n row[location.id + \"Difference\"] = undefined;\n }\n if (row[location.id + \"Difference\"] !== undefined) {\n rowHasTransferValues = true;\n }\n });\n\n if (rowHasTransferValues) {\n row.isOk = true;\n }\n });\n articlesGrid.invalidate();\n }\n\n function removeStocksDataForStockLogistics(stockLogistics) {\n _.forEach(stockLogistics, function(stockLogistic) {\n var relatedRow = _.find(rowData, function(row) {\n return row.id === stockLogistic.articleVariant.id;\n });\n\n _.pull(rowData, relatedRow);\n });\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function adjustStocksDataWithTransferQuantities(quantityInTransits) {\n _.forEach(quantityInTransits, function(transitData) {\n var relatedRow = _.find(rowData, function(row) {\n return row.id === transitData.articleVariant.id;\n });\n\n if (relatedRow !== undefined) {\n var relatedStock = _.find(stocksData, function(stock) {\n return stock.articleVariant.id === transitData.articleVariant.id && stock.location.id === transitData.location.id;\n });\n\n if (relatedStock !== undefined) {\n relatedRow[transitData.location.id] = relatedStock.quantity + transitData.quantityInTransit;\n } else {\n relatedRow[transitData.location.id] = transitData.quantityInTransit;\n }\n\n if (relatedRow[transitData.location.id] < 0) {\n relatedRow[transitData.location.id] = undefined;\n }\n }\n });\n\n var tempRowData = _.reject(rowData, function(row) {\n var allRowsAreValueless = true;\n _.forEach(vm.visibleLocations, function(location) {\n if (row[location.id] !== undefined) {\n allRowsAreValueless = false;\n }\n });\n return allRowsAreValueless;\n });\n\n rowData.length = 0;\n _.forEach(tempRowData, function(row) {\n rowData.push(row);\n });\n\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function getLocationsWithEdgeStockQuantity(row, inLocations, findMax) {\n var locations = [];\n\n // Remove locations without stockQuantity.\n _.forEach(inLocations, function(loc) {\n if (row[loc.id] !== undefined) {\n locations.push(loc);\n }\n });\n\n if (locations.length < 1) {\n return [];\n }\n\n var locationsAndQuantity = [];\n\n _.forEach(locations, function(location) {\n location['stockQuantity'] = row[location.id];\n location['stockQuantityDifference'] = row[location.id + \"\" + \"Difference\"];\n locationsAndQuantity.push(location);\n });\n\n locationsAndQuantity = _.sortBy(locationsAndQuantity, function(location) {\n if (findMax) { // Descending\n return -(location['stockQuantity'] + location['stockQuantityDifference']);\n } else { // Ascending\n return (location['stockQuantity'] + location['stockQuantityDifference']);\n }\n });\n\n var maxValue = locationsAndQuantity[0]['stockQuantity'] - locationsAndQuantity[0]['stockQuantityDifference'];\n\n locationsAndQuantity = _.filter(locationsAndQuantity, function(location) {\n return (location['stockQuantity'] - locationsAndQuantity[0]['stockQuantityDifference']) === maxValue;\n });\n\n return locationsAndQuantity;\n }\n\n function changeToSearchTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.search = true;\n }\n\n function changeToLocationsTab() {\n setAllTabSelectionsToFalse();\n vm.tabSelection.locations = true;\n locationsGrid.invalidate();\n locationsCollection.refresh();\n }\n\n function selectAllLocations() {\n _.forEach(vm.locations, function(location) {\n location.isVisible = true;\n });\n locationsGrid.invalidate();\n locationsCollection.refresh();\n }\n\n function selectNoLocations() {\n _.forEach(vm.locations, function(location) {\n location.isVisible = false;\n });\n locationsGrid.invalidate();\n locationsCollection.refresh();\n }\n\n function setAllTabSelectionsToFalse() {\n var keys = Object.keys(vm.tabSelection);\n _.forEach(keys, function(key) {\n vm.tabSelection[key] = false;\n });\n }\n\n function insertStocksDataIntoGrid(stocks) {\n _.forEach(stocks, function(stock) {\n var foundRow = _.find(rowData, function(row) {\n return row.id === stock.articleVariant.id;\n });\n\n if (foundRow !== undefined) {\n foundRow[stock.location.id] = stock.quantity;\n foundRow[stock.location.id + \"Difference\"] = 0;\n }\n\n });\n\n var eshops = [];\n _.forEach(vm.visibleLocations, function(location) {\n if (_.toLower(location.locationType.locationSystemType) === \"eshop\") {\n eshops.push(location);\n }\n });\n\n // Keep only the rows that actually has stock values.\n var rowDataCopy = angular.copy(rowData);\n rowData.length = 0;\n _.forEach(rowDataCopy, function(row) {\n var rowHasValues = false;\n _.forEach(vm.visibleLocations, function(location) {\n var currentEshop = _.find(eshops, function(eshop) { return location.id === eshop.id; });\n if (row[location.id] !== undefined && currentEshop !== undefined) {\n rowHasValues = true;\n }\n });\n\n if (rowHasValues) {\n rowData.push(row);\n }\n });\n\n rowCollection.refresh();\n articlesGrid.invalidate();\n }\n\n function setVisibleLocations() {\n vm.visibleLocations = _.filter(vm.locations, function(location) {\n return location.isVisible;\n });\n }\n\n function zeroAllGridValues() {\n _.forEach(rowData, function(row) {\n _.forEach(vm.visibleLocations, function(location) {\n var stock = _.find(stocksData, function(stock) {\n return stock.articleVariant.id === row.id && stock.location.id === location.id;\n });\n if (stock !== undefined) {\n row[location.id] = 0;\n } else {\n row[location.id] = undefined;\n }\n row[location.id + \"Difference\"] = undefined;\n row.isOk = false;\n });\n });\n }\n\n function validateGridRow(grid) {\n var rowNumber = grid.selection.row;\n var correspondingRowData = grid.rows[rowNumber].dataItem;\n\n var transferQuantityValues = [];\n _.forEach(vm.visibleLocations, function(location) {\n var transferQuantityValue = correspondingRowData[location.id + 'Difference'];\n if (transferQuantityValue === undefined) {\n transferQuantityValue = 0;\n } else if (transferQuantityValue !== undefined && !_.isNumber(transferQuantityValue)) {\n transferQuantityValue = parseInt(transferQuantityValue);\n }\n\n transferQuantityValues.push(transferQuantityValue);\n });\n\n var transferQuantitySum = _.sum(transferQuantityValues);\n var fromLocationCount = 0;\n _.forEach(transferQuantityValues, function(num) {\n if (num < 0) {\n fromLocationCount += 1;\n }\n });\n\n if (transferQuantitySum !== 0 || fromLocationCount > 1) {\n correspondingRowData.isOk = false;\n }\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function preventChangingOfIsOkValue(grid, e) {\n var rowNumber = grid.selection.row;\n var colNumber = grid.selection.col;\n var correspondingRowData = grid.rows[rowNumber].dataItem;\n\n var transferQuantityValues = [];\n _.forEach(vm.visibleLocations, function(location) {\n var transferQuantityValue = correspondingRowData[location.id + 'Difference'];\n if (transferQuantityValue === undefined) {\n transferQuantityValue = 0;\n } else if (transferQuantityValue !== undefined && !_.isNumber(transferQuantityValue)) {\n transferQuantityValue = parseInt(transferQuantityValue);\n }\n\n transferQuantityValues.push(transferQuantityValue);\n });\n\n var transferQuantitySum = _.sum(transferQuantityValues);\n var fromLocationCount = 0;\n _.forEach(transferQuantityValues, function(num) {\n if (num < 0) {\n fromLocationCount += 1;\n }\n });\n\n var selectedColumnBinding = grid.columns[colNumber].binding;\n\n if (selectedColumnBinding === 'isOk' && (transferQuantitySum !== 0 || fromLocationCount > 1)) {\n correspondingRowData.isOk = false;\n e.cancel = true;\n } else if (selectedColumnBinding !== 'isOk' && (transferQuantitySum !== 0 || fromLocationCount > 1)) {\n correspondingRowData.isOk = false;\n }\n\n articlesGrid.invalidate();\n rowCollection.refresh();\n }\n\n function applyScope() {\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n }\n\n function showWarningToaster(message) {\n var title = $translate.instant('common.warning');\n ToasterService.showWarning(message, title);\n }\n}\n\n\nangular\n .module('stocklogistics.eshopreplenishment', [])\n .config(stateConfig)\n .controller('EshopReplenishmentController', EshopReplenishmentController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stocklogistics.masshandlingorderingpoints', {\n url: '/masshandling',\n templateUrl: 'main/stocklogistics/masshandlingorderingpoints/masshandlingorderingpoints.tpl.html',\n controller: 'MassHandlingOrderingPointsController as vm',\n\n resolve: {\n locations: locationsResolver,\n mainGroups: mainGroupsResolver,\n brands: brandsResolver,\n collections: collectionsResolver\n }\n });\n}\n// @ngInject\nfunction locationsResolver(StockLogisticsApiService) {\n return StockLogisticsApiService.getLocations();\n}\n// @ngInject\nfunction mainGroupsResolver(MaingroupsApiService) {\n return MaingroupsApiService.getMainGroups();\n}\n// @ngInject\nfunction brandsResolver(BrandsApiService) {\n return BrandsApiService.getBrands();\n}\n// @ngInject\nfunction collectionsResolver(ProductsApiService) {\n return ProductsApiService.getArticleCollections();\n}\n\n// @ngInject\nfunction MassHandlingOrderingPointsController($state, $scope, $translate, ToasterService, locations, mainGroups, brands, collections\n ,StockLogisticsApiService, MaingroupsApiService, BrandsApiService, ProductsApiService, loadSpinnerService) {\n var vm = this;\n\n vm.stepHandler = {\n currentStep: 0,\n steps : ['Generic Selection', 'Specific Selection', 'Confirm Selection']\n }\n\n vm.locations = locations;\n vm.mainGroups = mainGroups;\n vm.brands = brands;\n vm.collections = collections;\n vm.locations.sort((a,b) => (a.locationType.id > b.locationType.id) ? 1: ((b.locationType.id > a.locationType.id) ? -1 : 0));\n vm.mainGroups.sort((a,b) => (a.mainGroupDescription > b.mainGroupDescription) ? 1: ((b.mainGroupDescription > a.mainGroupDescription) ? -1 : 0));\n vm.brands.sort((a,b) => (a.brandDescription > b.brandDescription) ? 1: ((b.brandDescription > a.brandDescription) ? -1 : 0));\n vm.collections.sort((a,b) => (a.collectionCode > b.collectionCode) ? 1: ((b.collectionCode > a.collectionCode) ? -1 : 0));\n\n vm.locationFilter = \"\";\n vm.mainGroupFilter = \"\";\n vm.brandFilter = \"\";\n vm.collectionFilter = \"\";\n vm.filterIsCurrent = false;\n\n vm.filteredLocations = [];\n vm.filteredMainGroups = [];\n vm.filteredBrands = [];\n vm.filteredCollections = [];\n\n vm.filterChanged = filterChanged;\n vm.goToNextStep = goToNextStep;\n vm.goToPreviousStep = goToPreviousStep;\n vm.validSelection = validSelection;\n vm.selectFilterSelection = selectFilterSelection;\n vm.deselectSelection = deselectSelection;\n\n activate();\n\n function addStartProperties (){\n _.forEach(vm.locations, function(location){\n location.selected = false;\n });\n _.forEach(vm.mainGroups, function(maingroup){\n maingroup.selected = false;\n });\n _.forEach(vm.brands, function(brand){\n brand.selected = false;\n });\n _.forEach(vm.collections, function(collection){\n collection.selected = false;\n });\n\n vm.filteredLocations = angular.copy(vm.locations);\n vm.filteredMainGroups = angular.copy(vm.mainGroups);\n vm.filteredBrands = angular.copy(vm.brands);\n vm.filteredCollections = angular.copy(vm.collections);\n\n filterChanged('location');\n filterChanged('mainGroup');\n filterChanged('brand');\n filterChanged('collection');\n }\n\n function activate() {\n console.log(vm.locations);\n console.log(vm.mainGroups);\n console.log(vm.brands);\n console.log(vm.collections);\n addStartProperties();\n }\n\n function filterChanged(type) {\n if(type === \"location\"){\n vm.filteredLocations = vm.locations.filter(function (location) { \n if(location.selected) \n return true;\n else\n return location.locationName.toLowerCase().includes(vm.locationFilter.toLowerCase())\n }); \n } else if(type === \"mainGroup\"){\n vm.filteredMainGroups = vm.mainGroups.filter(function (maingroup) { \n if(maingroup.selected) \n return true;\n else\n return maingroup.mainGroupDescription.toLowerCase().includes(vm.mainGroupFilter.toLowerCase())\n });\n } else if(type === \"brand\"){\n vm.filteredBrands = vm.brands.filter(function (brand) { \n if(brand.selected)\n return true;\n else\n return brand.brandDescription.toLowerCase().includes(vm.brandFilter.toLowerCase())\n });\n } else if(type === \"collection\"){\n vm.filteredCollections = vm.collections.filter(function (collection) { \n if(collection.selected) \n return true;\n else\n return collection.collectionCode.toString().toLowerCase().includes(vm.collectionFilter.toLowerCase())\n });\n } \n }\n\n function deselectSelection(type){\n if(type === \"location\"){\n for(let i = 0; i < vm.filteredLocations.length; i++){\n vm.filteredLocations[i].selected = false;\n vm.locationFilter = \"\"\n }\n } else if(type === \"mainGroup\"){\n for(let i = 0; i < vm.filteredMainGroups.length; i++){\n vm.filteredMainGroups[i].selected = false;\n vm.mainGroupFilter = \"\"\n }\n } else if(type === \"brand\"){\n for(let i = 0; i < vm.filteredBrands.length; i++){\n vm.filteredBrands[i].selected = false;\n vm.brandFilter = \"\"\n }\n } else if(type === \"collection\"){\n for(let i = 0; i < vm.filteredCollections.length; i++){\n vm.filteredCollections[i].selected = false;\n vm.collectionFilter = \"\"\n }\n } \n\n filterChanged(type);\n }\n\n function selectFilterSelection(type){\n if(type === \"location\"){\n for(let i = 0; i < vm.filteredLocations.length; i++){\n vm.filteredLocations[i].selected = true;\n vm.locationFilter = \"\"\n }\n } else if(type === \"mainGroup\"){\n for(let i = 0; i < vm.filteredMainGroups.length; i++){\n vm.filteredMainGroups[i].selected = true;\n vm.mainGroupFilter = \"\"\n }\n } else if(type === \"brand\"){\n for(let i = 0; i < vm.filteredBrands.length; i++){\n vm.filteredBrands[i].selected = true;\n vm.brandFilter = \"\"\n }\n } else if(type === \"collection\"){\n for(let i = 0; i < vm.filteredCollections.length; i++){\n vm.filteredCollections[i].selected = true;\n vm.collectionFilter = \"\"\n }\n } \n\n filterChanged(type);\n }\n\n function goToNextStep(){\n vm.stepHandler.currentStep++;\n }\n function goToPreviousStep(){\n vm.stepHandler.currentStep--;\n }\n\n function validSelection(){\n if(vm.filteredLocations.filter(function (obj) {return obj.selected}).length === 0 || \n vm.filteredMainGroups.filter(function (obj) {return obj.selected}).length === 0 || \n vm.filteredBrands.filter(function (obj) {return obj.selected}).length === 0 || \n vm.filteredCollections.filter(function (obj){return obj.selected}).length === 0)\n return false\n else \n return true;\n }\n}\n\nangular\n .module('stocklogistics.masshandlingorderingpoints', [])\n .config(stateConfig)\n .controller('MassHandlingOrderingPointsController', MassHandlingOrderingPointsController);","// @ngInject\nfunction AutoMonthMultiplierDialogService($uibModal, ProductsApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(articleId) {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: true,\n controller: 'AutoMonthMultiplierDialogController as vm',\n templateUrl: 'main/stocklogistics/orderingpoints/autoMonthMultiplierDialog.tpl.html',\n size: 'lg'\n };\n\n\n modalDefaults.resolve = {\n articleId: function () {\n return articleId;\n },\n autoMonthMultipliers: function () {\n return ProductsApiService.ReadMultipliersToEdit(articleId);\n }, \n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction AutoMonthMultiplierDialogController($uibModalInstance, $rootScope, articleId, autoMonthMultipliers, ProductsApiService, loadSpinnerService, confirmationDialogService, ToasterService, $translate) {\n var vm = this;\n\n vm.selectedAutoMonthMultiplier = filterSelectedMultiplier(autoMonthMultipliers);\n vm.autoMonthMultipliers = angular.copy(autoMonthMultipliers);\n vm.closeModal = closeModal;\n vm.deleteSelected = deleteSelected;\n vm.createNewToggle = createNewToggle;\n vm.create = create;\n vm.saveOnChange = saveOnChange;\n vm.ongoingRequest = false;\n vm.createMode = false;\n vm.enableChangesSavedNotification = false;\n vm.fields = translateMonth();\n\n vm.allMonthsMultiplier = 1;\n \n vm.handleConvertValue = handleConvertValue;\n vm.handleConvertValueAllMonths = handleConvertValueAllMonths;\n vm.updateOnAllMonths = updateOnAllMonths;\n\n function translateMonth(){\n var months = $translate.instant('common.months.short').toUpperCase().split(',');\n if (months.length < 12) {\n months = ['JAN', 'FEB', 'MAR', 'APR', 'MAJ', 'JUN', 'JUL', 'AUG', 'SEP', 'OKT', 'NOV', 'DEC'];\n }\n var fullMonthNames = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n ];\n return months.map(function(monthAbbreviation, index) {\n return { abbreviation: monthAbbreviation, full: fullMonthNames[index] };\n });\n }\n\n function createNewToggle(){\n vm.createMode = true;\n vm.selectedAutoMonthMultiplier = {\n name: \"\",\n january: 0,\n february: 0,\n march: 0,\n april: 0,\n may: 0,\n june: 0,\n july: 0,\n august: 0,\n september: 0,\n october: 0,\n november: 0,\n december: 0,\n };\n\n document.getElementById(\"nameInput\").focus();\n }\n\n function create(){\n vm.ongoingRequest = true\n loadSpinnerService.start('mainSpinner');\n ProductsApiService.createMonthMultiplier(vm.selectedAutoMonthMultiplier).then(function() {\n resetAutoMonthMultipliers();\n ToasterService.showSuccess($translate.instant('common.created'), $translate.instant('article.autoOrderCurve'));\n vm.createMode = false;\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n loadSpinnerService.stop('mainSpinner');\n vm.ongoingRequest = false\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n vm.ongoingRequest = false\n });\n }\n\n function resetAutoMonthMultipliers(){\n ProductsApiService.ReadMultipliersToEdit(articleId).then(function(response) {\n vm.autoMonthMultipliers = sortAutoMonthMultipliers(angular.copy(response), vm.selectedAutoMonthMultiplier);\n vm.selectedAutoMonthMultiplier = vm.autoMonthMultipliers.find(x => x.name === vm.selectedAutoMonthMultiplier.name);\n }, function(error){\n console.log(error)\n })\n }\n\n function filterSelectedMultiplier(autoMonthMultipliers) {\n if (autoMonthMultipliers && autoMonthMultipliers.length > 0) {\n return autoMonthMultipliers.find(x => x.isArticlesMultiplier);\n } else {\n return null;\n }\n }\n\n function deleteSelected(){\n var affectedArticleNames = vm.selectedAutoMonthMultiplier.articleNamesWithMultiplier.join('<br>');\n var confirmationMessage = $translate.instant(\"article.confirmDeleteCurve\") + '<br/>';\n\n if (affectedArticleNames) {\n confirmationMessage += '<strong>' + $translate.instant(\"article.affectedArticles\") + '</strong><br>' + affectedArticleNames;\n }\n\n confirmationDialogService.showDialog('<div>' + confirmationMessage + '</div>').then(function (result) {\n if (result === true) {\n vm.ongoingRequest = true;\n loadSpinnerService.start(\"mainSpinner\");\n ProductsApiService.deleteMonthMultiplier(vm.selectedAutoMonthMultiplier.id).then(function() {\n ToasterService.showSuccess($translate.instant('common.wasDeleted'), $translate.instant('article.autoOrderCurve'));\n $uibModalInstance.close(vm.selectedAutoMonthMultiplier);\n $rootScope.$emit('multiplierModalClosed', vm.selectedAutoMonthMultiplier);\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n vm.ongoingRequest = false\n loadSpinnerService.stop(\"mainSpinner\");\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n vm.ongoingRequest = false;\n });\n }\n });\n }\n\n function closeModal() {\n if(vm.createMode) {\n $uibModalInstance.close(vm.selectedAutoMonthMultiplier);\n return;\n }\n\n ProductsApiService.changeMultiplierOnArticle(articleId, vm.selectedAutoMonthMultiplier).then(function() {\n ToasterService.showSuccess($translate.instant('common.wasSaved'), $translate.instant('article.autoOrderCurve'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n vm.ongoingRequest = false\n loadSpinnerService.stop(\"mainSpinner\");\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n vm.ongoingRequest = false;\n $uibModalInstance.close(vm.selectedAutoMonthMultiplier);\n $rootScope.$emit('multiplierModalClosed', vm.selectedAutoMonthMultiplier);\n });\n }\n\n function updateNameProp() {\n const updatedMultiplierIndex = vm.autoMonthMultipliers.findIndex(multiplier => multiplier.id === vm.selectedAutoMonthMultiplier.id);\n if (updatedMultiplierIndex !== -1) {\n const updatedMultiplier = angular.copy(vm.autoMonthMultipliers[updatedMultiplierIndex]);\n updatedMultiplier.name = vm.selectedAutoMonthMultiplier.name;\n vm.autoMonthMultipliers[updatedMultiplierIndex] = updatedMultiplier;\n }\n }\n\n function sortAutoMonthMultipliers(autoMonthMultipliers, selectedMultiplier) {\n if (selectedMultiplier !== null) {\n return autoMonthMultipliers.slice().sort(function(a, b) {\n if (a.name === selectedMultiplier.name) {\n return -1;\n } else if (b.name === selectedMultiplier.name) {\n return 1;\n }\n return 0;\n });\n } else {\n return autoMonthMultipliers.slice(); \n }\n }\n\n function handleConvertValue(fieldName) {\n if(angular.isString(vm.selectedAutoMonthMultiplier[fieldName])){\n vm.selectedAutoMonthMultiplier[fieldName] = parseFloat(vm.selectedAutoMonthMultiplier[fieldName]);\n }\n }\n function handleNegativeValue(fieldName){\n if(vm.selectedAutoMonthMultiplier[fieldName] < 0){\n vm.selectedAutoMonthMultiplier[fieldName] = 0\n }\n }\n function handelUndefinedValue(fieldName){\n if(!vm.selectedAutoMonthMultiplier[fieldName]){\n vm.selectedAutoMonthMultiplier[fieldName] = 0;\n }\n }\n\n function handleConvertValueAllMonths(){\n if(angular.isString(vm.allMonthsMultiplier)){\n vm.allMonthsMultiplier = parseFloat(vm.allMonthsMultiplier);\n }\n }\n\n function updateOnAllMonths(){\n\n var confirmationMessage = '<h4>' + $translate.instant('article.confirmUpdateEntireCurve') + '</h4>' +\n '<div><b>' + vm.allMonthsMultiplier.toString().replace('.', ',') + ' </b>' + $translate.instant('article.willBeSetOnAllMonths') + '.</div>'\n \n confirmationDialogService.showDialog(confirmationMessage).then(function (result) {\n if (result === true) {\n _.forEach(vm.fields, function(field){\n vm.selectedAutoMonthMultiplier[field.full.toLowerCase()] = vm.allMonthsMultiplier; \n })\n \n \n saveOnChange();\n }\n\n vm.allMonthsMultiplier = 1;\n });\n }\n\n function saveOnChange() {\n _.forEach(vm.fields, function(field){\n handleConvertValue(field.full.toLowerCase());\n handelUndefinedValue(field.full.toLowerCase());\n handleNegativeValue(field.full.toLowerCase());\n })\n\n if(vm.createMode || !vm.selectedAutoMonthMultiplier.name) return\n updateNameProp();\n vm.enableChangesSavedNotification = true;\n vm.ongoingRequest = true\n\n ProductsApiService.updateMonthMultiplier(vm.selectedAutoMonthMultiplier).then(function() {\n resetAutoMonthMultipliers();\n vm.allMonthsMultiplier = 1;\n }, function(error) {\n console.log(error);\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n vm.ongoingRequest = false\n }).finally(function() {\n vm.ongoingRequest = false\n });\n }\n}\n\nangular\n .module('stocklogistics.orderingpoints.autoMonthMultiplierDialog', [])\n .service('AutoMonthMultiplierDialogService', AutoMonthMultiplierDialogService)\n .controller('AutoMonthMultiplierDialogController', AutoMonthMultiplierDialogController);","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stock.orderingpointssearch.orderingpoints', {\n url: \"/{articleId}\",\n views: {\n \"articleView@stock\": {\n templateUrl: 'main/stocklogistics/orderingpoints/orderingpoints.tpl.html',\n controller: 'OrderingPointsController as vm'\n }\n },\n\n resolve: {\n article: articleResolver,\n locations: locationsResolver,\n autoMonthMultipliers: multiplierResolver,\n }\n });\n}\n\n// @ngInject\nfunction articleResolver($stateParams, StockLogisticsApiService) {\n return StockLogisticsApiService.getProduct($stateParams.articleId);\n}\n\n// @ngInject\nfunction locationsResolver(StockLogisticsApiService) {\n return StockLogisticsApiService.getLocations();\n}\n\n\n// @ngInject\nfunction multiplierResolver($stateParams, ProductsApiService) {\n return ProductsApiService.getMultipliers($stateParams.articleId);\n}\n\n// @ngInject\nfunction OrderingPointsController($state, $rootScope, $translate, ToasterService, article, locations,ProductsApiService, StockLogisticsApiService, loadSpinnerService, ArticleLabelsPrintDialogService, AutoMonthMultiplierDialogService, autoMonthMultipliers) {\n var vm = this;\n\n var locationBasedRowData = [];\n var locationBasedRowCollection = new wijmo.collections.CollectionView(locationBasedRowData);\n var orderPointsGrid = {};\n var currentEditProperty = 'orderingPointMax';\n vm.selectedArticle = article;\n vm.autoMonthMultipliers = initializeAutoMonthMultipliers(autoMonthMultipliers);\n vm.selectedMultiplier = filterSelectedMultiplier(autoMonthMultipliers);\n vm.stockLogistics = [];\n vm.locations = formatLocationNames(locations);\n vm.selectableFromLocations = [];\n vm.selectedLocation = {};\n vm.selectedFromLocation = {};\n\n vm.captureVariantsGrid = captureVariantsGrid;\n vm.transferMaxGridDataToStockLogistics = transferMaxGridDataToStockLogistics;\n vm.selectedLocationChanged = selectedLocationChanged;\n vm.saveStockLogistics = saveStockLogistics;\n\n vm.switchToOrderingPointMax = switchToOrderingPointMax;\n vm.switchToOrderingPointMin = switchToOrderingPointMin;\n vm.switchToPackSize = switchToPackSize;\n vm.generateAutoOrdersForAllStockLogistics = generateAutoOrdersForAllStockLogistics;\n \n vm.openLabelsModal = openLabelsModal;\n vm.openMultiplierModal = openMultiplierModal;\n\n vm.tabSelection = {\n maxPoint: true,\n minPoint: false,\n packSize: false\n };\n\n vm.isPriority = false;\n\n vm.weekdaychoices = {\n monday: false,\n tuesday: false,\n wednesday: false,\n thursday: false,\n friday: false,\n saturday: false,\n sunday: false\n };\n\n vm.printDebug = printDebug;\n vm.productStateGo = productStateGo;\n\n activate();\n\n function formatLocationNames(locations) {\n return locations.map(function(location) {\n var formattedLocation = angular.copy(location);\n formattedLocation.locationName = formattedLocation.shouldGenerateAutoOrders ? formattedLocation.locationName + ' (' + $translate.instant('common.active') + ')' : formattedLocation.locationName + ' (' + $translate.instant('common.inActive') + ')';\n return formattedLocation;\n });\n }\n\n $rootScope.$on('multiplierModalClosed', function(event, selectedItem) {\n ProductsApiService.getMultipliers(vm.selectedArticle.id).then(function(response) {\n vm.autoMonthMultipliers = angular.copy(response);\n vm.selectedMultiplier = filterSelectedMultiplier(response);\n });\n });\n\n function activate() {\n StockLogisticsApiService.getByArticle(vm.selectedArticle.id).then(function (response) {\n vm.stockLogistics = response.data;\n updateOrderPointsGridData();\n populateSelectableFromLocations();\n }, function(error) {\n console.log(error);\n });\n\n populateSelectableFromLocations();\n }\n\n function filterSelectedMultiplier(autoMonthMultipliers) {\n if (autoMonthMultipliers && autoMonthMultipliers.length > 0) {\n return autoMonthMultipliers.find(x => x.isArticlesMultiplier);\n } else {\n return null;\n }\n }\n\n function initializeAutoMonthMultipliers(sourceArray) {\n const copiedArray = angular.copy(sourceArray);\n return copiedArray || [];\n }\n \n \n\n function openLabelsModal() {\n ArticleLabelsPrintDialogService.showDialog(vm.selectedArticle.id);\n }\n\n function openMultiplierModal() {\n AutoMonthMultiplierDialogService.showDialog(vm.selectedArticle.id);\n }\n \n function captureVariantsGrid(sender) {\n orderPointsGrid = sender;\n orderPointsGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Cell,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\n isReadOnly: false,\n itemsSource: locationBasedRowCollection\n });\n updateOrderPointsGridData();\n }\n\n function updateOrderPointsGridData() {\n if (orderPointsGrid.columns === undefined) {\n return;\n }\n\n var variantDetail1s = [];\n var variantDetail2s = [];\n var stockLogisticsForCurrentLocation = [];\n\n _.each(vm.selectedArticle.articleVariants, function(articleVariant) {\n variantDetail1s.push(articleVariant.variantDetail1);\n variantDetail2s.push(articleVariant.variantDetail2);\n });\n\n variantDetail1s = _.uniqBy(variantDetail1s, function(detail) {\n return detail.id; // Compare by ID\n });\n variantDetail2s = _.uniqBy(variantDetail2s, function(detail) {\n return detail.id; // Compare by ID\n });\n\n variantDetail1s = _.sortBy(variantDetail1s, function(detail) { return detail.variantDetailName; });\n variantDetail2s = _.sortBy(variantDetail2s, function(detail) { return detail.sortOrder; });\n\n orderPointsGrid.columns.clear();\n orderPointsGrid.columns.defaultSize = 50;\n orderPointsGrid.frozenColumns = 1;\n\n // Add first row header column\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"variantDetails1Name\";\n rowHeader.header = \" \";\n rowHeader.allowSorting = false;\n rowHeader.width = \"*\";\n rowHeader.minWidth = 120;\n rowHeader.isReadOnly = true;\n orderPointsGrid.columns.push(rowHeader);\n\n _.each(variantDetail2s, function(varDetail2) {\n var column = new wijmo.grid.Column();\n column.binding = varDetail2.variantDetailName;\n column.header = varDetail2.variantDetailName;\n column.align = \"right\";\n column.width = \"*\";\n column.minWidth = 60;\n orderPointsGrid.columns.push(column);\n });\n\n stockLogisticsForCurrentLocation = _.filter(vm.stockLogistics, function(stockLogistic) {\n return vm.selectedLocation.id === stockLogistic.location.id;\n });\n\n if (stockLogisticsForCurrentLocation.length > 0) {\n if (stockLogisticsForCurrentLocation[0].isPriority === undefined) {\n vm.isPriority = false;\n } else {\n vm.isPriority = stockLogisticsForCurrentLocation[0].isPriority;\n }\n }\n\n orderPointsGrid.autoSizeColumn(0);\n\n setCurrentWeekdayChoices(stockLogisticsForCurrentLocation);\n\n loadVariantsGridData(stockLogisticsForCurrentLocation);\n }\n\n function loadVariantsGridData(currentLocationStockLogistics) {\n var variantRows = _.groupBy(vm.selectedArticle.articleVariants, function(variant) {\n return variant.variantDetail1.id;\n });\n\n locationBasedRowData = [];\n locationBasedRowCollection = new wijmo.collections.CollectionView(locationBasedRowData);\n\n orderPointsGrid.itemsSource = locationBasedRowCollection;\n orderPointsGrid.collectionView.refresh();\n\n _.each(variantRows, function(variantRowValues) {\n var r = {};\n _.each(variantRowValues, function(variantRowValue) {\n var relatedStockLogistic = _.find(currentLocationStockLogistics, function(stock) { return stock.articleVariant.id === variantRowValue.id; });\n r.variantDetails1Name = variantRowValue.variantDetail1.variantDetailName;\n if (relatedStockLogistic !== undefined) {\n r[variantRowValue.variantDetail2.variantDetailName] = relatedStockLogistic[currentEditProperty];\n } else {\n r[variantRowValue.variantDetail2.variantDetailName] = 0;\n }\n });\n locationBasedRowData.push(r);\n });\n locationBasedRowCollection.refresh();\n }\n\n function transferMaxGridDataToStockLogistics() {\n var stockLogisticsForCurrentLocation = _.filter(vm.stockLogistics, function(stockLogistic) {\n return vm.selectedLocation.id === stockLogistic.location.id;\n });\n\n _.forEach(locationBasedRowData, function(row) {\n var keys = Object.keys(row);\n _.forEach(keys, function(variant2Name) {\n if (variant2Name !== 'variantDetails1Name') {\n var relatedStockLogistic = _.find(stockLogisticsForCurrentLocation, function(stockLogistic) {\n return stockLogistic.articleVariant.variantDetail1.variantDetailName === row['variantDetails1Name'] &&\n stockLogistic.articleVariant.variantDetail2.variantDetailName === variant2Name &&\n stockLogistic.location.id === vm.selectedLocation.id;\n }\n );\n\n if (relatedStockLogistic !== undefined) { // Update the fetched stock logistic.\n relatedStockLogistic[currentEditProperty] = row[variant2Name];\n relatedStockLogistic.isPriority = vm.isPriority;\n updateStockLogisiticsWeekdays(relatedStockLogistic, vm.weekdaychoices);\n } else { // Create a new stock logistic.\n var newStockLogistics = createNewStockLogistics(row['variantDetails1Name'], variant2Name);\n newStockLogistics[currentEditProperty] = row[variant2Name];\n updateStockLogisiticsWeekdays(newStockLogistics, vm.weekdaychoices);\n newStockLogistics.isPriority = vm.isPriority;\n vm.stockLogistics.push(newStockLogistics);\n }\n\n }\n });\n });\n }\n\n function getGenerallWeekdayChoice(relatedStockLogistics){\n var returnStockLogistic = {\n monday : false,\n tuesday : false,\n wednesday : false,\n thursday : false,\n friday : false,\n saturday : false,\n sunday : false\n };\n\n _.forEach(relatedStockLogistics, function(stockLogistic){\n if(stockLogistic.monday){\n returnStockLogistic.monday = stockLogistic.monday;\n }\n if(stockLogistic.tuesday){\n returnStockLogistic.tuesday = stockLogistic.tuesday;\n }\n if(stockLogistic.wednesday){\n returnStockLogistic.wednesday = stockLogistic.wednesday;\n }\n if(stockLogistic.thursday){\n returnStockLogistic.thursday = stockLogistic.thursday;\n }\n if(stockLogistic.friday){\n returnStockLogistic.friday = stockLogistic.friday;\n }\n if(stockLogistic.saturday){\n returnStockLogistic.saturday = stockLogistic.saturday;\n }\n if(stockLogistic.sunday){\n returnStockLogistic.sunday = stockLogistic.sunday;\n }\n });\n\n\n return returnStockLogistic;\n }\n\n function setCurrentWeekdayChoices(relatedStockLogistics) {\n var stockLogistic = getGenerallWeekdayChoice(relatedStockLogistics)\n\n if (stockLogistic) {\n vm.weekdaychoices.monday = stockLogistic.monday;\n vm.weekdaychoices.tuesday = stockLogistic.tuesday;\n vm.weekdaychoices.wednesday = stockLogistic.wednesday;\n vm.weekdaychoices.thursday = stockLogistic.thursday;\n vm.weekdaychoices.friday = stockLogistic.friday;\n vm.weekdaychoices.saturday = stockLogistic.saturday;\n vm.weekdaychoices.sunday = stockLogistic.sunday;\n } else {\n vm.weekdaychoices.monday = false;\n vm.weekdaychoices.tuesday = false;\n vm.weekdaychoices.wednesday = false;\n vm.weekdaychoices.thursday = false;\n vm.weekdaychoices.friday = false;\n vm.weekdaychoices.saturday = false;\n vm.weekdaychoices.sunday = false;\n }\n\n }\n\n function updateStockLogisiticsWeekdays(stockLogistic, weekdayChoices) {\n stockLogistic.monday = weekdayChoices.monday;\n stockLogistic.tuesday = weekdayChoices.tuesday;\n stockLogistic.wednesday = weekdayChoices.wednesday;\n stockLogistic.thursday = weekdayChoices.thursday;\n stockLogistic.friday = weekdayChoices.friday;\n stockLogistic.saturday = weekdayChoices.saturday;\n stockLogistic.sunday = weekdayChoices.sunday;\n }\n\n function createNewStockLogistics(variantDetail1Name, variantDetail2Name) {\n var newStockLogistic = {\n id: 0,\n location: {\n id: vm.selectedLocation.id,\n locationName: vm.selectedLocation.locationName,\n locationNumber: vm.selectedLocation.locationNumber\n },\n orderingPointMax: 0,\n orderingPointMin: 0,\n packSize: 0,\n monday: false,\n tuesday: false,\n wednesday: false,\n thursday: false,\n friday: false,\n saturday: false,\n sunday: false,\n isPriority: false\n };\n\n newStockLogistic['articleVariant'] = _.find(vm.selectedArticle.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.variantDetailName === variantDetail1Name &&\n articleVariant.variantDetail2.variantDetailName === variantDetail2Name;\n });\n\n return newStockLogistic;\n }\n\n function selectedLocationChanged(sender) {\n if (!sender.selectedItem) {\n return;\n }\n\n if (orderPointsGrid.columns !== undefined) {\n transferMaxGridDataToStockLogistics();\n }\n\n copyFromLocationToStockLogistic();\n\n vm.selectedLocation = sender.selectedItem;\n\n populateSelectableFromLocations();\n\n updateOrderPointsGridData();\n }\n\n function switchToOrderingPointMax() {\n transferMaxGridDataToStockLogistics();\n currentEditProperty = 'orderingPointMax';\n updateOrderPointsGridData();\n\n setAllTabSelectionsToFalse();\n vm.tabSelection.maxPoint = true;\n }\n\n function switchToOrderingPointMin() {\n transferMaxGridDataToStockLogistics();\n currentEditProperty = 'orderingPointMin';\n updateOrderPointsGridData();\n\n setAllTabSelectionsToFalse();\n vm.tabSelection.minPoint = true;\n }\n\n function switchToPackSize() {\n transferMaxGridDataToStockLogistics();\n currentEditProperty = 'packSize';\n updateOrderPointsGridData();\n\n setAllTabSelectionsToFalse();\n vm.tabSelection.packSize = true;\n }\n\n function setAllTabSelectionsToFalse() {\n var keys = Object.keys(vm.tabSelection);\n _.forEach(keys, function(key) {\n vm.tabSelection[key] = false;\n });\n }\n\n function generateAutoOrdersForAllStockLogistics() {\n loadSpinnerService.start('mainSpinner');\n StockLogisticsApiService.generateAutoOrders().then(function(response) {\n $state.go('order.ordersearch');\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function saveStockLogistics() {\n transferMaxGridDataToStockLogistics();\n copyFromLocationToStockLogistic();\n loadSpinnerService.start('mainSpinner');\n StockLogisticsApiService.saveStockLogistics({stockLogisticsDtos: vm.stockLogistics, autoMonthMultiplier: vm.selectedMultiplier}).then(function(response) {\n vm.stockLogistics = response.data;\n ToasterService.showSuccess($translate.instant('common.wasSaved'));\n }, function(error) {\n showWarningToaster(\"Error\");\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function populateSelectableFromLocations() {\n vm.selectableFromLocations = [];\n vm.selectableFromLocations.length = 0;\n var supplierLabel = $translate.instant('order.company');\n vm.selectableFromLocations.push({locationName: supplierLabel});\n _.forEach(vm.locations, function(location) {\n if (vm.selectedLocation.id !== location.id) {\n vm.selectableFromLocations.push(location);\n }\n });\n var currentStockLogistic = _.find(vm.stockLogistics, function(stockLogistic) {\n return stockLogistic.location.id === vm.selectedLocation.id;\n });\n\n if (currentStockLogistic !== undefined && currentStockLogistic.fromLocation !== undefined) {\n vm.selectedFromLocation = _.find(vm.selectableFromLocations, function(fromLocation) {\n return fromLocation.id === currentStockLogistic.fromLocation.id;\n });\n } else {\n vm.selectedFromLocation = vm.selectableFromLocations[0];\n }\n }\n\n function copyFromLocationToStockLogistic() {\n var currentStockLogistics = _.filter(vm.stockLogistics, function(stockLogistic) {\n return stockLogistic.location.id === vm.selectedLocation.id;\n });\n\n\n _.forEach(currentStockLogistics, function(currentStockLogistic) {\n if (!vm.selectedFromLocation.id) {\n currentStockLogistic.fromLocation = {};\n } else {\n currentStockLogistic.fromLocation = vm.selectedFromLocation;\n }\n });\n }\n\n function showWarningToaster(message) {\n var title = $translate.instant('common.warning');\n ToasterService.showWarning(message, title);\n }\n\n function printDebug() {\n console.log(\"vm.stockLogistics\");\n console.log(vm.stockLogistics);\n console.log(\"vm.selectedLocation\");\n console.log(vm.selectedLocation);\n }\n\n function productStateGo(stringState) {\n $state.go(stringState, \n {\n articleId: vm.selectedArticle.id,\n filter: $state.params.filter,\n currentPage: $state.params.currentPage,\n pageSize: $state.params.pageSize,\n inactive: $state.params.inactive,\n match: $state.params.match\n }\n );\n }\n}\n\n\nangular\n .module('stocklogistics.orderingpoints', [])\n .config(stateConfig)\n .controller('OrderingPointsController', OrderingPointsController);\n","// @ngInject\nfunction StockLogisticsApiService($q, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'stocklogistics';\n\n return {\n getByArticle: getByArticle,\n saveStockLogistics: saveStockLogistics,\n generateAutoOrders: generateAutoOrders,\n getByArticlesVariants: getByArticlesVariants,\n getArticleCollections: ResourcesService.apiFactory.get(endpoint + '/articlecollections'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getProduct: ResourcesService.apiFactory.get(endpoint + '/products'),\n getProductsForMassHandingOrderingPoints: getProductsForMassHandingOrderingPoints\n };\n\n function getByArticle(articleId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + '/stocklogistics/articles/' + articleId).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getByArticlesVariants(articleVariantIds) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + '/stocklogistics/articleVariants/', articleVariantIds).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function saveStockLogistics(stockLogistics) {\n var deferred = $q.defer();\n\n var jsonRequest = JSON.stringify(stockLogistics);\n\n DSHttpAdapter.POST(DS.defaults.basePath + '/stocklogistics', jsonRequest).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function generateAutoOrders() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'stocklogistics/createautoorders').then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getProductsForMassHandingOrderingPoints(selectedLocations, selectedMaingroups, selectedBrands, selectedCollections, selectedIsCurrent){\n var deferred = $q.defer();\n\n var request = {\n locationIds : [],\n mainGroupIds : [],\n brandIds : [],\n collectionIds : [],\n includeIsCurrent : selectedIsCurrent\n }\n\n _.forEach(selectedLocations, function(location){\n request.locationIds.push(location.id);\n });\n _.forEach(selectedMaingroups, function(mainGroup){\n request.mainGroupIds.push(mainGroup.id);\n });\n _.forEach(selectedBrands, function(brand){\n request.brandIds.push(brand.id);\n });\n _.forEach(selectedCollections, function(collection){\n request.collectionIds.push(collection.id);\n });\n\n DSHttpAdapter.POST(DS.defaults.basePath + '/stocklogistics/masshandlingorderingpoints/products', request).then(function(response){\n deferred.resolve(response);\n }, function(error){\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('stocklogistics.api', [])\n .factory('StockLogisticsApiService', StockLogisticsApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('stocklogistics', {\n url: '/stocklogistics',\n parent: 'main',\n abstract: true,\n templateUrl: 'main/stocklogistics/stocklogistics.tpl.html',\n controller: 'MainStockLogisticsController as vm'\n });\n}\n\n// @ngInject\nfunction MainStockLogisticsController() {\n var vm = this;\n}\n\nangular\n .module('main.stocklogistics', ['stocklogistics.api','stocklogistics.articletransfer','stocklogistics.orderingpoints', 'stocklogistics.masshandlingorderingpoints' , 'stocklogistics.eshopreplenishment', 'stocklogistics.orderingpoints.autoMonthMultiplierDialog'])\n .config(stateConfig)\n .controller('MainStockLogisticsController', MainStockLogisticsController);\n","// @ngInject\nfunction SupportApiService(ResourcesService, DSHttpAdapter, $q, DS) {\n\n var endpoint = 'support';\n\n return {\n changeItemGroup: ResourcesService.apiFactory.update(endpoint + '/changeitemgroup'),\n changeBarcode: ResourcesService.apiFactory.update(endpoint + '/changebarcode'),\n changeBarcodes: ResourcesService.apiFactory.update(endpoint + '/changebarcodes'),\n createLocation: ResourcesService.apiFactory.create(endpoint + '/createlocation'),\n deleteProduct: ResourcesService.apiFactory.delete(endpoint + '/deleteproduct'),\n mergeProducts: ResourcesService.apiFactory.update(endpoint + '/mergeproducts'),\n getItemGroupBriefs: ResourcesService.apiFactory.get(endpoint + '/itemgroups'),\n getLocationTypes: ResourcesService.apiFactory.get(endpoint + '/locationtypes'),\n getLocationCategories: ResourcesService.apiFactory.get(endpoint + '/locationcategories'),\n getProductBriefs: ResourcesService.apiFactory.get(endpoint + '/products'),\n getProduct: ResourcesService.apiFactory.get(endpoint + '/product'),\n changeIsGroupSaleArticle: ResourcesService.apiFactory.update(endpoint + '/changeisgroupsalearticle'),\n addVariantDetail: ResourcesService.apiFactory.create(endpoint + '/addvariantdetail'),\n addVariantDetails: ResourcesService.apiFactory.create(endpoint + '/addvariantdetails'),\n updateInventoryStatus: ResourcesService.apiFactory.update(endpoint + '/updateinventorystatus'),\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n createOriginalBalance: ResourcesService.apiFactory.create(endpoint + '/originalbalance'),\n getMissingEasyPosReceipts: getMissingEasyPosReceipts,\n triggerToChangeLog: triggerToChangeLog\n };\n\n function getMissingEasyPosReceipts(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/missingreceipts/easypos', request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function triggerToChangeLog(request, type) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/triggertochangelog/' + type, request).then(function (response) {\n deferred.resolve(response);\n }, function (error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('support.api', [])\n .factory('SupportApiService', SupportApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support', {\n url: '/support-975630f2-68b1-42ec-8302-2710af93a5e5',\n parent: 'main',\n abstract: true,\n templateUrl: \"main/support/support.tpl.html\",\n controller: \"SupportController as vm\"\n });\n}\n\n// @ngInject\nfunction SupportController() {\n var vm = this;\n}\n\nangular\n .module('main.support', ['support.supportcases'])\n .config(stateConfig)\n .controller('SupportController', SupportController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.addvariantdetail', {\n url:'/addvariantdetail',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/addvariantdetail/addvariantdetail.tpl.html',\n controller: 'SupportCaseAddVariantDetailController as vm'\n }},\n resolve: {\n variants: variantsResolver\n }\n });\n}\n\n// @ngInject\nfunction variantsResolver(VariantsApiService) {\n return VariantsApiService.getVariants();\n}\n\n// @ngInject\nfunction SupportCaseAddVariantDetailController($state, $scope, SupportApiService, variants, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.statisticName = 'UNKNOWN';\n vm.variantsToAdd = 1;\n vm.selectedVariant;\n vm.variants = variants;\n vm.fulltextInput = \"\";\n\n vm.autoSortOrder = true;\n vm.useListOfItems = false;\n \n vm.newVariantDetails = [];\n\n vm.variantDetailTemplate = {\n variantDetailName : '', \n sortOrder : 0,\n overrideAutoSort : false\n }\n\n updateListOfVariants();\n\n //Methods\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n vm.isAllowedToSave = isAllowedToSave;\n vm.updateListOfVariants = updateListOfVariants;\n vm.doAutoSortOrder = doAutoSortOrder;\n vm.convertToLines = convertToLines;\n\n activate();\n\n function activate() {\n console.log(vm.variants);\n $scope.$watch( vm.variantsToAdd , function() {\n if(vm.variantsToAdd < 1)\n vm.variantsToAdd = 1;\n else if(vm.variantsToAdd > 50)\n vm.variantsToAdd = 50;\n });\n //$scope.$watch(function() { return $state.params.variantId; }, function(newValue, oldValue) {\n // vm.selectedVariantId = parseInt($state.params.variantId, 10);\n //});\n }\n\n function convertToLines() {\n var splittedValues = vm.fulltextInput.split('\\n');\n\n var newVariantDetails = [];\n\n _.forEach(splittedValues, function(value){\n value = value.trim();\n var newDetail = angular.copy(vm.variantDetailTemplate);\n newDetail.variantDetailName = value;\n newVariantDetails.push(newDetail);\n });\n\n vm.newVariantDetails = newVariantDetails;\n vm.variantsToAdd = vm.newVariantDetails.length;\n updateListOfVariants();\n\n vm.fulltextInput = \"\";\n vm.useListOfItems = false;\n }\n\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmCreateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n statisticName : vm.statisticName, \n selectedVariantId : vm.selectedVariant.id,\n variantDetails : []\n };\n\n _.forEach(vm.newVariantDetails, function(variantDetail){\n request.variantDetails.push( \n {\n variantDetailName : variantDetail.variantDetailName,\n sortOrder : variantDetail.sortOrder\n });\n });\n\n SupportApiService.addVariantDetails(request).then(function(response) {\n console.log(response);\n if(response.length > 0){\n if(response.length !== request.variantDetails.length){\n ToasterService.showSuccess('Variantdetaljer upplagda', $translate.instant('support.supportCase'), 15000);\n var newArray = [];\n \n _.forEach(vm.newVariantDetails, function(variantDetail){\n _.forEach(response, function(resp){\n if(variantDetail.variantDetailName === resp){\n newArray.push(variantDetail);\n }\n }); \n });\n\n vm.newVariantDetails = newArray;\n }\n \n var message = '';\n _.forEach(response, function(res){\n message += '\"' + res + '\", ' + \"\\n\";\n });\n message += 'finns redan!';\n ToasterService.showError(message, $translate.instant('common.error'), 15000);\n }\n else{\n cancelEditing();\n ToasterService.showSuccess('Variantdetaljer upplagda', $translate.instant('support.supportCase'), 15000);\n }\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n \n function cancelEditing() {\n vm.selectedVariant = undefined;\n vm.statisticName = 'UNKNOWN';\n vm.variantsToAdd = 1;\n vm.newVariantDetails = [];\n updateListOfVariants();\n }\n\n function isAllowedToSave() {\n var returnValue = true;\n \n _.forEach(vm.newVariantDetails, function(variantDetail){\n if(returnValue){\n returnValue = variantDetail.variantDetailName.length > 0;\n }\n })\n\n return returnValue && vm.statisticName.length > 0;\n }\n\n function updateListOfVariants(){\n if(vm.variantsToAdd < 1)\n vm.variantsToAdd = 1;\n else if(vm.variantsToAdd > 50)\n vm.variantsToAdd = 50;\n\n while(vm.newVariantDetails.length > vm.variantsToAdd){\n vm.newVariantDetails.splice(-1,1);\n }\n while(vm.newVariantDetails.length < vm.variantsToAdd){\n vm.newVariantDetails.push(angular.copy(vm.variantDetailTemplate));\n }\n\n doAutoSortOrder();\n }\n \n function doAutoSortOrder(){\n if(vm.autoSortOrder){\n _.forEach(vm.newVariantDetails, function(variantDetail){\n if(!variantDetail.overrideAutoSort)\n variantDetail.sortOrder = asciiStringTranslate(variantDetail.variantDetailName);\n });\n }\n }\n\n function asciiStringTranslate(theString){\n var cleanedString = theString.toLowerCase().replace(/[^a-zA-Z0-9]+/g, '');\n var number = 0;\n\n\n if(!isNaN(cleanedString)){\n number = parseInt(cleanedString);\n }\n else{\n for(let i = 0; i < cleanedString.length; i++){\n if(isNaN(cleanedString.charAt(i)))\n number += cleanedString.charCodeAt(i);\n else\n number += parseInt(cleanedString.charAt(i));\n }\n\n if(!isNaN(cleanedString.charAt(0))){\n if(cleanedString.includes(\"s\"))\n number -= parseInt(cleanedString.charAt(0)) * 12;\n if(cleanedString.includes(\"l\"))\n number += parseInt(cleanedString.charAt(0)) * 82;\n }\n \n if(cleanedString.includes(\"s\"))\n number += 5;\n if(cleanedString.includes(\"m\"))\n number += 50\n if(cleanedString.includes(\"l\"))\n number += 100\n \n if(cleanedString.includes(\"s\"))\n number -= (cleanedString.match(/x/g) || []).length * 135;\n \n if(cleanedString.includes(\"l\"))\n number += (cleanedString.match(/x/g) || []).length * 5;\n \n }\n\n return number;\n }\n}\n\nangular\n .module('supportcases.addvariantdetail', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseAddVariantDetailController', SupportCaseAddVariantDetailController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.changebarcode', {\n url:'/changebarcode',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/changebarcode/changebarcode.tpl.html',\n controller: 'SupportCaseChangeBarcodeController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseChangeBarcodeController($state, $scope, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.isEditing = false;\n vm.selectedProduct = {};\n vm.selectedProductVariant = {};\n vm.selectedProductCopy = {};\n vm.selectedProductVariantCopy = {};\n vm.newBarcode = '';\n\n //Methods\n vm.recieveProduct = recieveProduct;\n vm.isAllowedToSave = isAllowedToSave;\n vm.startEditing = startEditing;\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n\n activate();\n\n function activate() {\n }\n\n function startEditing() {\n vm.isEditing = true;\n }\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmUpdateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.changeBarcode({ productVariantId: vm.selectedProductVariant.id, barcode: vm.newBarcode }).then(function(response) {\n cancelEditing();\n ToasterService.showSuccess($translate.instant('support.barcodeChanged'), $translate.instant('support.supportCase'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function cancelEditing() {\n vm.isEditing = false;\n removeProduct();\n }\n\n function recieveProduct(product) {\n vm.selectedProduct = product;\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.getProduct(vm.selectedProduct.id).then(function(response) {\n vm.selectedProduct = response;\n vm.selectedProductCopy = angular.copy(response);\n vm.selectedProductVariant = {};\n vm.selectedProductVariantCopy = {};\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n function removeProduct() {\n //vm.selectedProduct = {};\n vm.selectedProductVariant = {};\n //vm.selectedProductCopy = {};\n vm.selectedProductVariantCopy = {};\n vm.newBarcode = '';\n $scope.$broadcast('clearArticleEvent');\n }\n\n function isAllowedToSave() {\n return vm.selectedProduct && vm.selectedProduct.id > 0 &&\n vm.selectedProductVariant && vm.selectedProductVariant.id > 0;\n }\n}\n\nangular\n .module('supportcases.changebarcode', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseChangeBarcodeController', SupportCaseChangeBarcodeController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.changebarcodes', {\n url:'/changebarcodes',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/changebarcodes/changebarcodes.tpl.html',\n controller: 'SupportCaseChangeBarcodesController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseChangeBarcodesController($state, $scope, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.isEditing = false;\n vm.selectedProduct = {};\n vm.selectedProductVariant = {};\n vm.selectedProductCopy = {};\n vm.selectedProductVariantCopy = {};\n vm.newBarcode = '';\n\n //Methods\n vm.recieveProduct = recieveProduct;\n vm.isAllowedToSave = isAllowedToSave;\n vm.startEditing = startEditing;\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n vm.addBarcodeToProductVariant = addBarcodeToProductVariant;\n\n activate();\n\n function activate() {\n }\n\n function addBarcodeToProductVariant(productVariant) {\n productVariant.barcodes.push({\n barcode: '',\n id: -1\n });\n }\n\n function startEditing() {\n vm.isEditing = true;\n }\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmUpdateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n\n var request = {\n articleId: vm.selectedProductCopy.id,\n articleVariants: []\n };\n _.forEach(vm.selectedProductCopy.productVariants, function(artVar) {\n var requestArtVar = {\n articleVariantId: artVar.id,\n currentBarcode: artVar.barcode,\n newBarcode: artVar.newBarcode.trim(),\n barcodes: []\n };\n request.articleVariants.push(requestArtVar);\n\n _.forEach(artVar.barcodes, function(o) {\n o.newBarcode = o.newBarcode.trim();\n if (o.newBarcode.length > 0) {\n requestArtVar.barcodes.push(\n {\n articleVariantId: artVar.id,\n id: o.id,\n currentBarcode: o.barcode,\n newBarcode: o.newBarcode\n }\n );\n }\n });\n });\n\n SupportApiService.changeBarcodes(request).then(function(response) {\n cancelEditing();\n ToasterService.showSuccess('Streckkoder uppdaterade', $translate.instant('support.supportCase'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function cancelEditing() {\n vm.isEditing = false;\n removeProduct();\n }\n\n function recieveProduct(product) {\n vm.selectedProduct = product;\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.getProduct(vm.selectedProduct.id).then(function(response) {\n vm.selectedProduct = response;\n vm.selectedProductCopy = angular.copy(response);\n\n _.forEach(vm.selectedProductCopy.productVariants, function(o) {\n o.newBarcode = o.barcode;\n _.forEach(o.barcodes, function(br) {\n br.newBarcode = br.barcode;\n });\n });\n\n vm.selectedProductVariant = {};\n vm.selectedProductVariantCopy = {};\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n function removeProduct() {\n vm.selectedProductCopy = {};\n vm.newBarcode = '';\n $scope.$broadcast('clearArticleEvent');\n }\n\n function isAllowedToSave() {\n var hasChanged = false;\n _.forEach(vm.selectedProductCopy.productVariants, function(o) {\n if (o.newBarcode !== o.barcode) {\n hasChanged = true;\n }\n _.forEach(o.barcodes, function(br) {\n if (br.newBarcode !== br.barcode) {\n hasChanged = true;\n }\n });\n });\n\n return hasChanged;\n }\n}\n\nangular\n .module('supportcases.changebarcodes', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseChangeBarcodesController', SupportCaseChangeBarcodesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.changeisgroupsalearticle', {\n url:'/changeisgroupsalearticle',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/changeisgroupsalearticle/changeisgroupsalearticle.tpl.html',\n controller: 'SupportCaseChangeIsGroupSaleArticleController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseChangeIsGroupSaleArticleController($state, $scope, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.isEditing = false;\n vm.selectedProduct = {};\n vm.selectedProductVariant = {};\n vm.selectedProductCopy = {};\n vm.selectedProductVariantCopy = {};\n vm.isGroupSaleArticle = false;\n\n //Methods\n vm.recieveProduct = recieveProduct;\n vm.isAllowedToSave = isAllowedToSave;\n vm.startEditing = startEditing;\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n\n activate();\n\n function activate() {\n }\n\n function startEditing() {\n vm.isEditing = true;\n }\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmUpdateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.changeIsGroupSaleArticle({ articleId: vm.selectedProduct.id, isGroupSaleArticle: vm.isGroupSaleArticle }).then(function(response) {\n cancelEditing();\n ToasterService.showSuccess($translate.instant('support.isGroupArticleChanged'), $translate.instant('support.supportCase'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function cancelEditing() {\n vm.isEditing = false;\n }\n\n function recieveProduct(product) {\n vm.selectedProduct = product;\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.getProduct(vm.selectedProduct.id).then(function(response) {\n vm.selectedProduct = response;\n vm.isGroupSaleArticle = vm.selectedProduct.isGroupSaleArticle;\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n\n function isAllowedToSave() {\n return vm.selectedProduct && vm.selectedProduct.id > 0;\n }\n}\n\nangular\n .module('supportcases.changeisgroupsalearticle', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseChangeIsGroupSaleArticleController', SupportCaseChangeIsGroupSaleArticleController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.changeitemgroup', {\n url:'/changeitemgroup',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/changeitemgroup/changeitemgroup.tpl.html',\n controller: 'SupportCaseChangeItemGroupController as vm'\n }},\n resolve: {\n itemGroups: itemGroupResolver\n }\n });\n}\n\n// @ngInject\nfunction itemGroupResolver(SupportApiService) {\n return SupportApiService.getItemGroupBriefs();\n}\n\n// @ngInject\nfunction SupportCaseChangeItemGroupController($state, $scope, itemGroups, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.isEditing = false;\n vm.itemGroups = itemGroups.results;\n vm.selectedProduct = {};\n vm.selectedProductCopy = {};\n vm.selectedItemGroup = {};\n\n //Methods\n vm.recieveProduct = recieveProduct;\n vm.removeProduct = removeProduct;\n vm.isAllowedToSave = isAllowedToSave;\n vm.startEditing = startEditing;\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n\n activate();\n\n function activate() {\n }\n\n function startEditing() {\n vm.isEditing = true;\n vm.selectedItemGroup = {};\n vm.selectedProduct.preferredSupplier = {};\n vm.selectedProduct.suppliers = [];\n }\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmUpdateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var suppliers = _.map(vm.selectedProduct.suppliers, 'id');\n SupportApiService.changeItemGroup({ productId: vm.selectedProduct.id, itemGroupId: vm.selectedItemGroup.id, preferredSupplierId: vm.selectedProduct.preferredSupplier.id, supplierIds: suppliers }).then(function(response) {\n cancelEditing();\n ToasterService.showSuccess($translate.instant('support.itemGroupChanged'), $translate.instant('support.supportCase'));\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function cancelEditing() {\n vm.isEditing = false;\n removeProduct();\n }\n\n function recieveProduct(product) {\n vm.selectedProduct = product;\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.getProduct(vm.selectedProduct.id).then(function(response) {\n vm.selectedProduct = response;\n vm.selectedProductCopy = angular.copy(response);\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n function removeProduct() {\n vm.selectedProduct = {};\n vm.selectedProductCopy = {};\n vm.selectedItemGroup = {};\n $scope.$broadcast('clearArticleEvent');\n }\n\n function isAllowedToSave() {\n return vm.selectedProduct && vm.selectedProduct.id > 0 &&\n vm.selectedItemGroup && vm.selectedItemGroup.id > 0 &&\n vm.selectedProduct.suppliers && vm.selectedProduct.suppliers.length > 0 &&\n vm.selectedProduct.preferredSupplier && vm.selectedProduct.preferredSupplier.id > 0;\n }\n}\n\nangular\n .module('supportcases.changeitemgroup', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseChangeItemGroupController', SupportCaseChangeItemGroupController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.changevariantdetail', {\n url:'/changevariantdetail',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/changevariantdetail/changevariantdetail.tpl.html',\n controller: 'SupportCaseChangeVariantDetailController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseChangeVariantDetailController($state, $scope, SupportApiService,ArticleChangeVariantDetailDialogService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.selectedProduct = {};\n\n //Methods\n vm.recieveProduct = recieveProduct;\n vm.openEditVariantDetailDialog = openEditVariantDetailDialog;\n\n activate();\n\n function activate() {\n }\n\n function openEditVariantDetailDialog(){\n ArticleChangeVariantDetailDialogService.showDialog(vm.selectedProduct).then(function(response){\n if(response)\n $state.go($state.current.name,{},{reload: $state.current.name});\n });\n }\n\n function recieveProduct(product) {\n vm.selectedProduct = product;\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.getProduct(vm.selectedProduct.id).then(function(response) {\n vm.selectedProduct = response;\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n}\n\nangular\n .module('supportcases.changevariantdetail', ['support.api', 'product.articles.articleChangeVariantDetailDialog'])\n .config(stateConfig)\n .controller('SupportCaseChangeVariantDetailController', SupportCaseChangeVariantDetailController);","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.createlocation', {\n url:'/createlocation',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/createlocation/createlocation.tpl.html',\n controller: 'SupportCaseCreateLocationController as vm'\n }},\n resolve: {\n locationTypes: locationTypeResolver,\n locationCategories: locationCategoryResolver\n }\n });\n}\n\n// @ngInject\nfunction locationTypeResolver(SupportApiService) {\n return SupportApiService.getLocationTypes();\n}\n// @ngInject\nfunction locationCategoryResolver(SupportApiService) {\n return SupportApiService.getLocationCategories();\n}\n\n// @ngInject\nfunction SupportCaseCreateLocationController($state, $scope, locationTypes, locationCategories, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.isEditing = true;\n vm.locationTypes = locationTypes.results;\n vm.locationCategories = locationCategories.results;\n vm.location = {\n locationNumber: 0,\n locationName: '',\n organizationNumber: '',\n startDate: new Date(),\n locationTypeId: 0,\n locationCategoryId: 0,\n isActive: false\n };\n vm.selectedLocationType = {};\n vm.selectedLocationCategory = {};\n\n //Methods\n vm.isAllowedToSave = isAllowedToSave;\n vm.saveChange = saveChange;\n vm.resetForm = resetForm;\n\n activate();\n\n function activate() {\n }\n\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmCreateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n vm.location.locationCategoryId = vm.selectedLocationCategory.id;\n vm.location.locationTypeId = vm.selectedLocationType.id;\n SupportApiService.createLocation(vm.location).then(function(response) {\n ToasterService.showSuccess($translate.instant('support.locationCreated'), $translate.instant('support.supportCase'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function resetForm() {\n vm.location = {\n locationNumber: 0,\n locationName: '',\n organizationNumber: '',\n startDate: new Date(),\n locationTypeId: 0,\n locationCategoryId: 0,\n isActive: false\n };\n }\n\n function isAllowedToSave() {\n return vm.location &&\n vm.location.locationNumber && vm.location.locationNumber > 0 &&\n vm.location.locationName && vm.location.locationName.length > 0 &&\n vm.location.organizationNumber && vm.location.organizationNumber.length > 0 &&\n vm.selectedLocationCategory && vm.selectedLocationCategory.id > 0 &&\n vm.selectedLocationType && vm.selectedLocationType.id > 0;\n }\n}\n\nangular\n .module('supportcases.createlocation', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseCreateLocationController', SupportCaseCreateLocationController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.deleteproduct', {\n url:'/deleteproduct',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/deleteproduct/deleteproduct.tpl.html',\n controller: 'SupportCaseDeleteProductController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseDeleteProductController($state, $scope, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.selectedProduct = {};\n\n //Methods\n vm.recieveProduct = recieveProduct;\n vm.removeProduct = removeProduct;\n vm.isAllowedToDelete = isAllowedToDelete;\n vm.deleteProduct = deleteProduct;\n\n activate();\n\n function activate() {\n }\n\n function deleteProduct() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmDeleteData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.deleteProduct(vm.selectedProduct.id).then(function(response) {\n $scope.$broadcast('clearArticleEvent');\n ToasterService.showSuccess($translate.instant('support.productDeleted'), $translate.instant('support.supportCase'));\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n\n function recieveProduct(product) {\n vm.selectedProduct = product;\n }\n function removeProduct() {\n vm.selectedProduct = {};\n }\n\n function isAllowedToDelete() {\n return vm.selectedProduct && vm.selectedProduct.id > 0;\n }\n}\n\nangular\n .module('supportcases.deleteproduct', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseDeleteProductController', SupportCaseDeleteProductController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.mergeproducts', {\n url:'/mergeproducts',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/mergeproducts/mergeproducts.tpl.html',\n controller: 'SupportCaseMergeProductController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseMergeProductController($state, $scope, SupportApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.selectedToProduct = {};\n vm.selectedFromProduct1 = {};\n vm.selectedFromProduct2 = {};\n vm.selectedFromProduct3 = {};\n\n //Methods\n vm.recieveToProduct = recieveToProduct;\n vm.recieveFromProduct1 = recieveFromProduct1;\n vm.recieveFromProduct2 = recieveFromProduct2;\n vm.recieveFromProduct3 = recieveFromProduct3;\n vm.removeToProduct = removeToProduct;\n vm.removeFromProduct1 = removeFromProduct1;\n vm.removeFromProduct2 = removeFromProduct2;\n vm.removeFromProduct3 = removeFromProduct3;\n vm.isAllowedToMerge = isAllowedToMerge;\n vm.mergeProducts = mergeProducts;\n\n activate();\n\n function activate() {\n }\n\n function mergeProducts() {\n var toProduct = vm.selectedToProduct.id;\n var fromProduct1 = vm.selectedFromProduct1 ? vm.selectedFromProduct1.id : null;\n var fromProduct2 = vm.selectedFromProduct2 && vm.selectedFromProduct2.id ? vm.selectedFromProduct2.id : null;\n var fromProduct3 = vm.selectedFromProduct3 && vm.selectedFromProduct3.id ? vm.selectedFromProduct3.id : null;\n\n var message = '<div>' +\n 'Är du säker pÃ¥ att du vill slÃ¥ samman följande produkter? Handlingen gÃ¥r inte att Ã¥ngra.' + //$translate.instant(\"support.confirmMergeData\") +\n '<table style=\"width:100%; margin: 5px 10px;\">';\n message += '<thead><tr><th>Produktnummer</td><th>Lev. produktnummer</td><th>Produktnamn</td></tr></thead>';\n message += '<tbody>';\n if (fromProduct1 !== null) { message += '<tr><td>' + vm.selectedFromProduct1.articleNumber + '</td><td>' + vm.selectedFromProduct1.alternativeArticleNumber + '</td><td>' + vm.selectedFromProduct1.articleName + '</td></tr>'; }\n if (fromProduct2 !== null) { message += '<tr><td>' + vm.selectedFromProduct2.articleNumber + '</td><td>' + vm.selectedFromProduct2.alternativeArticleNumber + '</td><td>' + vm.selectedFromProduct2.articleName + '</td></tr>'; }\n if (fromProduct3 !== null) { message += '<tr><td>' + vm.selectedFromProduct3.articleNumber + '</td><td>' + vm.selectedFromProduct3.alternativeArticleNumber + '</td><td>' + vm.selectedFromProduct3.articleName + '</td></tr>'; }\n message += '<tr><td colspan=\"3\" style=\"text-align:center; padding: 10px 10px;\"> ↓ ↓ ↓ </td></tr>';\n message += '<tr><td>' + vm.selectedToProduct.articleNumber + '</td><td>' + vm.selectedToProduct.alternativeArticleNumber + '</td><td>' + vm.selectedToProduct.articleName + '</td></tr>';\n message += '</tbody>';\n message += '</table>';\n message += '</div>';\n\n confirmationDialogService.showDialog(message).then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n toProductId: toProduct,\n fromProduct1Id: fromProduct1,\n fromProduct2Id: fromProduct2,\n fromProduct3Id: fromProduct3\n };\n SupportApiService.mergeProducts(request).then(function(response) {\n $scope.$broadcast('clearArticleEvent');\n vm.selectedToProduct = {};\n vm.selectedFromProduct1 = {};\n vm.selectedFromProduct2 = {};\n vm.selectedFromProduct3 = {};\n ToasterService.showSuccess('Produkterna ihopslagna', //$translate.instant('support.productsMerged')\n $translate.instant('support.supportCase'));\n }, function(error) {\n ToasterService.showError(error.message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n\n function recieveToProduct(product) {\n vm.selectedToProduct = product;\n }\n function recieveFromProduct1(product) {\n vm.selectedFromProduct1 = product;\n }\n function recieveFromProduct2(product) {\n vm.selectedFromProduct2 = product;\n }\n function recieveFromProduct3(product) {\n vm.selectedFromProduct3 = product;\n }\n function removeToProduct() {\n vm.selectedToProduct = {};\n }\n function removeFromProduct1() {\n vm.selectedFromProduct1 = {};\n }\n function removeFromProduct2() {\n vm.selectedFromProduct2 = {};\n }\n function removeFromProduct3() {\n vm.selectedFromProduct3 = {};\n }\n\n function isAllowedToMerge() {\n var hasToProduct = vm.selectedToProduct && vm.selectedToProduct.id > 0;\n var hasFromProduct1 = vm.selectedFromProduct1 && vm.selectedFromProduct1.id > 0;\n var hasFromProduct2 = vm.selectedFromProduct2 && vm.selectedFromProduct2.id > 0;\n var hasFromProduct3 = vm.selectedFromProduct3 && vm.selectedFromProduct3.id > 0;\n\n return hasToProduct && (hasFromProduct1 || (hasFromProduct1 || hasFromProduct2 || hasFromProduct3));\n }\n}\n\nangular\n .module('supportcases.mergeproducts', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseMergeProductController', SupportCaseMergeProductController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.missingreceipts', {\n url:'/missingreceipts',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/missingreceipts/missingreceipts.tpl.html',\n controller: 'SupportCaseMissingReceiptsController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseMissingReceiptsController($state, $scope, SupportApiService, UsersApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.selectedStartDate = {};\n vm.selectedEndDate = {};\n vm.selectedLocations = [];\n vm.locations = [];\n vm.missingEasyPosReceipts = [];\n vm.showSequenceNumbers = false;\n\n //Methods\n vm.search = search;\n\n activate();\n\n function activate() {\n UsersApiService.getLocations().then(function(locations) {\n vm.locations = locations;\n });\n }\n function search() {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n startDate: vm.selectedStartDate,\n endDate: vm.selectedEndDate,\n locationIds: []\n };\n _.forEach(vm.selectedLocations, function(o) {\n request.locationIds.push(o.id);\n });\n SupportApiService.getMissingEasyPosReceipts(request).then(function(response) {\n //ToasterService.showSuccess($translate.instant('support.barcodeChanged'), $translate.instant('support.supportCase'));\n vm.missingEasyPosReceipts = response.data;\n vm.missingEasyPosSequenceNumbers = [];\n _.forEach(response.data.missingReceiptSpans, function(mrs) {\n _.forEach(mrs.missingReceipts, function(mr) {\n vm.missingEasyPosSequenceNumbers.push(mr.sequenceNumber);\n });\n });\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n}\n\nangular\n .module('supportcases.missingreceipts', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseMissingReceiptsController', SupportCaseMissingReceiptsController);\n","// @ngInject\r\nfunction stateConfig($stateProvider) {\r\n $stateProvider.state('support.supportcases.originalbalanceimport', {\r\n url:'/originalbalance',\r\n views: {\r\n 'supportView@support': {\r\n templateUrl: 'main/support/supportcases/originalbalanceimport/originalbalanceimport.tpl.html',\r\n controller: 'OriginalBalanceImportController as vm'\r\n }},\r\n resolve: {\r\n locations: locationsResolver\r\n }\r\n });\r\n}\r\n\r\n// @ngInject\r\nfunction locationsResolver(SupportApiService) {\r\n return SupportApiService.getLocations();\r\n}\r\n\r\n\r\n// @ngInject\r\nfunction OriginalBalanceImportController(loadSpinnerService, ToasterService, $translate, $scope, locations, SupportApiService) {\r\n var vm = this;\r\n\r\n vm.request = {};\r\n vm.displayRows = [];\r\n vm.locations = locations;\r\n\r\n vm.submitOriginalBalance = submitOriginalBalance;\r\n\r\n vm.selectedLocation = locations[0];\r\n\r\n var fileInputDomElement = $(\"#xlf\")[0];\r\n\r\n activate();\r\n\r\n function activate() {\r\n fileInputDomElement.addEventListener('change', function handleImportFileChanged(e) {\r\n var files = e.target.files;\r\n vm.importFileName = files[0].name;\r\n var i,f;\r\n for (i = 0, f = files[i]; i !== files.length; ++i) {\r\n handleImportFile(f);\r\n }\r\n }, false);\r\n\r\n vm.request = {\r\n fileName: '',\r\n locationId: 0,\r\n rows: [\r\n ]\r\n };\r\n\r\n $scope.$watch(function() { return vm.selectedLocation.id; }, function() {\r\n vm.request.locationId = vm.selectedLocation.id;\r\n });\r\n }\r\n\r\n function submitOriginalBalance() {\r\n loadSpinnerService.start('mainSpinner');\r\n SupportApiService.createOriginalBalance(vm.request).then(function(response) {\r\n ToasterService.showSuccess(\"Done\");\r\n }, function(error) {\r\n ToasterService.showError(error);\r\n }).finally(function() {\r\n loadSpinnerService.stop('mainSpinner',{force:true});\r\n });\r\n }\r\n\r\n function handleImportFile(file, revalidate) {\r\n var reader = new FileReader();\r\n vm.request.fileName = file.name;\r\n reader.onload = onLoadFunction;\r\n loadSpinnerService.start('mainSpinner');\r\n reader.readAsArrayBuffer(file);\r\n\r\n function onLoadFunction(e) {\r\n try {\r\n // --- File data read ---\r\n // From MDN: \"readAsBinaryString is deprecated and readAsArrayBuffer() should be used instead.\"\r\n\r\n // ReadAsArrayBuffer solution.\r\n var data = \"\";\r\n var bytes = new Uint8Array(e.target.result);\r\n var length = bytes.byteLength;\r\n for (var i = 0; i < length; i++) {\r\n data += String.fromCharCode(bytes[i]);\r\n }\r\n\r\n // --- XLSX ---\r\n // Read Excel data into a workbook object representation.\r\n var workbook = XLSX.read(data, {type: 'binary'});\r\n\r\n // Getting the name of the first sheet in the workbook.\r\n var firstSheetName = workbook.SheetNames[0];\r\n\r\n // Getting the sheet based on the firstSheetName.\r\n var workSheet = workbook.Sheets[firstSheetName];\r\n\r\n // The JSon representation of the worksheet returned by js-xlsx is pretty similar to how\r\n // we want our request data to be formatted.\r\n vm.JSonAdaptedSheetData = XLSX.utils.sheet_to_json(workSheet);\r\n\r\n vm.request.rows = [];\r\n vm.displayRows = [];\r\n _.forEach(vm.JSonAdaptedSheetData, function(row) {\r\n vm.request.rows.push({\r\n barcode: row.barcode,\r\n externalId: row.externalId,\r\n purchaseCostPerItem: row.purchaseCostPerItem,\r\n quantity: row.quantity,\r\n lastInventoriedDate: '1990-01-01 00:00:00'\r\n });\r\n if (vm.displayRows.length < 50) {\r\n vm.displayRows.push({\r\n barcode: row.barcode,\r\n externalId: row.externalId,\r\n purchaseCostPerItem: row.purchaseCostPerItem,\r\n quantity: row.quantity,\r\n lastInventoriedDate: '1990-01-01 00:00:00'\r\n });\r\n }\r\n });\r\n\r\n cleanColumnNames();\r\n\r\n extractImportFileColumnNames();\r\n } catch (error) {\r\n console.log(error);\r\n ToasterService.showError($translate.instant('productimport.errorWhileReadingImportFile'), $translate.instant('common.error'));\r\n } finally {\r\n loadSpinnerService.stop('mainSpinner');\r\n }\r\n }\r\n }\r\n\r\n // js-xlsx has done most of the work already. All we need to do is extract the javascript object property names\r\n function extractImportFileColumnNames() {\r\n if (vm.JSonAdaptedSheetData.length !== 0) {\r\n vm.importFileColumnNames = [];\r\n _.forEach(vm.JSonAdaptedSheetData, function(sheetData) {\r\n var keys = Object.keys(sheetData);\r\n\r\n _.forEach(keys, function(key) {\r\n if (!_.find(vm.importFileColumnNames, function(col) { return col.name === key; })) {\r\n var nameStr = normalizeString(key);\r\n if (!_.find(vm.importFileColumnNames, function(col) { return col.name === nameStr; })) {\r\n var newColumn = { id: vm.importFileColumnNames.length, name: nameStr };\r\n vm.importFileColumnNames.push(newColumn);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n function cleanColumnNames() {\r\n if (vm.JSonAdaptedSheetData.length !== 0) {\r\n for (var sheetIndex = 0; sheetIndex < vm.JSonAdaptedSheetData.length; sheetIndex++) {\r\n var sheetData = vm.JSonAdaptedSheetData[sheetIndex];\r\n var keys = Object.keys(sheetData);\r\n\r\n for (var keyIndex = 0; keyIndex < keys.length; keyIndex++) {\r\n var key = keys[keyIndex];\r\n var origKey = key;\r\n var keyStr = normalizeString(key);\r\n //Check if the key has changed after normalization, if yes replace the kolumn with the new name\r\n if (origKey !== keyStr) {\r\n sheetData[keyStr] = sheetData[origKey];\r\n var index = keys.indexOf(origKey);\r\n keys[index] = keyStr;\r\n sheetData = _.pick(sheetData, keys);\r\n }\r\n }\r\n\r\n vm.JSonAdaptedSheetData[sheetIndex] = sheetData;\r\n }\r\n }\r\n }\r\n\r\n function normalizeString(str) {\r\n //Make sure string contains only letters, numbers and some special characters\r\n var retVal = str;\r\n var r = /[^ ()/\\\\0-9\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]+/g;\r\n retVal = str.replace(r, '');\r\n //Make sure there are no extra whitespace\r\n var r2 = /[\\s]{2,}/g;\r\n retVal = retVal.replace(r2, ' ');\r\n //Remove leading and trailing whitespace\r\n retVal = retVal.trim();\r\n return retVal;\r\n }\r\n\r\n}\r\n\r\nangular\r\n.module('supportcases.originalbalanceimport', [])\r\n.config(stateConfig)\r\n.controller('OriginalBalanceImportController', OriginalBalanceImportController);\r\n\r\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases', {\n url: '',\n views: {\n 'supportList': {\n templateUrl: 'main/support/supportcases/supportcases.tpl.html',\n controller: 'SupportCasesController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCasesController() {\n}\n\nangular\n .module('support.supportcases', [\n 'support.api',\n 'supportcases.addvariantdetail',\n 'supportcases.changebarcode',\n 'supportcases.changebarcodes',\n 'supportcases.changevariantdetail',\n 'supportcases.changeisgroupsalearticle',\n 'supportcases.changeitemgroup',\n 'supportcases.createlocation',\n 'supportcases.deleteproduct',\n 'supportcases.mergeproducts',\n 'supportcases.missingreceipts',\n 'supportcases.triggertochangelog',\n 'supportcases.updateinventorystatus',\n 'supportcases.originalbalanceimport'\n ])\n .config(stateConfig)\n .controller('SupportCasesController', SupportCasesController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.triggertochangelog', {\n url:'/triggertochangelog',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/triggertochangelog/triggertochangelog.tpl.html',\n controller: 'SupportCaseTriggerToChangeLogController as vm'\n }},\n resolve: {\n pricelists: pricelistsResolver,\n locations: locationsResolver\n }\n });\n}\n\n// @ngInject\nfunction pricelistsResolver(LocationsApiService) {\n return LocationsApiService.getPricelists();\n}\n\n// @ngInject\nfunction locationsResolver(StockApiService) {\n return StockApiService.getLocations();\n}\n\n// @ngInject\nfunction SupportCaseTriggerToChangeLogController($state, $scope, SupportApiService, loadSpinnerService, ToasterService, $translate, pricelists, locations) {\n var vm = this;\n\n //Properties\n vm.testRun = true;\n vm.tabSelection = 'orders';\n vm.priceLists = pricelists;\n vm.locations = locations;\n vm.selectedLocationIds = [];\n vm.selectedPriceListId = '';\n vm.updateOrderIds = [];\n vm.updateCustomerOrderIds = [];\n vm.updateProductIds = [];\n vm.updateProductVariantIds = [];\n vm.updateStockIds = [];\n vm.updatePriceListItemIds = [];\n\n //Methods\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n vm.isAllowedToSave = isAllowedToSave;\n vm.changeTab = changeTab;\n\n activate();\n\n function activate() {\n }\n\n function saveChange() {\n loadSpinnerService.start(\"mainSpinner\");\n var request = {\n searchTerm: vm.searchTerm,\n testRun: vm.testRun\n };\n switch (vm.tabSelection) {\n //case 'orders': break;\n //case 'customerorders': break;\n //case 'products': break;\n //case 'productvariants': break;\n case 'stocks':\n request.locationIds = _.map(vm.selectedLocationIds, function(o) { return o.id; }); break;\n case 'pricelistitems':\n request.priceListId = vm.selectedPriceListId.id; break;\n }\n\n SupportApiService.triggerToChangeLog(request, vm.tabSelection).then(function(response) {\n vm.updateOrderIds = [];\n vm.updateCustomerOrderIds = [];\n vm.updateProductIds = [];\n vm.updateProductVariantIds = [];\n vm.updateStockIds = [];\n vm.updatePriceListItemIds = [];\n switch (vm.tabSelection) {\n case 'orders': vm.updateOrderIds = response.data.orderIds; break;\n case 'customerorders': vm.updateCustomerOrderIds = response.data.customerOrderIds; break;\n case 'products': vm.updateProductIds = response.data.productIds; break;\n case 'productvariants': vm.updateProductVariantIds = response.data.productVariantIds; break;\n case 'stocks': vm.updateStockIds = response.data.stockIds; break;\n case 'pricelistitems': vm.updatePriceListItemIds = response.data.priceListItemIds; break;\n }\n\n ToasterService.showSuccess('Triggat objekten. Se lista.', $translate.instant('support.supportCase'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n function cancelEditing() {\n reset();\n }\n function isAllowedToSave() {\n var hasSetSearchTerm = vm.searchTerm && vm.searchTerm.length > 0;\n var hasExtraCondition = true;\n switch (vm.tabSelection) {\n //case 'orders': break;\n //case 'customerorders': break;\n //case 'products': break;\n //case 'productvariants': break;\n default: hasExtraCondition = true; break;\n case 'stocks': hasExtraCondition = vm.selectedLocationIds.length > 0; break;\n case 'pricelistitems': hasExtraCondition = vm.selectedPriceListId && vm.selectedPriceListId.id > 0; break;\n }\n return hasSetSearchTerm && hasExtraCondition;\n }\n\n function changeTab(tab) {\n switch (tab) {\n case 'orders':\n vm.tabSelection = 'orders'; reset(); break;\n case 'customerorders':\n vm.tabSelection = 'customerorders'; reset(); break;\n case 'products':\n vm.tabSelection = 'products'; reset(); break;\n case 'productvariants':\n vm.tabSelection = 'productvariants'; reset(); break;\n case 'stocks':\n vm.tabSelection = 'stocks'; reset(); break;\n case 'pricelistitems':\n vm.tabSelection = 'pricelistitems'; reset(); break;\n }\n }\n function reset() {\n vm.testRun = true;\n vm.searchTerm = '';\n vm.updateOrderIds = [];\n vm.updateCustomerOrderIds = [];\n vm.updateProductIds = [];\n vm.updateProductVariantIds = [];\n vm.updateStockIds = [];\n vm.updatePriceListItemIds = [];\n vm.selectedLocationIds = [];\n vm.selectedPriceListId = '';\n }\n}\n\nangular\n .module('supportcases.triggertochangelog', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseTriggerToChangeLogController', SupportCaseTriggerToChangeLogController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('support.supportcases.updateinventorystatus', {\n url:'/updateinventorystatus',\n views: {\n 'supportView@support': {\n templateUrl: 'main/support/supportcases/updateinventorystatus/updateinventorystatus.tpl.html',\n controller: 'SupportCaseUpdateInventoryStatusController as vm'\n }},\n resolve: {\n }\n });\n}\n\n// @ngInject\nfunction SupportCaseUpdateInventoryStatusController($state, $scope, SupportApiService, InventoryingApiService, loadSpinnerService, ToasterService, confirmationDialogService, $translate) {\n var vm = this;\n\n //Properties\n vm.isEditing = false;\n vm.selectedInventory = {};\n /*\n Created,\n FileImported,\n Pending,\n Completed,\n Deleted\n */\n vm.selectedInventoryStatus = '';\n vm.inventoryStatuses = [\n { id: 0, statusName: 'Created', value: 'created' },\n { id: 1, statusName: 'FileImported', value: 'fileImported' },\n { id: 2, statusName: 'Pending', value: 'pending' },\n { id: 3, statusName: 'Completed', value: 'completed' },\n { id: 4, statusName: 'Deleted', value: 'deleted' }\n ];\n vm.inventories = [];\n vm.currentPage = 1;\n vm.itemsPerPage = 10;\n vm.totalItems = 0;\n vm.searchTerm = '';\n\n //Methods\n vm.selectInventory = selectInventory;\n vm.isAllowedToSave = isAllowedToSave;\n vm.startEditing = startEditing;\n vm.saveChange = saveChange;\n vm.cancelEditing = cancelEditing;\n vm.searchTermChange = searchTermChange;\n\n activate();\n\n function activate() {\n loadInventories();\n }\n\n function loadInventories() {\n loadSpinnerService.start('mainSpinner');\n InventoryingApiService.getAll(vm.currentPage, vm.searchTerm, vm.itemsPerPage).then(function(response) {\n vm.inventories = response.data;\n vm.totalItems = response.totalItems;\n formatPlannedDeliveryDate(vm.inventories);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n });\n }\n function searchTermChange() {\n loadInventories();\n }\n\n function formatPlannedDeliveryDate(orders) {\n for (var i = 0; i < orders.length; i++) {\n var order = orders[i];\n order.inventoryDate = order.inventoryDate.split('T')[0];\n }\n }\n\n function startEditing() {\n vm.isEditing = true;\n }\n function saveChange() {\n confirmationDialogService.showDialog('<div>' + $translate.instant(\"support.confirmUpdateData\") + '</div>').then(function (result) {\n if (result === true) {\n loadSpinnerService.start(\"mainSpinner\");\n SupportApiService.updateInventoryStatus({ inventoryId: vm.selectedInventory.id, status: vm.selectedInventoryStatus.value }).then(function(response) {\n cancelEditing();\n loadInventories();\n ToasterService.showSuccess($translate.instant('support.isInventoryStatusChanged'), $translate.instant('support.supportCase'));\n }, function(error) {\n var message = error.message + '\\n';\n _.forEach(error.errors, function(err) {\n message += err.message + '\\n';\n });\n ToasterService.showError(message, $translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop(\"mainSpinner\");\n });\n }\n });\n }\n function cancelEditing() {\n vm.isEditing = false;\n vm.selectedInventoryStatus = '';\n vm.selectedInventory = {};\n }\n\n function selectInventory(inventory) {\n vm.selectedInventory = inventory;\n }\n\n function isAllowedToSave() {\n var hasSelectedInventory = vm.selectedInventory && vm.selectedInventory.id > 0;\n var hasSelectedInventoryStatus = vm.selectedInventoryStatus && vm.selectedInventoryStatus.id > 0;\n return hasSelectedInventory && hasSelectedInventoryStatus;\n }\n}\n\nangular\n .module('supportcases.updateinventorystatus', ['support.api'])\n .config(stateConfig)\n .controller('SupportCaseUpdateInventoryStatusController', SupportCaseUpdateInventoryStatusController);\n","// @ngInject\nfunction TimedOutLoginDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(username, expireDate) {\n\n var modalDefaults = {\n backdrop: false,\n keyboard: false,\n controller: 'TimedOutLoginDialogController as vm',\n templateUrl: 'main/timedOutLoginDialog/timedOutLoginDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n username: function() {\n return username;\n },\n expireDate: function() {\n return expireDate;\n },\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction TimedOutLoginDialogController($uibModalInstance, $translate, ToasterService, loadSpinnerService, $interval, $scope, username, expireDate, AuthService) {\n var vm = this;\n\n vm.state = 0; // State 0 = Keep session?, State 1 = Are you sure?, State 2 = Refresh error!, State 3 = Refresh success!, State 4 = Hidden\n vm.password = \"\";\n vm.username = username;\n vm.timer = {\n expireDate: expireDate,\n minutes: 0,\n seconds: 0,\n displayValue: '5:00'\n }\n vm.errorMessage = '';\n vm.refreshSuccess = false;\n vm.successCountDownTimer = 5;\n var timerIntervalPromise;\n\n vm.closeModal = closeModal;\n vm.refreshSession = refreshSession;\n\n recalculateTimer();\n activate();\n\n function activate()\n {\n loadSpinnerService.start('mainSpinner');\n timerIntervalPromise = $interval(recalculateTimer, 1000);\n }\n\n function recalculateTimer(){\n var timeLeft = Date.parse(vm.timer.expireDate)-Date.parse(new Date());\n\n if(timeLeft <= 0)\n {\n location.reload();\n return;\n }\n\n vm.timer.minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60));\n vm.timer.seconds = Math.floor((timeLeft % (1000 * 60)) / 1000);\n\n vm.timer.displayValue = vm.timer.minutes + ':';\n\n if(vm.timer.seconds < 10)\n vm.timer.displayValue += '0' + vm.timer.seconds.toString();\n else\n vm.timer.displayValue += vm.timer.seconds.toString();\n }\n \n function SuccessCountDownCloseModal(){\n vm.successCountDownTimer--;\n if(vm.successCountDownTimer === 0){\n closeModal()\n }\n }\n\n function closeModal() {\n loadSpinnerService.stop('mainSpinner', {force: true});\n $interval.cancel(timerIntervalPromise);\n $uibModalInstance.close(vm.refreshSuccess);\n }\n\n function refreshSession(){\n vm.state = 4;\n AuthService.refreshSession(function(success, errorMessage){\n\n if(success){\n vm.state = 3;\n vm.refreshSuccess = success;\n ToasterService.showSuccess($translate.instant('login.refreshsession.success'), $translate.instant('common.done'), 10000);\n $interval.cancel(timerIntervalPromise);\n //To automaticlly close modal after 5 seconds.\n timerIntervalPromise = $interval(SuccessCountDownCloseModal, 1000);\n }else {\n vm.state = 2;\n vm.errorMessage = errorMessage;\n }\n \n });\n }\n}\n\nangular\n .module('timedOutLoginDialog.timedOutLoginDialog', [])\n .service('TimedOutLoginDialogService', TimedOutLoginDialogService)\n .controller('TimedOutLoginDialogController', TimedOutLoginDialogController);","// @ngInject\nfunction TimeStampsAdministrationDialog($uibModal, TimeStampingApiService) {\n\n return {\n showDialog: showDialog,\n showDialogNewDate: showDialogNewDate\n };\n\n function showDialog(timeStampDayId, locId, userId) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'TimeStampsAdministrationDialogController as vm',\n templateUrl: 'main/timestamp/timeStampsAdministrationDialog/timeStampsAdministrationDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n timeStampDay: function() {\n return TimeStampingApiService.getTimeStampDayById(timeStampDayId);\n },\n locationId: function() {\n return locId;\n },\n user: function() {\n return TimeStampingApiService.getUser(userId);\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n\n function showDialogNewDate(newDate, locId, userId) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'TimeStampsAdministrationDialogController as vm',\n templateUrl: 'main/timestamp/timeStampsAdministrationDialog/timeStampsAdministrationDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n timeStampDay: function() {\n return {\n data: {\n id: 0,\n note: \"\",\n date: newDate,\n notify: false,\n isAccepted: false,\n userTimeStamps: []\n }\n };\n },\n locationId: function() {\n return locId;\n },\n user: function() {\n return TimeStampingApiService.getUser(userId);\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction TimeStampsAdministrationDialogController($scope, user, timeStampDay, locationId, TimeStampingApiService, $uibModalInstance) {\n var vm = this;\n var stampsHistoryGrid = {};\n\n vm.timeStampDay = timeStampDay.data;\n vm.timeStampPairs = [];\n vm.location = {};\n vm.showStampsForAllLocations = false;\n vm.user = user;\n\n vm.newInStamp = {\n id: 0,\n dateTime: new Date(),\n user: {},\n location: {id: locationId},\n modifyingUser: {},\n timeStampType: { timeStampSystemType: 'In' },\n note: ''\n };\n vm.newOutStamp = {\n id: 0,\n dateTime: new Date(),\n user: {},\n location: {id: locationId},\n modifyingUser: {},\n timeStampType: { timeStampSystemType: 'Out' },\n note: ''\n };\n\n vm.captureStampsHistoryGrid = captureStampsHistoryGrid;\n vm.createNewTimeStamp = createNewTimeStamp;\n vm.deleteTimeStampPair = deleteTimeStampPair;\n vm.saveTimeStampingDayNote = saveTimeStampingDayNote;\n\n vm.allowTimeSpanCreation = allowTimeSpanCreation;\n\n activate();\n\n function activate() {\n TimeStampingApiService.getLocation(locationId).then(function(response) {\n vm.location = response;\n resetNewTimeStampsTimes();\n constructTimeStampPairs();\n }, function(error) {\n console.log(error);\n });\n\n $scope.$watch(function() {\n return vm.showStampsForAllLocations;\n }, function() {\n console.log(\"Watch triggered\");\n constructTimeStampPairs();\n });\n }\n\n function constructTimeStampPairs() {\n vm.timeStampPairs.length = 0;\n vm.timeStampPairs = [];\n var inStamps = _.filter(vm.timeStampDay.userTimeStamps, function(timeStamp) {\n return timeStamp.timeStampType.timeStampSystemType === 'in';\n });\n\n var outStamps = _.filter(vm.timeStampDay.userTimeStamps, function(timeStamp) {\n return timeStamp.timeStampType.timeStampSystemType === 'out';\n });\n\n for (var i = 0; i < inStamps.length; i++) {\n var currentInStamp = inStamps[i];\n\n var currentOutStamp = {dateTime: \"--:--:--\"};\n if (outStamps.length >= i) { currentOutStamp = outStamps[i]; }\n if (currentOutStamp === undefined) {\n currentOutStamp = {dateTime: \"--:--:--\"};\n }\n\n var timeSpan = Math.abs(new Date(currentOutStamp.dateTime) - new Date(currentInStamp.dateTime));\n\n var timeStampPair = {\n inStamp: currentInStamp,\n outStamp: currentOutStamp,\n span: (timeSpan / 1000 / 60 / 60).toFixed(2)\n };\n\n if ((vm.showStampsForAllLocations) || (!vm.showStampsForAllLocations && timeStampPair.inStamp.location.id === locationId)) {\n vm.timeStampPairs.push(timeStampPair);\n }\n }\n\n vm.timeStampPairs = _.sortBy(vm.timeStampPairs, function(pair) {\n return pair.inStamp.dateTime;\n });\n }\n\n //TODO: Fix this to actually work.\n function roundDateToNearestFiveMinutes(date) {\n console.log(\"Rounding the following date:\");\n console.log(date);\n var coefficient = 1000 * 60 * 5;\n var rounded = new Date(Math.round(date.getTime() / coefficient) * coefficient);\n return date;\n }\n\n function captureStampsHistoryGrid(s) {\n console.log(\"Grid captured\");\n stampsHistoryGrid = s;\n }\n\n function createNewTimeStamp() {\n vm.newInStamp.dateTime = new Date(Date.UTC(vm.newInStamp.dateTime.getFullYear(), vm.newInStamp.dateTime.getMonth(),\n vm.newInStamp.dateTime.getDate(), vm.newInStamp.dateTime.getHours(),\n vm.newInStamp.dateTime.getMinutes(), vm.newInStamp.dateTime.getSeconds()));\n\n vm.newOutStamp.dateTime = new Date(Date.UTC(vm.newOutStamp.dateTime.getFullYear(), vm.newOutStamp.dateTime.getMonth(),\n vm.newOutStamp.dateTime.getDate(), vm.newOutStamp.dateTime.getHours(),\n vm.newOutStamp.dateTime.getMinutes(), vm.newOutStamp.dateTime.getSeconds()));\n\n vm.timeStampDay.userTimeStamps.push(vm.newInStamp);\n vm.timeStampDay.userTimeStamps.push(vm.newOutStamp);\n\n if (vm.timeStampDay.id === 0) {\n vm.timeStampDay.user = vm.user;\n }\n\n $uibModalInstance.startLoadingSpinner();\n TimeStampingApiService.updateTimeStampDay(vm.timeStampDay).then(function(response) {\n console.log(\"Response\");\n console.log(response);\n\n vm.timeStampDay = response.data;\n\n constructTimeStampPairs();\n\n stampsHistoryGrid.refresh();\n stampsHistoryGrid.collectionView.refresh();\n\n console.log(\"returning vm.timeStampDay\");\n console.log(vm.timeStampDay);\n }, function(error) {\n console.log(error);\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n });\n\n resetNewTimeStampsTimes();\n }\n\n function deleteTimeStampPair(pair) {\n TimeStampingApiService.deleteTimeStamp(pair.inStamp.id).then(function(response) {\n TimeStampingApiService.deleteTimeStamp(pair.outStamp.id).then(function(response) {\n console.log(\"vm.timeStampPairs (before removal)\");\n console.log(vm.timeStampPairs);\n\n vm.timeStampPairs = _.reject(vm.timeStampPairs, function(p) {\n return p.inStamp.id === pair.inStamp.id &&\n p.outStamp.id === pair.outStamp.id;\n });\n vm.timeStampDay.userTimeStamps = _.reject(vm.timeStampDay.userTimeStamps, function(timeStamp) {\n return timeStamp.id === pair.inStamp.id;\n });\n vm.timeStampDay.userTimeStamps = _.reject(vm.timeStampDay.userTimeStamps, function(timeStamp) {\n return timeStamp.id === pair.outStamp.id;\n });\n\n console.log(\"vm.timeStampPairs (after removal):\");\n console.log(vm.timeStampPairs);\n\n resetNewTimeStampsTimes();\n constructTimeStampPairs();\n\n stampsHistoryGrid.refresh();\n stampsHistoryGrid.collectionView.refresh();\n\n console.log(\"DONE\");\n }, function(error) {\n console.log(error);\n });\n\n }, function(error) {\n console.log(error);\n });\n }\n\n function saveTimeStampingDayNote() {\n $uibModalInstance.startLoadingSpinner();\n TimeStampingApiService.updateTimeStampDay(vm.timeStampDay).then(function(response) {\n console.log(\"Note saved. Respose:\");\n console.log(response);\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n });\n }\n\n function allowTimeSpanCreation() {\n var newInTime = vm.newInStamp.dateTime;\n var newOutTime = vm.newOutStamp.dateTime;\n\n var isAllowed = true;\n\n _.forEach(vm.timeStampPairs, function(timeStampPair) {\n var momentNewInTime = moment(newInTime);\n var momentNewOutTime = moment(newOutTime);\n\n var momentOldInTime = moment(timeStampPair.inStamp.dateTime);\n var momentOldOutTime = moment(timeStampPair.outStamp.dateTime);\n\n if ((momentNewInTime.isAfter(timeStampPair.inStamp.dateTime) && momentNewInTime.isBefore(timeStampPair.outStamp.dateTime)) ||\n momentOldInTime.isAfter(newInTime) && momentOldInTime.isBefore(newOutTime)) {\n isAllowed = false;\n }\n\n });\n\n if (moment(newInTime).isAfter(newOutTime)) {\n isAllowed = false;\n }\n\n return isAllowed;\n }\n\n function resetNewTimeStampsTimes() {\n var date = new Date(vm.timeStampDay.date);\n vm.newInStamp.dateTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n vm.newOutStamp.dateTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n }\n\n}\n\nangular\n .module('timestamp.timeStampsAdministration', [])\n .service('TimeStampsAdministrationDialog', TimeStampsAdministrationDialog)\n .controller('TimeStampsAdministrationDialogController', TimeStampsAdministrationDialogController);\n","angular.module('main.timestamp', ['timestamping.api','timestamp.userTimeStamping','timestamp.timeStampsAdministration','timestamp.timestampingusers','timestamp.timestampingmanagement']);\n","// @ngInject\nfunction TimeStampingApiService($q, $window, $http, DS, DSHttpAdapter, ResourcesService) {\n\n var endpoint = 'usertimestamps';\n\n return {\n stampIn: stampIn,\n stampOut: stampOut,\n getLatestTimeStamps: getLatestTimeStamps,\n getTimeStampingUsers: getTimeStampingUsers,\n getLatestTimeStampDays: getLatestTimeStampDays,\n updateTimeStampDay: updateTimeStampDay,\n getNotificationMarkedTimeStampDays: getNotificationMarkedTimeStampDays,\n getTimeStampDaysInDateRange: getTimeStampDaysInDateRange,\n getTimeStampDayById: getTimeStampDayById,\n deleteTimeStamp: deleteTimeStamp,\n attestTimeStampDays: attestTimeStampDays,\n unattestTimeStampDays: unattestTimeStampDays,\n getWorkingTime: getWorkingTime,\n getTimeReports: getTimeReports,\n updateTimeReport: updateTimeReport,\n createTimeReport: createTimeReport,\n downloadExcelFile: downloadExcelFile,\n getLocations: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getLocation: ResourcesService.apiFactory.get(endpoint + '/locations'),\n getUser: ResourcesService.apiFactory.get(endpoint + '/users'),\n getMe: ResourcesService.apiFactory.get(endpoint + '/me')\n };\n\n function stampIn(requestData) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'usertimestamps/stampin', requestData).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function stampOut(requestData) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'usertimestamps/stampout', requestData).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getLatestTimeStamps(numberOfTimeStamps) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/latest/' + numberOfTimeStamps).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getTimeStampingUsers(startDate, endDate, locationId, page, pageSize, searchTerms) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(searchTerms)) {\n params.searchTerm = searchTerms;\n }\n\n params.locationId = locationId;\n params.startDate = startDate;\n params.endDate = endDate;\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/users', {params: params}).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getLatestTimeStampDays(numberOfTimeStampDays) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/days/latest/' + numberOfTimeStampDays).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateTimeStampDay(timeStampDay) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'usertimestamps/days/', timeStampDay).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getNotificationMarkedTimeStampDays(userId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/days/notifications/user/' + userId).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getTimeStampDaysInDateRange(userId, startDate, endDate, location) {\n var deferred = $q.defer();\n\n var locationId = location.id;\n\n var dateRange = {\n startDate: startDate,\n endDate: endDate\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/days/range/users/' + userId + '/locations/' + locationId, {params: dateRange}).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getTimeStampDayById(timeStampDayId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/days/' + timeStampDayId).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteTimeStamp(timeStampId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.DEL(DS.defaults.basePath + 'usertimestamps/' + timeStampId).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function attestTimeStampDays(timeStampIds) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'usertimestamps/days/attest', timeStampIds).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function unattestTimeStampDays(timeStampIds) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'usertimestamps/days/unattest', timeStampIds).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getWorkingTime(startDate, endDate) {\n var deferred = $q.defer();\n\n var params = {\n startDate: startDate,\n endDate: endDate\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/workedtime', {params: params}).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getTimeReports(startDate, endDate, userId) {\n var deferred = $q.defer();\n\n var params = {\n startDate: startDate,\n endDate: endDate\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'usertimestamps/reports/user/' + userId, {params: params}).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateTimeReport(timeReport) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'usertimestamps/timereport', timeReport).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createTimeReport(timeReport) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'usertimestamps/timereport', timeReport).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadExcelFile(request) {\n var url = $window.URL || $window.webkitURL;\n\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'usertimestamps/excelprint', request, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, \"time.xlsx\");\n } else {\n var downloadUrl = url.createObjectURL(blob);\n $window.location = downloadUrl;\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('timestamping.api', [])\n .factory('TimeStampingApiService', TimeStampingApiService);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.timestampingmanagement', {\n url: '/timestamping',\n views: {\n \"wideColumnView@contacts\": {\n templateUrl: 'main/timestamp/timestampingusers/timestamping/timestamping.tpl.html',\n controller: 'TimeStampingManagementController as vm'\n }\n },\n resolve: {\n locations: locationsResover\n }\n });\n}\n\n// @ngInject\nfunction locationsResover(TimeStampingApiService) {\n return TimeStampingApiService.getLocations();\n}\n\n// @ngInject\nfunction TimeStampingManagementController($stateParams, $q, $scope, $translate, locations, TimeStampingApiService, TimeStampsAdministrationDialog, loadSpinnerService, AuthService, ToasterService) {\n var vm = this;\n var lastSelectedUser = {};\n\n var today = new Date();\n var timeStampsGrid = {};\n var timeReportsCopy = {};\n\n var newTimeReportDatePicker = {};\n\n var timeReportsGrid = {};\n var startDateInitialized = false;\n var endDateInitialized = false;\n\n vm.currentPage = 0;\n vm.itemsPerPage = 10;\n vm.searchTerm = \"\";\n vm.currentPage = 1;\n\n vm.location = {};\n vm.locations = locations;\n vm.timeStampingUsers = [];\n vm.timeStampingDays = [];\n vm.timeReports = [];\n\n vm.searchTermChange = searchTermChange;\n vm.loadTimeStampingUsers = loadTimeStampingUsers;\n vm.loadTimeStampingDaysForUser = loadTimeStampingDaysForUser;\n vm.openTimeStampsAdministrationModal = openTimeStampsAdministrationModal;\n vm.openNewTimeStampDayModal = openNewTimeStampDayModal;\n vm.attestAll = attestAll;\n vm.attestTimeStampingDay = attestTimeStampingDay;\n vm.unattestTimeStampingDay = unattestTimeStampingDay;\n vm.getNotificationStyle = getNotificationStyle;\n vm.mayAttestAll = AuthService.canAccess('timeStamping', 'update');\n\n vm.startDate = new Date(today.getFullYear(), today.getMonth(), 1, 0,0,0,0);\n vm.endDate = today;\n vm.newTimeStampDayDate = today;\n vm.dateDifference = dateDifference;\n\n vm.showTimeStampsForDay = showTimeStampsForDay;\n vm.timeStampsForDay = [];\n vm.captureTimeStampsGrid = captureTimeStampsGrid;\n vm.getHoursAndMinutes = getHoursAndMinutes;\n vm.handleTimeStampDayCellEditEnded = handleTimeStampDayCellEditEnded;\n vm.handleTimeStampCellEditEnding = handleTimeStampCellEditEnding;\n vm.toggleTimeStampDayNotification = toggleTimeStampDayNotification;\n vm.showTimeReports = false;\n vm.newTimeReportDate = new Date();\n vm.isValidNewTimeReportDate = isValidNewTimeReportDate;\n vm.captureNewTimeReportDatePicker = captureNewTimeReportDatePicker;\n vm.addTimeReport = addTimeReport;\n vm.captureTimeReportsGrid = captureTimeReportsGrid;\n vm.getExcelPrintout = getExcelPrintout;\n\n activate();\n\n function activate() {\n if (vm.locations.length > 0) {\n vm.location = vm.locations[0];\n }\n\n $scope.$watch(function() { return vm.startDate; }, function() {\n if (startDateInitialized) {\n searchTermChange();\n } else {\n startDateInitialized = true;\n }\n });\n $scope.$watch(function() { return vm.endDate; }, function() {\n if (endDateInitialized) {\n searchTermChange();\n } else {\n endDateInitialized = true;\n }\n });\n $scope.$watch(function() { return vm.location.id; },\n function() { searchTermChange(); });\n\n $scope.$watch(function() { return vm.newTimeReportDate; },\n function() {\n console.log(\"vm.newTimeReportDate changed\");\n });\n }\n\n function searchTermChange() {\n vm.currentPage = 1;\n vm.timeReports.length = 0;\n vm.timeStampsForDay.length = 0;\n loadTimeStampingUsers();\n vm.showTimeReports = false;\n }\n\n function loadTimeStampingUsers() {\n loadSpinnerService.start('mainSpinner');\n TimeStampingApiService.getTimeStampingUsers(vm.startDate, vm.endDate, vm.location.id, vm.currentPage, vm.itemsPerPage, vm.searchTerm).then(function(response) {\n vm.timeStampingUsers = response.data.data;\n vm.totalItems = response.data.totalItems;\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function loadTimeStampingDaysForUser(user) {\n if (!AuthService.canAccess('timeStamping', 'update')) { return; }\n lastSelectedUser = user;\n\n TimeStampingApiService.getTimeReports(vm.startDate, vm.endDate, user.id).then(function(response) {\n vm.timeReports = _.sortBy(response.data, function(rep) { return rep.timeStampDay.date; });\n vm.showTimeReports = true;\n console.log(\"vm.timeReports:\");\n console.log(vm.timeReports);\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function openTimeStampsAdministrationModal(timeStampDay) {\n if (timeStampDay.id !== 0) {\n TimeStampsAdministrationDialog.showDialog(timeStampDay.id, vm.location.id, lastSelectedUser.id).then(function(response) {\n console.log(\"Modal closed. Response was:\");\n console.log(response);\n loadTimeStampingDaysForUser(lastSelectedUser);\n }, function(error) {\n console.log(\"Modal canceled. Response was:\");\n console.log(error);\n loadTimeStampingDaysForUser(lastSelectedUser);\n });\n } else {\n openNewTimeStampDayModal(timeStampDay.date);\n }\n }\n\n function openNewTimeStampDayModal(date) {\n TimeStampsAdministrationDialog.showDialogNewDate(date, vm.location.id, lastSelectedUser.id).then(function(result) {\n console.log(\"Modal result was:\");\n console.log(result);\n loadTimeStampingDaysForUser(lastSelectedUser);\n }, function(error) {\n console.log(error);\n loadTimeStampingDaysForUser(lastSelectedUser);\n });\n }\n\n function attestAll() {\n var timeStampingDayIds = [];\n\n _.forEach(vm.timeReports, function(report) {\n timeStampingDayIds.push(report.timeStampDay.id);\n });\n\n TimeStampingApiService.attestTimeStampDays(timeStampingDayIds).then(function(response) {\n vm.timeStampingDays.length = 0;\n vm.timeStampingDays = [];\n searchTermChange();\n loadTimeStampingDaysForUser(lastSelectedUser);\n });\n }\n\n function attestTimeStampingDay(timeStampDay) {\n if (!AuthService.canAccess('timeStamping', 'update')) { return; }\n loadSpinnerService.start('mainSpinner');\n TimeStampingApiService.attestTimeStampDays([timeStampDay.id]).then(function(response) {\n loadTimeStampingDaysForUser(lastSelectedUser);\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function unattestTimeStampingDay(timeStampDay) {\n if (!AuthService.canAccess('timeStamping', 'update')) { return; }\n loadSpinnerService.start('mainSpinner');\n TimeStampingApiService.unattestTimeStampDays([timeStampDay.id]).then(function(response) {\n loadTimeStampingDaysForUser(lastSelectedUser);\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function dateDifference(date1, date2) {\n var d1 = new Date(\"2015-01-01 \" + date1);\n var d2 = new Date(\"2015-01-01 \" + date2);\n var diff = d1 - d2;\n var dt = new Date(diff);\n var stringHours = _.padStart(dt.getHours() - 1, 2, '0');\n var stringMinutes = _.padStart(dt.getMinutes(), 2, '0');\n var stringRepresentation = stringHours + \":\" + stringMinutes;\n\n return stringRepresentation;\n }\n\n function showTimeStampsForDay(timeStampDay) {\n vm.timeStampsForDay.length = 0;\n _.forEach(timeStampDay.userTimeStamps, function(stamp) {\n vm.timeStampsForDay.push(stamp);\n });\n\n timeStampsGrid.invalidate();\n timeStampsGrid.collectionView.refresh();\n }\n\n function getHoursAndMinutes(dt) {\n var date = new Date(dt);\n var hours = _.padStart(date.getHours(), 2, '0');\n var minutes = _.padStart(date.getMinutes(), 2, '0');\n\n return hours + \":\" + minutes;\n }\n\n function handleTimeStampDayCellEditEnded() {\n var reportsToSend = [];\n _.forEach(vm.timeReports, function(report) {\n var matchingCopy = _.find(timeReportsCopy, function(reportCopy) {\n return reportCopy.id === report.id;\n });\n if (report.workTime !== matchingCopy.workTime || report.breakTime !== matchingCopy.breakTime) {\n reportsToSend.push(report);\n }\n });\n\n if (reportsToSend.length !== 0) {\n loadSpinnerService.start('mainSpinner');\n var promises = [];\n _.forEach(reportsToSend, function(report) {\n var promise = TimeStampingApiService.updateTimeReport(report);\n promises.push(promise);\n });\n\n $q.all(promises).then(function(responses) {\n _.forEach(responses, function(response) {\n var matchingReport = _.find(vm.timeReports, function(report) {\n return report.id === response.data.id;\n });\n matchingReport.workTime = response.data.workTime;\n matchingReport.breakTime = response.data.breakTime;\n });\n }, function(error) {\n ToasterService.showError($translate.instant('error.wrongformat'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n }\n\n function handleTimeStampCellEditEnding() {\n timeReportsCopy = angular.copy(vm.timeReports);\n }\n\n function toggleTimeStampDayNotification(timeReport) {\n timeReport.timeStampDay.notify = !timeReport.timeStampDay.notify;\n\n loadSpinnerService.start('mainSpinner');\n TimeStampingApiService.updateTimeReport(timeReport).then(function(response) {\n timeReport.timeStampDay.notify = response.data.timeStampDay.notify;\n }, function(error) {\n ToasterService.showError(error);\n timeReport.timeStampDay.notify = !timeReport.timeStampDay.notify;\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function isValidNewTimeReportDate() {\n var isWithinValidInterval = false;\n\n var startOfToday = moment().startOf('day');\n // Selected date needs to be between the start date and the end date\n if (vm.newTimeReportDate <= vm.endDate &&\n vm.newTimeReportDate >= vm.startDate &&\n vm.newTimeReportDate < startOfToday\n ) {\n isWithinValidInterval = true;\n }\n\n var listOfAddedDates = [];\n _.forEach(vm.timeReports, function(report) {\n var dateString = moment(report.timeStampDay.date).format(\"YYYY-MM-DD\");\n listOfAddedDates.push(dateString);\n });\n\n var selectedDate = moment(vm.newTimeReportDate).format(\"YYYY-MM-DD\");\n\n if (isWithinValidInterval &&\n !_.find(listOfAddedDates, function(dateString) { return dateString === selectedDate; })) {\n return true;\n }\n\n return false;\n }\n\n function addTimeReport() {\n var newTimeReport = {\n timeStampDay: {\n date: moment(vm.newTimeReportDate).format(\"YYYY-MM-DD\"),\n user: {\n id: lastSelectedUser.id\n }\n }\n };\n\n loadSpinnerService.start('mainSpinner');\n TimeStampingApiService.createTimeReport(newTimeReport).then(function(response) {\n var allTimeReports = [];\n _.forEach(vm.timeReports, function(rep) { allTimeReports.push(rep); });\n allTimeReports.push(response.data);\n allTimeReports = _.sortBy(allTimeReports, function(rep) {\n return rep.timeStampDay.date;\n });\n vm.timeReports = allTimeReports;\n }, function(error) {\n ToasterService.showError($translate.instant('common.error'));\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getExcelPrintout() {\n var requestData = {\n startDate: vm.startDate,\n endDate: vm.endDate,\n userIds: [lastSelectedUser.id]\n };\n\n TimeStampingApiService.downloadExcelFile(requestData);\n }\n\n function captureTimeReportsGrid(s) {\n timeReportsGrid = s;\n }\n\n function captureNewTimeReportDatePicker(s) {\n newTimeReportDatePicker = s;\n }\n\n function captureTimeStampsGrid(s) {\n timeStampsGrid = s;\n }\n\n function getNotificationStyle(item) {\n var style = {};\n if (item.notify) {\n style['background-color'] = \"yellow\";\n }\n return style;\n }\n\n}\n\nangular.module('timestamp.timestampingmanagement', [])\n .config(stateConfig)\n .controller('TimeStampingManagementController', TimeStampingManagementController);\n","// @ngInject\nfunction stateConfig($stateProvider) {\n $stateProvider.state('contacts.timestampingusers', {\n url: '/timestampingusers',\n views: {\n \"contactList@contacts\": {\n templateUrl: 'main/timestamp/timestampingusers/timestampingusers.tpl.html',\n controller: 'TimeStampingUsersController as vm'\n }\n },\n resolve: {\n users: usersResolver\n }\n });\n}\n\n// @ngInject\nfunction usersResolver(TimeStampingApiService) {\n return TimeStampingApiService.getTimeStampingUsers();\n}\n\n// @ngInject\nfunction TimeStampingUsersController($scope, $state, users) {\n var vm = this;\n\n vm.userList = users.data;\n vm.selectedUserId = 0;\n vm.selectUser = selectUser;\n\n console.log(\"TimeStampingUsers:\");\n console.log(users.data);\n\n activate();\n\n function activate() {\n $scope.$watch(function() { return $state.params.userId; }, function(newValue, oldValue) {\n vm.selectedUserId = parseInt($state.params.userId, 10);\n });\n }\n\n function selectUser(user) {\n $state.go('contacts.timestampingusers.timestamping', {userId: user.id});\n }\n\n function generateUserList(users) {\n var list = [];\n\n _.forEach(users,function(user) {\n var userCopy = _.clone(user);\n list.push(userCopy);\n });\n\n return _.sortBy(list, ['firstName']);\n }\n\n}\n\nangular.module('timestamp.timestampingusers', [])\n .config(stateConfig)\n .controller('TimeStampingUsersController', TimeStampingUsersController);\n","// @ngInject\nfunction UserTimeStampingDialogService($uibModal, TimeStampingApiService) {\n\n return {\n showDialog: showDialog,\n showDialogLoginless: showDialogLoginless\n };\n\n function showDialog() {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: false,\n controller: 'UserTimeStampingDialogServiceController as vm',\n templateUrl: 'main/timestamp/userTimeStampingDialog/userTimeStampingDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n locations: function() {\n return TimeStampingApiService.getLocations();\n },\n previousTimeStampDays: function() {\n return TimeStampingApiService.getLatestTimeStampDays(5);\n },\n totalTimeThisMonth: function() {\n var now = new Date();\n var startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1, 3, 0, 0, 0);\n return TimeStampingApiService.getWorkingTime(startOfMonth, now);\n },\n loginless: function() {\n return false;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n\n function showDialogLoginless() {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: false,\n controller: 'UserTimeStampingDialogServiceController as vm',\n templateUrl: 'main/timestamp/userTimeStampingDialog/userTimeStampingDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n locations: function() {\n return TimeStampingApiService.getLocations();\n },\n previousTimeStampDays: function() {\n return TimeStampingApiService.getLatestTimeStampDays(5);\n },\n totalTimeThisMonth: function() {\n var now = new Date();\n var startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1, 3, 0, 0, 0);\n return TimeStampingApiService.getWorkingTime(startOfMonth, now);\n },\n loginless: function() {\n return true;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction UserTimeStampingDialogServiceController($rootScope, $uibModalInstance, $scope, $interval, locations, totalTimeThisMonth,\n previousTimeStampDays, TimeStampingApiService, AuthService, loginless, $translate, ToasterService) {\n var vm = this;\n\n var stampHistoryGrid = {};\n var timeUpdatePromise = {};\n var jqCurrentTimeElement = $(\"#currentTimeSection\");\n\n var timeStampDaysGrid = {};\n vm.buttonsAreDisabled = false;\n\n\n vm.currentUser = {};\n\n vm.locations = locations;\n\n vm.previousTimeStampDays = _.sortBy(previousTimeStampDays.data, 'date').reverse();\n vm.previousTimeStamps = (vm.previousTimeStampDays.length !== 0) ?\n _.sortBy(vm.previousTimeStampDays[0].userTimeStamps, 'dateTime').reverse() :\n [];\n vm.totalTimeThisMonth = totalTimeThisMonth.data;\n\n vm.stampIn = stampIn;\n vm.stampOut = stampOut;\n vm.captureStampHistoryGrid = captureStampHistoryGrid;\n vm.captureTimeStampDaysGrid = captureTimeStampDaysGrid;\n vm.updateTimeStamp = updateTimeStamp;\n vm.changeDisplayedTimeStampDay = changeDisplayedTimeStampDay;\n vm.updateTimeStampDay = updateTimeStampDay;\n vm.currentLocalTime = new Date();\n\n vm.closeModal = closeModal;\n\n vm.stampInDisabled = false;\n vm.stampOutDisabled = false;\n\n vm.stampCreationRequest = {\n note: \"\",\n location: (vm.locations != null && vm.locations.length !== 0) ? vm.locations[0] : {}\n };\n\n vm.isLoginLessTimeStamping = loginless;\n\n activate();\n\n function activate() {\n setTimeStampButtonsAvailability();\n\n timeUpdatePromise = $interval(updateLocalTime, 1000);\n\n if (vm.isLoginLessTimeStamping) {\n TimeStampingApiService.getMe().then(function(response) {\n vm.currentUser = response;\n if (!$scope.$$phase) {\n $scope.$apply();\n }\n });\n } else {\n vm.currentUser = $rootScope.currentUser;\n }\n\n if (vm.isLoginLessTimeStamping) {\n AuthService.getUser().then(function(response) {\n });\n }\n }\n\n function updateLocalTime() {\n vm.currentLocalTime = new Date();\n }\n\n function stampIn() {\n vm.buttonsAreDisabled = true;\n $uibModalInstance.startLoadingSpinner();\n console.log(\"Stamping in...\");\n TimeStampingApiService.stampIn(vm.stampCreationRequest).then(function() {\n getPreviousTimeStamps();\n }, function(error) {\n console.log(error);\n ToasterService.showError(error);\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n vm.buttonsAreDisabled = false;\n });\n }\n\n function stampOut() {\n vm.buttonsAreDisabled = true;\n $uibModalInstance.startLoadingSpinner();\n console.log(\"Stamping out...\");\n TimeStampingApiService.stampOut(vm.stampCreationRequest).then(function(reponse) {\n getPreviousTimeStamps();\n\n var now = new Date();\n var startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1, 3, 0, 0, 0);\n return TimeStampingApiService.getWorkingTime(startOfMonth, now).then(function(response) {\n vm.totalTimeThisMonth = response.data;\n }, function(error) {\n console.log(error);\n ToasterService.showError(error);\n });\n }, function(error) {\n console.log(error);\n ToasterService.showError(error);\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n vm.buttonsAreDisabled = false;\n });\n }\n\n function getPreviousTimeStamps() {\n TimeStampingApiService.getLatestTimeStampDays(5).then(function(response) {\n vm.previousTimeStampDays = _.sortBy(response.data, 'date').reverse();\n vm.previousTimeStamps = _.sortBy(vm.previousTimeStampDays[0].userTimeStamps, 'dateTime').reverse();\n setTimeStampButtonsAvailability();\n }, function(error) {\n console.log(error);\n });\n }\n\n function captureStampHistoryGrid(s) {\n stampHistoryGrid = s;\n }\n\n function updateTimeStampDay(timeStampDay) {\n if (timeStampDay.note !== \"\") {\n timeStampDay.notify = true;\n }\n $uibModalInstance.startLoadingSpinner();\n TimeStampingApiService.updateTimeStampDay(timeStampDay).then(function(response) {\n console.log(\"Successfully updated the timeStampDay\");\n }, function(error) {\n console.log(error);\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n });\n }\n\n function changeDisplayedTimeStampDay(timeStampDay) {\n vm.previousTimeStamps = _.sortBy(timeStampDay.userTimeStamps, 'dateTime').reverse();\n }\n\n function captureTimeStampDaysGrid(s) {\n timeStampDaysGrid = s;\n }\n\n function updateTimeStamp(timeStamp) {\n console.log(\"Timestamp to update:\");\n console.log(timeStamp);\n }\n\n function closeModal() {\n $interval.cancel(timeUpdatePromise);\n if (vm.isLoginLessTimeStamping) {\n AuthService.logOut();\n }\n $uibModalInstance.close();\n }\n\n function setTimeStampButtonsAvailability() {\n console.log(\"Getting current type\");\n var orderedTimeStamps = _.sortBy(vm.previousTimeStamps, 'dateTime').reverse();\n var currentTimeStampSystemType = \"\";\n if (orderedTimeStamps[0] !== undefined) {\n currentTimeStampSystemType = orderedTimeStamps[0].timeStampType.timeStampSystemType;\n }\n\n if (currentTimeStampSystemType === 'in') {\n vm.stampInDisabled = true;\n vm.stampOutDisabled = false;\n } else if (currentTimeStampSystemType === 'out') {\n vm.stampInDisabled = false;\n vm.stampOutDisabled = true;\n } else {\n vm.stampInDisabled = false;\n vm.stampOutDisabled = true;\n }\n }\n\n}\n\nangular\n .module('timestamp.userTimeStamping', [])\n .service('UserTimeStampingDialogService', UserTimeStampingDialogService)\n .controller('UserTimeStampingDialogServiceController', UserTimeStampingDialogServiceController);\n","import { SignalDispatcher } from 'ste-signals';\nimport { SimpleEventDispatcher } from 'ste-simple-events';\nimport { ArticleColours } from '../react/product/colourChange';\n\nexport const angularEvents = {\n // Without data\n fooBar: new SignalDispatcher(),\n fooBar2: new SimpleEventDispatcher<number>(),\n isEditing: new SimpleEventDispatcher<boolean>(),\n saveArticle: new SignalDispatcher(),\n articleColoursHasChanged: new SimpleEventDispatcher<ArticleColours>()\n};\n\n// Example\nconst unsubscribe = angularEvents.fooBar2.subscribe((a) => { console.log(a)});\nangularEvents.fooBar2.dispatch(3);\nunsubscribe();\n\n// =============================\n// check ste-simple-events docs\n// =============================","import { ReactElement } from 'react';\nimport { SignalDispatcher } from 'ste-signals';\n\nexport interface ReactElementWithContainer {\n element: ReactElement;\n container: HTMLElement;\n}\n\nlet elements: readonly ReactElementWithContainer[] = [];\nconst updateSignal = new SignalDispatcher();\n\nexport function getElements() {\n return elements;\n}\n\nexport function addElement(element: ReactElementWithContainer) {\n if (elements.some((e) => e.container === element.container)) {\n throw new Error('Container already has an element');\n }\n\n elements = [...elements, element];\n updateSignal.dispatch();\n}\n\nexport function removeElement(element: ReactElementWithContainer) {\n elements = elements.filter((e) => e !== element);\n updateSignal.dispatch();\n}\n\nexport function subscribe(cb: () => void) {\n return updateSignal.subscribe(cb);\n}\n","import { SignalDispatcher } from 'ste-signals';\nimport { SimpleEventDispatcher } from 'ste-simple-events';\nimport { MetaField } from '../react/MetaFields';\nimport { MetaFieldValue } from '../react/MetaFieldValues';\nimport { ArticleColours } from '../react/product/colourChange'\n\nexport const reactEvents = {\n fooBar: new SignalDispatcher(),\n fooBar2: new SimpleEventDispatcher<number>(),\n saveMetaFields: new SimpleEventDispatcher<MetaField[]>(),\n saveMetaFieldValues: new SimpleEventDispatcher<MetaFieldValue[]>(),\n saveColourChange: new SimpleEventDispatcher<ArticleColours>()\n};\n\n// Example\nconst unsubscribe = reactEvents.fooBar2.subscribe((a) => { console.log(a)});\nreactEvents.fooBar2.dispatch(2);\nunsubscribe();\n","angular\n .module('components', [\n 'components.userReport',\n 'components.caOrderSearchResult',\n 'components.caBudgetImport',\n 'components.caAddressForm',\n 'components.caContactInfoForm',\n 'components.caNewAddressForm',\n 'components.caNewContactInfoForm',\n 'components.caDiscountMultiselect',\n 'components.caBarcodeScanningInput',\n 'components.caOrderArticles',\n 'components.caOrderMetaData',\n 'components.caOrderRowsDelivery',\n 'components.caOrderRowsEdit',\n 'components.caOrderScannerNavigation',\n 'components.caOrderTotals',\n 'components.caOrderArticleDeliveries',\n 'components.caOrderArticleRows',\n 'components.caOrderContent',\n 'components.caPurchaseOrderArticlesSummaryGrid',\n 'components.caOpenToBuyGrid',\n 'components.caPurchaseOrderDistributionGrid',\n 'components.caPurchaseOrderExtraOptions',\n 'components.caPurchaseOrderSingleArticleSummaryGrid',\n 'components.caArticleVariantsGrid',\n 'components.caArticleVariantsGridCell',\n 'components.caArticleSearchMultiSelect',\n 'components.caItemGroupInline',\n 'components.caArticleSelection',\n 'components.caPricelistGrid',\n 'components.caPriceRangeInput',\n 'components.caVolumeDiscountSelector',\n 'components.caImportFileList',\n 'components.caMapOrDate',\n 'components.caMapOrSelect',\n 'components.caImportEditorSummary',\n 'components.caImportEditorTextDropdown',\n 'components.caImportEditorValidationErrors',\n 'components.caImportRowsGrid',\n 'components.createResellerOrderArticlesAmount',\n 'components.createResellerOrderArticlesOverview',\n 'components.createResellerOrderArticlesQuantity',\n 'components.caResellerOrderProductSearchMultiSelect',\n 'components.createResellerOrderArticlesAmount',\n 'components.createResellerReturnOrderArticlesOverview',\n 'components.createResellerReturnOrderArticlesQuantity',\n 'components.caResellerReturnOrderProductSearchMultiSelect'\n ]);\n","var module = angular.module('components');\nmodule.component('wgtIntegrationStatus', {\n templateUrl: 'components/dashboard/widgets/wgtIntegrationStatus/wgtIntegrationStatus.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n item: '<'\n },\n controller: ['DashboardApiService','$rootScope','$scope','$translate','$timeout',controller]\n});\n\n\nfunction controller(DashboardApiService,$rootScope, $scope,$translate, $timeout) {\n var vm = this;\n var reqPromise = null;\n\n vm.widgetData = null;\n vm.isLoaded = false;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n function onInit() {\n }\n\n function onChanges(changes) {\n loadWidget();\n }\n\n function loadWidget() {\n\n DashboardApiService\n .getWidgetData(vm.item.name, vm.item.setting)\n .then(onNewData,onNewDataError);\n }\n\n function onNewData(response) {\n vm.widgetData = response.data;\n vm.isLoaded = true;\n vm.hasError = false;\n\n reqPromise = $timeout(loadWidget, 30000);\n }\n\n function onNewDataError(response) {\n vm.hasError = true;\n\n reqPromise = $timeout(loadWidget, 60000);\n }\n\n function onDestroy() {\n if (reqPromise != null) {\n $timeout.cancel(reqPromise);\n }\n }\n\n}\n","var module = angular.module('components');\nmodule.component('wgtRefunds', {\n templateUrl: 'components/dashboard/widgets/wgtRefunds/wgtRefunds.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n item: '<'\n },\n controller: ['DashboardApiService','$rootScope','$state',controller]\n});\n\n\nfunction controller(DashboardApiService,$rootScope, $state) {\n var vm = this;\n\n vm.widgetData = null;\n vm.isLoaded = false;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.gotoArticle = gotoArticle;\n\n function onInit() {\n $rootScope.$on(\"widget.changed\",function(event, item) {\n if (vm.item.id === item.id) {\n vm.item = item;\n loadWidget();\n }\n });\n }\n\n function gotoArticle(articleId) {\n $state.go('stock.articlesearch.article', { articleId: articleId });\n }\n\n function onChanges(changes) {\n loadWidget();\n }\n\n function loadWidget() {\n vm.isLoaded = false;\n DashboardApiService\n .getWidgetData(vm.item.name, vm.item.setting)\n .then(onNewData,onNewDataError);\n }\n\n\n function onNewData(response) {\n vm.widgetData = response.data;\n vm.isLoaded = true;\n vm.hasError = false;\n }\n\n function onNewDataError(response) {\n vm.hasError = true;\n }\n\n function onDestroy() {\n\n }\n\n}\n","var module = angular.module('components');\nmodule.component('wgtSeasonalityCurve', {\n templateUrl: 'components/dashboard/widgets/wgtSeasonalityCurve/wgtSeasonalityCurve.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n item: '<'\n },\n controller: ['DashboardApiService','$rootScope','$scope','$translate',controller]\n});\n\n\nfunction controller(DashboardApiService,$rootScope, $scope,$translate) {\n var vm = this;\n\n vm.widgetData = null;\n vm.isLoaded = false;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.selectedmaingroup = null;\n vm.chart = {};\n vm.maingroups = [];\n\n function onInit() {\n $rootScope.$on(\"widget.changed\",function(event, item) {\n if (vm.item.id === item.id) {\n vm.item = item;\n loadWidget();\n }\n });\n\n $scope.$watch('vm.selectedmaingroup', function() {\n updateSetting();\n refreshChartModel();\n });\n }\n\n function updateSetting() {\n if (!vm.item) { return; }\n if (!vm.selectedmaingroup) { return; }\n if (vm.item.setting !== vm.selectedmaingroup.id) {\n vm.item.setting = vm.selectedmaingroup.id;\n }\n }\n\n function onChanges(changes) {\n loadWidget();\n }\n\n function loadWidget() {\n vm.isLoaded = false;\n if (!vm.item) { return; }\n DashboardApiService\n .getWidgetData(vm.item.name, vm.item.setting)\n .then(onNewData,onNewDataError);\n }\n\n\n function onNewData(response) {\n vm.widgetData = response.data;\n vm.isLoaded = true;\n vm.hasError = false;\n\n vm.maingroups = [];\n\n _.forEach(vm.widgetData.maingroups, function(maingroup) {\n maingroup.label = maingroup.code + ' ' + maingroup.description;\n vm.maingroups.push(maingroup);\n });\n var setting = (vm.item) ? parseInt(vm.item.setting) : 0;\n\n var maingroupInSetting = _.filter(vm.maingroups, { id: setting});\n\n if (maingroupInSetting.length > 0) {\n vm.selectedmaingroup = maingroupInSetting[0];\n } else {\n if (vm.maingroups.length) {\n vm.selectedmaingroup = vm.maingroups[0];\n }\n }\n\n refreshChartModel();\n\n\n }\n\n function refreshChartModel() {\n if (!vm.widgetData) { return; }\n if (!vm.widgetData.maingroups) { return; }\n if (!vm.selectedmaingroup) { return; }\n\n var months = $translate.instant('common.months.short').toUpperCase().split(',');\n\n if (months.length < 12) {\n months = ['JAN', 'FEB', 'MAR', 'APR', 'MAJ', 'JUN', 'JUL', 'AUG', 'SEP', 'OKT', 'NOV', 'DEC'];\n }\n\n vm.chart.labels = months;\n\n var data = [];\n var maingroups = [];\n\n var maingroup = vm.selectedmaingroup;\n\n var points = _.orderBy(_.filter(vm.widgetData.data, { mainGroupId: maingroup.id}),'dateLevelValue');\n data.push(_.map(points, 'normalMagnitude'));\n data.push(_.map(points, 'totalMagnitude'));\n data.push(_.map(points, 'discountedMagnitude'));\n\n vm.chart.series = [\n $translate.instant('seasonalitycurve.normal').toUpperCase(),\n $translate.instant('seasonalitycurve.total').toUpperCase(),\n $translate.instant('seasonalitycurve.discounted').toUpperCase()\n ];\n\n vm.chart.data = data;\n\n vm.chart.onClick = function (points, evt) {\n console.log(points, evt);\n };\n vm.chart.datasetOverride = [{ yAxisID: 'y-axis-1' }];\n vm.chart.options = {\n scales: {\n yAxes: [\n {\n id: 'y-axis-1',\n type: 'linear',\n display: true,\n position: 'left',\n ticks: {\n max: 0.7\n }\n }\n ],\n beginAtZero: true\n }\n };\n }\n\n function onNewDataError(response) {\n vm.hasError = true;\n }\n\n function onDestroy() {\n\n }\n\n}\n","var module = angular.module('components');\nmodule.component('wgtTopSold', {\n templateUrl: 'components/dashboard/widgets/wgtTopSold/wgtTopSold.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n item: '<'\n },\n controller: ['DashboardApiService','$rootScope', '$state',controller]\n});\n\n\nfunction controller(DashboardApiService,$rootScope, $state) {\n var vm = this;\n\n vm.widgetData = null;\n vm.isLoaded = false;\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.gotoArticle = gotoArticle;\n\n function onInit() {\n $rootScope.$on(\"widget.changed\",function(event, item) {\n if (vm.item.id === item.id) {\n vm.item = item;\n loadWidget();\n }\n });\n }\n\n function onChanges(changes) {\n loadWidget();\n }\n\n function gotoArticle(articleId) {\n $state.go('stock.articlesearch.article', { articleId: articleId });\n }\n\n function loadWidget() {\n vm.isLoaded = false;\n DashboardApiService\n .getWidgetData(vm.item.name, vm.item.setting)\n .then(onNewData,onNewDataError);\n }\n\n\n function onNewData(response) {\n vm.widgetData = response.data;\n vm.isLoaded = true;\n vm.hasError = false;\n }\n\n function onNewDataError(response) {\n vm.hasError = true;\n }\n\n function onDestroy() {\n\n }\n\n}\n","var module = angular.module('components');\nmodule.component('caAddress', {\n templateUrl: 'components/genericcomponents/address.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n address: '=',\n isEditing: '<',\n removeAddress: '&',\n showTools: '<'\n },\n controller: [addressController]\n});\n\nfunction addressController() {\n var vm = this;\n\n vm.remove = remove;\n if (vm.showTools === undefined) { vm.showTools = true; }\n\n function remove() {\n vm.removeAddress();\n }\n}\n","var module = angular.module('components');\nmodule.component('caArticleList', {\n templateUrl: 'components/genericcomponents/articlelist.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n articles: '=',\n filter: '=',\n currentPage: '=',\n pageSize: '=',\n onArticleSelected: '&',\n onNew: '&',\n showNewButton: '<',\n showFilterDropdown: '<',\n match : '=',\n inactive: '='\n },\n scope: true,\n controller: ['$state', '$stateParams', '$rootScope', '$scope', 'ProductsApiService', 'loadSpinnerService', controller]\n});\n\nfunction controller($state, $stateParams, $rootScope, $scope, ProductsApiService, loadSpinnerService) {\n var vm = this;\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n //Properties\n vm.totalItems = [];\n vm.filterDropdownIsVisisble = false;\n vm.articleListIsVisible = true;\n vm.selectedArticleId = $state.params.articleId === undefined ? 0 : parseInt($state.params.articleId,10);\n vm.useElasticProductSearch = false;\n\n //Methods\n vm.loadArticles = loadArticles;\n vm.selectArticle = selectArticle;\n vm.getShowFilterDropDown = getShowFilterDropDown;\n vm.getSearchTooltipText = getSearchTooltipText;\n vm.searchTermChange = searchTermChange;\n vm.goToNew = goToNew;\n vm.forceReloadUrl = forceReloadUrl;\n vm.toggleHideArticleList = toggleHideArticleList;\n\n function onInit() {\n searchTermChange();\n\n loadArticles();\n\n $scope.$watch(function() { return $state.params.articleId; }, function(newValue, oldValue) {\n vm.selectedArticleId = parseInt($state.params.articleId,10);\n });\n var productChangedListener = $rootScope.$on('Product.Changed', function(event, response) {\n loadArticles();\n });\n $scope.$on('$destroy', function() {\n //Clean up usage of $rootScope listener when controller is destoyed\n productChangedListener();\n });\n }\n\n function onChanges(changes) {\n }\n\n function loadArticles() {\n if(vm.isLoading) return;\n\n vm.isLoading = true;\n\n var companyId; // companyId = undefined\n loadSpinnerService.start('mainSpinner');\n var request = {\n currentPage: vm.currentPage,\n filter: vm.filter,\n pageSize: vm.pageSize,\n companyId: companyId,\n showInactiveArticles: vm.inactive,\n matchEntireSearchTerm: vm.match\n };\n \n ProductsApiService.getProducts(request).then(function(response) {\n vm.articles = response.data.results;\n vm.totalItems = response.data.total;\n vm.pageSize = response.data.limit;\n vm.currentPage = response.data.page;\n\n if (_.find(response.links, function(o) { return o.rel === 'show_elastic_search'; })) {\n vm.useElasticProductSearch = true;\n }\n\n $stateParams.filter = vm.filter;\n $stateParams.currentPage = vm.currentPage;\n $stateParams.pageSize = vm.pageSize;\n $stateParams.inactive = vm.inactive;\n $stateParams.match = vm.match;\n }).finally(function afterGetAllArticles() {\n loadSpinnerService.stop('mainSpinner',{force: true});\n if (vm.currentPage === 1 && vm.articles.length === 1 && vm.totalItems === 1) {\n selectArticle(vm.articles[0]);\n }\n\n vm.isLoading = false;\n });\n }\n\n function toggleHideArticleList(){\n vm.articleListIsVisible = !vm.articleListIsVisible;\n $state.params.showArticleList = vm.articleListIsVisible;\n }\n\n function getSearchTooltipText() {\n var tooltipString = 'Sökning med partiella ord görs med en stjärna i slutet, ex. \"Ja*\" för \"Jacka\"';\n if (!vm.useElasticProductSearch) { tooltipString = ''; }\n\n return tooltipString;\n }\n\n function getShowFilterDropDown() {\n return vm.showFilterDropdown && !vm.useElasticProductSearch;\n }\n\n function goToNew() {\n vm.onNew();\n }\n\n function selectArticle(article) {\n vm.onArticleSelected({\n article: {\n articleId: article.id,\n searchTerms: {\n currentPage: vm.currentPage,\n pageSize: vm.pageSize,\n filter: vm.filter,\n inactive: vm.inactive,\n match: vm.match\n }\n }\n });\n }\n\n function searchTermChange() {\n if (vm.isLoading) { return; }\n\n if ($stateParams.filter && $stateParams.filter !== vm.filter) {\n vm.currentPage = 1;\n }\n\n vm.filter = vm.filter.replace(/#/g, \"\");\n\n $stateParams.filter = vm.filter;\n $stateParams.currentPage = vm.currentPage;\n $stateParams.pageSize = vm.pageSize;\n $stateParams.inactive = vm.inactive;\n $stateParams.match = vm.match;\n\n forceReloadUrl();\n\n if (vm.filter.length > 2) {\n loadArticles();\n } else if (vm.filter.length === 0) {\n loadArticles();\n }\n }\n\n function forceReloadUrl(){\n $state.go($state.current.name, \n {\n articleId: vm.selectedArticleId,\n currentPage: vm.currentPage,\n pageSize: vm.pageSize,\n filter: vm.filter,\n inactive: vm.inactive,\n match: vm.match\n },\n {notify: false}\n );\n }\n}\n","var module = angular.module('components');\nmodule.component('caArticleSearchSingleSelect', {\n templateUrl: 'components/genericcomponents/articlesearchsingleselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n pageSize: '<',\n disabledBy: '<',\n onArticleSelected: '&',\n onArticleRemoved: '&'\n },\n controller: ['$q', '$scope', 'ProductsApiService', 'loadSpinnerService', 'ToasterService', controller]\n});\n\nfunction controller($q, $scope, ProductsApiService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.searchResultArticles = [];\n vm.selectedArticle = undefined;\n vm.currentPage = 1;\n\n vm.refreshArticles = refreshArticles;\n vm.selectArticle = selectArticle;\n vm.removeArticle = removeArticle;\n\n function onInit() {\n if (!vm.pageSize) {\n vm.pageSize = 20;\n }\n\n $scope.$on('clearArticleEvent', function(e) {\n vm.selectedArticle = undefined;\n });\n }\n\n function onChanges(changes) {\n if (changes.disabledBy &&\n changes.disabledBy.currentValue !== changes.disabledBy.previousValue &&\n changes.disabledBy.currentValue === true) {\n vm.selectedArticle = undefined;\n }\n }\n\n function onDestroy() {\n }\n\n // Refreshes the contents of the drop-down-list of selectable articles.\n function refreshArticles(filter) {\n var companyId = null;\n var showInactiveArticles = true;\n var request = {\n currentPage: vm.currentPage,\n filter: filter,\n pageSize: vm.pageSize,\n companyId: companyId,\n showInactiveArticles: showInactiveArticles\n };\n ProductsApiService.getProducts(request).then(function(response) {\n vm.searchResultArticles = [];\n\n for (var i = 0; i < response.data.results.length; i++) {\n var article = response.data.results[i];\n vm.searchResultArticles.push(article);\n }\n }, function(error) {\n ToasterService.showError(error.errors);\n });\n }\n\n function selectArticle() {\n vm.onArticleSelected({article: vm.selectedArticle});\n }\n\n function removeArticle() {\n vm.selectedArticle = undefined;\n vm.onArticleRemoved();\n }\n}\n","var module = angular.module('components');\nmodule.component('caConfirmButton', {\n templateUrl: 'components/genericcomponents/confirmbutton.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n confirmTitle: '<',\n disabledBy: '<',\n onConfirmPressed: '&'\n },\n controller: ['GenericComponentService', controller]\n});\n\n\nfunction controller(GenericComponentService) {\n var vm = this;\n\n vm.toggleConfirmationVisiblity = toggleConfirmationVisiblity;\n vm.confirm = confirm;\n\n function toggleConfirmationVisiblity() {\n vm.confirmationVisible = !vm.confirmationVisible;\n }\n\n function confirm() {\n vm.onConfirmPressed();\n }\n}\n","var module = angular.module('components');\nmodule.component('caContactInfo', {\n templateUrl: 'components/genericcomponents/contactinfo.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n contactInfo: '=',\n isEditing: '<',\n removeContactInfo: '&'\n },\n controller: [contactInfoController]\n});\n\nfunction contactInfoController() {\n var vm = this;\n\n vm.remove = remove;\n\n function remove() {\n vm.removeContactInfo();\n }\n}\n","var module = angular.module('components');\nmodule.component('caErrorList', {\n templateUrl: 'components/genericcomponents/errorlist.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n label: '<',\n errorList: '<',\n filterBy: '<'\n },\n scope: true,\n controller: [controller]\n});\n\nfunction controller($scope) {\n var vm = this;\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n //Properties\n vm.filteredErrorList = vm.errorList;\n\n //Methods\n\n function onInit() {\n filterList();\n }\n\n function onChanges(changes) {\n if (changes.errorList) {\n filterList();\n }\n }\n\n function filterList() {\n vm.filteredErrorList = vm.errorList;\n if (vm.filterBy && vm.filterBy.length > 0) {\n vm.filteredErrorList = [];\n _.forEach(vm.errorList, function(error) {\n if (error.code && error.code === vm.filterBy) {\n vm.filteredErrorList.push(error);\n }\n });\n }\n }\n}\n","var module = angular.module('components');\nmodule.component('caFormGroupRow', {\n templateUrl: 'components/genericcomponents/formgrouprow.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n label: '<'\n },\n transclude: true\n});\n","var module = angular.module('components');\nmodule.component('caFormGroupRowOther', {\n templateUrl: 'components/genericcomponents/formgrouprowother.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n label: '<'\n },\n transclude: true\n});\n","var module = angular.module('components');\n\nmodule.factory('GenericComponentService', Service);\n\nfunction Service() {\n\n return {\n resolveSelectRenderer: resolveSelectRenderer,\n getSelectFilter: getSelectFilter\n };\n\n\n function getSelectFilter(query, filterBy) {\n var filterKeys = null;\n if (filterBy) {\n filterKeys = {};\n for (var index in filterBy) {\n filterKeys[filterBy[index]] = true;\n }\n }\n\n return function (item) {\n\n if (!query) {\n return true;\n }\n query = query.toLowerCase();\n\n var keys = (filterKeys) ? filterKeys : item;\n\n for (var key in keys) {\n ///Exkludera att söka pÃ¥ id\n if (key === 'id') {\n continue;\n }\n\n if (typeof key === \"string\") {\n var value = item[key];\n if (typeof value !== \"string\" || !value) {\n continue;\n }\n if (value.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n }\n }\n\n\n return false;\n };\n }\n\n function resolveSelectRenderer(renderer) {\n if (!renderer) {\n return getRenderItemNone(renderer);\n }\n if (typeof renderer === 'string') {\n return getRenderItemSingle(renderer);\n }\n if (renderer instanceof Array) {\n return getRenderItemArray(renderer);\n }\n\n return getRenderItemNone(renderer);\n }\n\n function getRenderItemNone(renderer) {\n return function(context, item) {\n return '';\n };\n }\n\n function getRenderItemArray(renderer) {\n return function(context, item) {\n var value = '';\n if (!item) {\n return '';\n }\n _.forEach(renderer, function(property) {\n value+= (item[property]) ? item[property] + ' ' : '' + ' ';\n });\n\n return value;\n };\n }\n\n function getRenderItemSingle(renderer) {\n return function(context, item) {\n if (!item) {\n return '';\n }\n\n if (item[renderer] instanceof Date) {\n return getDateStringRepresentation(item[renderer]);\n }\n\n return item[renderer];\n };\n }\n\n function getDateStringRepresentation(date) {\n var value = '';\n var year = date.getFullYear();\n var month = (date.getMonth().toString().length === 1) ? '0' + date.getMonth().toString() : date.getMonth().toString();\n var day = (date.getDay().toString().length === 1) ? '0' + date.getDay().toString() : date.getDay().toString();\n var hour = (date.getHours().toString().length === 1) ? '0' + date.getHours().toString() : date.getHours().toString();\n var minutes = (date.getMinutes().toString().length === 1) ? '0' + date.getMinutes().toString() : date.getMinutes().toString();\n value = year + '-' + month + '-' + day;\n\n if (hour !== '00' && minutes !== '00') {\n value += ' ' + hour + ':' + minutes;\n }\n\n return value;\n }\n\n}\n","var module = angular.module('components');\nmodule.component('caMultiselect', {\n templateUrl: 'components/genericcomponents/multiselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n model: '=',\n lockChoice: '<',\n choices: '<',\n placeholder: '<',\n itemRenderer: '<',\n orderBy: '<',\n disabledBy: '<'\n },\n controller: ['GenericComponentService',controller]\n});\n\n\nfunction controller(GenericComponentService) {\n var vm = this;\n\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n return;\n\n function onInit() {\n resolveRenderer();\n }\n\n function onChanges(changes) {\n if (changes.itemRenderer) {\n resolveRenderer();\n }\n }\n\n function resolveRenderer() {\n vm.renderItem = GenericComponentService.resolveSelectRenderer(vm.itemRenderer);\n }\n\n}\n","var module = angular.module('components');\nmodule.component('caSearchListContactInfos', {\n templateUrl: 'components/genericcomponents/searchlist/searchlist-contactinfo.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n contactInfos: '<'\n }\n});\n","var module = angular.module('components');\nmodule.component('caSingleselect', {\n templateUrl: 'components/genericcomponents/singleselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n model: '=',\n choices: '<',\n placeholder: '<',\n itemRenderer: '<',\n orderBy: '<',\n filterBy: '<',\n disabledBy: '<',\n mandatory: '<' //Boolean: Tells the component to NOT add a default null value choice\n },\n controller: ['GenericComponentService', controller]\n});\n\n\nfunction controller(GenericComponentService) {\n var vm = this;\n\n vm.$onChanges = onChanges;\n vm.$onInit = onInit;\n\n vm.filter = filter;\n\n return;\n\n function onInit() {\n resolveRenderer();\n addNullValueChoice();\n }\n\n function onChanges(changes) {\n if (changes.itemRenderer) {\n resolveRenderer();\n addNullValueChoice();\n }\n if (changes.choices) {\n addNullValueChoice();\n }\n }\n\n function resolveRenderer() {\n vm.renderItem = GenericComponentService.resolveSelectRenderer(vm.itemRenderer);\n }\n\n function filter(query) {\n return GenericComponentService.getSelectFilter(query, vm.filterBy);\n }\n\n function addNullValueChoice() {\n //If select is mandatory, do not add null value choice\n if (vm.mandatory && vm.mandatory === true) {\n return;\n }\n\n //Make sure there is a null value choice in the dropdown\n if (vm.choices && vm.choices.length > 0) {\n //Only add if not aleady present\n if (!_.find(vm.choices, function(c) { return c.id === -1; })) {\n var choiceCopy = { id: -1 };\n if (vm.itemRenderer && Object.prototype.toString.call(vm.itemRenderer) === '[object Array]') {\n _.forEach(vm.itemRenderer, function(ir) {\n choiceCopy[ir] = ' ';\n });\n } else if (vm.itemRenderer && typeof vm.itemRenderer === 'string') {\n choiceCopy[vm.itemRenderer] = ' ';\n }\n\n vm.choices.unshift(choiceCopy);\n }\n }\n }\n}\n","var module = angular.module('components');\nmodule.component('caSortTableDataHeader', {\n templateUrl: 'components/genericcomponents/sortingtabledataheader.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n orderBy: '=',\n reverse: '=',\n header: '<',\n valueName: '<',\n },\n controller: ['$q', '$scope', '$translate', controller]\n});\n\nfunction controller($q, $scope, $translate) {\n var vm = this;\n\n vm.changeSortOrder = changeSortOrder;\n vm.getTooltipText = getTooltipText;\n\n function changeSortOrder(){\n if(vm.orderBy === vm.valueName){\n if(vm.reverse){\n vm.orderBy = undefined;\n vm.reverse = undefined;\n }\n else{\n vm.reverse = true;\n }\n }\n else{\n vm.orderBy = vm.valueName;\n vm.reverse = false;\n }\n }\n\n function getTooltipText(){\n var text = \"\";\n\n if(vm.reverse === true && vm.orderBy === vm.valueName)\n text += $translate.instant('common.reset');\n else{\n text += $translate.instant('analysis.sort') + \" \";\n \n text += vm.reverse === false && vm.orderBy === vm.valueName ? \n $translate.instant('analysis.sort.descending') : \n $translate.instant('analysis.sort.ascending')\n }\n\n return text;\n }\n}\n","var module = angular.module('components');\nmodule.component('caVariantDetailSearchSingleSelect', {\n templateUrl: 'components/genericcomponents/variantdetailsearchsingleselect.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n model: '=',\n pageSize: '<',\n disabledBy: '<',\n onSelected: '&',\n onRemoved: '&'\n },\n controller: ['$q', '$scope', '$timeout', 'ProductsApiService', 'loadSpinnerService', 'ToasterService', controller]\n});\n\nfunction controller($q, $scope, $timeout, ProductsApiService, loadSpinnerService, ToasterService) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n\n vm.searchResultVariantDetail = [];\n vm.currentPage = 1;\n\n vm.refresh = refresh;\n vm.select = select;\n vm.remove = remove;\n\n function onInit() {\n if (!vm.pageSize) {\n vm.pageSize = 20;\n }\n }\n\n function onChanges(changes) {\n if (changes.disabledBy &&\n changes.disabledBy.currentValue !== changes.disabledBy.previousValue &&\n changes.disabledBy.currentValue === true) {\n vm.model = undefined;\n }\n }\n\n function onDestroy() {\n }\n\n // Refreshes the contents of the drop-down-list of selectable articles.\n function refresh(filter) {\n var request = {\n currentPage: vm.currentPage,\n filter: filter,\n pageSize: vm.pageSize,\n variantDetailType: 1\n };\n ProductsApiService.getVariantDetailOptionsPaged(request).then(function(response) {\n vm.searchResultVariantDetail = [];\n\n _.forEach(response.data.results, function(obj){\n vm.searchResultVariantDetail.push(obj);\n });\n\n }, function(error) {\n ToasterService.showError(error.errors);\n });\n }\n\n function select() {\n vm.onSelected();\n }\n\n function remove() {\n vm.model = undefined;\n $timeout(function() { vm.onRemoved();}, 100);\n }\n}\n","// @ngInject\nfunction Service($q) {\n\n var nodes = createMenuNodes();\n\n var service = {};\n service.getNavigationNodes = getNavigationNodes;\n\n return service;\n\n function getNavigationNodes() {\n var deferred = $q.defer();\n\n deferred.resolve(nodes);\n return deferred.promise;\n }\n\n\n function createMenuNodes() {\n var nav = { nodes: [] };\n\n var dashboard = {\n licenseModules: { baseModule: true },\n stateLink: 'main.dashboard',\n label: ['common.dashboard'],\n iconClass: 'fa fa-dashboard',\n nodes: []\n };\n\n var contacts = {\n name: 'contacts',\n label: ['common.contacts'],\n iconClass: 'fa fa-users',\n licenseModules: { baseModule: true },\n claims: { user: { read: true }, location: { read: true }, company: { read: true }, role: { read: true } },\n nodes: [\n { stateLink: 'contacts.users', label: ['contacts.users'], licenseModules: { baseModule: true }, claims: { user: { read: true } } },\n { stateLink: 'contacts.locations', label: ['contacts.locations'], licenseModules: { baseModule: true }, claims: { location: { read: true } } },\n { stateLink: 'contacts.companies', label: ['contacts.companies'], licenseModules: { baseModule: true }, claims: { company: { read: true } } },\n { stateLink: 'contacts.roles', label: ['contacts.roles'], licenseModules: { baseModule: true }, claims: { role: { read: true } } },\n { stateLink: 'contacts.bulkoperation', label: ['contacts.bulkoperation'], licenseModules: { baseModule: true }, claims: { role: { read: true } } }\n ]\n };\n\n var product = {\n name: 'product',\n label: ['common.products'],\n iconClass: 'fa fa-cube',\n licenseModules: { productModule: true },\n claims: { article: { read: true }, brand: { read: true }, articlesOrdersImport: { read: true }, mainGroup: { read: true } },\n nodes: [\n { stateLink: 'product.articles', params: {currentPage: 1, pageSize: 20, filter: '', inactive: false, match: true }, label: ['article.articles'], licenseModules: { productModule: true }, claims: { article: { read: true } } },\n //Deprecated #8046: { stateLink: 'product.priceListSearch', label: ['article.pricelist'], licenseModules: { productModule: true }, claims: { pricelist: { read: true } } },\n //Deprecated #10429: { stateLink: 'product.importfileslist', label: ['article.articleimport'], licenseModules: { productModule: true }, claims: { articlesOrdersImport: { read: true } } },\n { stateLink: 'product.productimport', label: ['article.articleimport'], licenseModules: { productModule: true }, claims: { articlesOrdersImport: { read: true } } },\n { stateLink: 'product.maingroups', label: ['article.maingroup'], licenseModules: { productModule: true }, claims: { mainGroup: { read: true } } },\n { stateLink: 'product.brands', label: ['article.brand'], licenseModules: { productModule: true }, claims: { brand: { read: true } } }\n ]\n };\n\n var budget = {\n licenseModules: { budgetModule: true },\n name: 'budget',\n label: ['common.budget'],\n iconClass: 'fa fa-bar-chart-o',\n nodes: [\n { stateLink: 'budget.budgets', label: ['common.budget'], licenseModules: { budgetModule: true }, claims: { economy: { read: true } } }\n ]\n };\n\n\n var order = {\n name: 'order',\n label: ['common.purchasing'],\n iconClass: 'fa fa-clipboard',\n licenseModules: { orderModule: true },\n claims: { order: { read: true }, purchaseOrder: { read: true }, customerInvoice: { read: true } },\n nodes: [\n { stateLink: 'order.ordersearch', label: ['common.order'], licenseModules: { orderModule: true }, claims: { order: { read: true } } },\n { stateLink: 'order.purchaseordersearch', label: ['order.purchaseorder'], licenseModules: { orderModule: true }, claims: { purchaseOrder: { read: true } } },\n { stateLink: 'order.purchaseorderanalysis', label: ['purchaseorderanalysis.purchaseOrderAnalysisNavigationName'], licenseModules: { orderModule: true }, claims: { order: { read: true } } },\n { stateLink: 'customerinvoice.customerinvoicesearch', label: ['customerinvoice.customerinvoices'], licenseModules: { ecommerceModule: true }, claims: { customerInvoice: { read: true } } },\n {\n label: ['stock.reports'], licenseModules: { orderModule: true }, claims: { order: { read: true } }, nodes: [\n { stateLink: 'order.transitReports', label: ['reports.ui.transit'], licenseModules: { orderModule: true }, claims: { order: { read: true } } },\n { stateLink: 'order.intrastatReports', label: ['flexmonster.intrastat'], licenseModules: { orderModule: true }, claims: { order: { read: true } } }\n ]\n }\n ]\n };\n\n var sales = {\n name: 'sales',\n label: ['common.sales'],\n iconClass: 'fa fa-shopping-cart',\n licenseModules: { orderModule: true },\n claims: { order: { read: true }, purchaseOrder: { read: true }, customerInvoice: { read: true } },\n nodes: [\n { stateLink: 'customerorder.customerordersearch', label: ['customerorder.customerorders'], licenseModules: { ecommerceModule: true }, claims: { customerOrder: { read: true } } },\n { stateLink: 'discountManagement.discounts', params: {show: false, filter: '', canc: false, appr: true, comp: false, months: 2, currPage: 1, pageSize: 10 }, label: ['discountManagement.discounts'], licenseModules: { discountManagementModule: true }, claims: { discount: { read: true } } },\n { stateLink: 'resellerorder.resellerordersearch', label: ['resellerorder.resellerorders'], licenseModules: { ecommerceModule: true }, claims: { resellerOrder: { read: true } } },\n { stateLink: 'resellerorder.createfulfillment', label: ['resellerorder.createfulfillment'], licenseModules: { ecommerceModule: true }, claims: { resellerOrder: { read: true } } },\n {\n label: ['resellerorder.manageFulfillment'], licenseModules: { ecommerceModule: true }, claims: { resellerOrder: { read: true } }, nodes: [\n { stateLink: 'resellerorder.manageorders', label: ['resellerorder.manageOrderFulfillments'], licenseModules: { ecommerceModule: true }, claims: { resellerOrder: { read: true } } },\n { stateLink: 'resellerorder.manageproducts', label: ['resellerorder.manageProductFulfillments'], licenseModules: { ecommerceModule: true }, claims: { resellerOrder: { read: true } } }\n ]\n },\n // { stateLink: 'resellerorder.resellerOrderInvoice', label: ['resellerorder.resellerOrderInvoice'], licenseModules: { ecommerceModule: true }, claims: { resellerOrder: { read: true } } }\n ]\n };\n\n var stock = {\n name: 'stock',\n label: ['common.stock'],\n iconClass: 'fa fa-cubes',\n licenseModules: { orderModule: true },\n claims: { stock: { read: true }, inventorying: { read: true } },\n nodes: [\n { stateLink: 'stock.articlesearch', label: ['stock.article'], licenseModules: { orderModule: true }, claims: { stock: { read: true } } },\n { stateLink: 'stock.modelinventorysearch', label: ['stock.inventorymodel'], licenseModules: { orderModule: true }, claims: { inventorying: { read: true } } },\n { stateLink: 'stock.scannerinventorying', label: ['stock.scannerinventorying'], licenseModules: { orderModule: true }, claims: { inventorying: { read: true } } },\n { stateLink: 'stock.stockpickinglist', label: ['stock.stockpickinglist'], licenseModules: { orderModule: true }, claims: { stock: { read: true } } },\n {\n label: ['stock.reports'], licenseModules: { orderModule: true }, claims: { stock: { read: true }, seepurchasecost: { read: true } }, nodes: [\n { stateLink: 'stock.stockValueReports', label: ['stock.stockValueReports'], licenseModules: { orderModule: true }, claims: { stock: { read: true }, seepurchasecost: { read: true } } },\n { stateLink: 'stock.soldStockReports', label: ['stock.soldStockReports'], licenseModules: { orderModule: true }, claims: { stock: { read: true }, seepurchasecost: { read: true } } },\n ]\n }\n ]\n };\n\n var stocklogistics = {\n name: 'stocklogistics',\n label: ['common.stocklogistics'],\n iconClass: 'fa fa-truck',\n licenseModules: { logisticsModule: true },\n claims: { stockLogistics: { read: true }, order: { read: true } },\n nodes: [\n { stateLink: 'stock.orderingpointssearch', label: ['stock.orderingpoints'], licenseModules: { logisticsModule: true }, claims: { stockLogistics: { read: true } } },\n // Hidden: Not complete { stateLink: 'stocklogistics.masshandlingorderingpoints', label: ['Masshantering av ','stock.orderingpoints'], licenseModules: { logisticsModule: true }, claims: { stockLogistics: { read: true } } },\n { stateLink: 'stocklogistics.articletransfer', label: ['stocklogistics.internaltransfer'], licenseModules: { logisticsModule: true }, claims: { order: { read: true } } },\n { stateLink: 'stocklogistics.eshopreplenishment', label: ['stocklogistics.eshopreplenishment'], licenseModules: { logisticsModule: true }, claims: { order: { read: true } } }\n ]\n };\n\n var analysis = {\n name: 'analysis',\n label: ['common.analysis'],\n iconClass: 'fa fa-pie-chart',\n licenseModules: { analysisModule: true },\n claims: { analysis: { read: true } },\n nodes: [\n //#5140: { stateLink: 'analysis.reports', label: ['analyse.analysis'], licenseModules: { analysisModule: true }, claims: { analysis: { read: true } } },\n { stateLink: 'analysis.userReports', label: ['analyse.userReports'], licenseModules: { analysisModule: true }, claims: { analysis: { read: true } } },\n //#10657: { stateLink: 'sales.salestotal', label: ['salestotal.salestotal'], licenseModules: { ecommerceModule: true }, claims: { analysis: { read: true }, location: { read: true } } },\n { stateLink: 'stock.saleThroughputReports', label: ['stock.saleThroughputReports'], licenseModules: { orderModule: true }, claims: { analysis: { read: true }, seepurchasecost: { read: true } } }\n ]\n };\n\n var crm = {\n licenseModules: { crmModule: true },\n name: 'crm',\n label: ['common.crm'],\n iconClass: 'fa fa-smile-o',\n nodes: []\n };\n\n var administration = {\n name: 'product',\n label: ['common.administration'],\n iconClass: 'fa fa-database',\n licenseModules: { productModule: true, economyModule: true, orderModule: true, baseModule: true, deliveryPlanningModule: true },\n claims: {\n article: { read: true }, salesChannel: { read: true }, intrastat: { read: true }, psychologicalPrice: { read: true }, subCategory: { read: true },\n timeStamping: { read: true }, pricelist: { read: true }, economy: { read: true }, currency: { read: true }, paymentTerm: { read: true }, deliveryTerm: { read: true }, shippingMethod: { read: true }, customerGroup: { read: true }, invoiceType: { read: true }, businessArea: { read: true }\n },\n nodes: [\n {\n label: ['admin.product'], licenseModules: { productModule: true }, claims: { department: { read: true }, subCategory: { read: true }, article: { read: true }, businessArea: { read: true } }, nodes: [\n { stateLink: 'product.departments', label: ['article.department'], licenseModules: { productModule: true }, claims: { department: { read: true } } },\n { stateLink: 'product.subcategories', label: ['article.subcategory'], licenseModules: { productModule: true }, claims: { subCategory: { read: true } } },\n { stateLink: 'base.articletypes', label: ['article.articletypes'], licenseModules: { productModule: true }, claims: { article: { read: true } } },\n { stateLink: 'product.variants', label: ['article.variants'], licenseModules: { productModule: true }, claims: { article: { read: true } } },\n { stateLink: 'product.variantgroups', label: ['article.variantgroups'], licenseModules: { productModule: true }, claims: { article: { read: true } } },\n { stateLink: 'product.businessareas', label: ['role.businessArea'], licenseModules: { productModule: true }, claims: { businessArea: { read: true } } }\n ]\n },\n {\n label: ['admin.purchase'], licenseModules: { baseModule: true }, claims: { paymentTerm: { read: true }, shippingMethod: { read: true }, intrastat: { read: true }, deliveryTerm: { read: true }, country: { read: true }, currency: { read: true }, invoiceType: { read: true } }, nodes: [\n { stateLink: 'base.paymentterms', label: ['role.paymentTerm'], licenseModules: { baseModule: true }, claims: { paymentTerm: { read: true } } },\n { stateLink: 'base.shippingmethods', label: ['role.shippingMethod'], licenseModules: { baseModule: true }, claims: { shippingMethod: { read: true } } },\n { stateLink: 'product.intrastats', label: ['article.intrastats'], licenseModules: { productModule: true }, claims: { intrastat: { read: true } } },\n { stateLink: 'base.deliveryterms', label: ['role.deliveryTerm'], licenseModules: { baseModule: true }, claims: { deliveryTerm: { read: true } } },\n { stateLink: 'base.countries', label: ['base.countries'], licenseModules: { baseModule: true }, claims: { country: { read: true } } },\n //#3577: { stateLink: 'base.articlecollections', label: ['articlecollection.articleCollections'], licenseModules: { baseModule: true }, claims: { article: { read: true } } },\n //#3577: { stateLink: 'base.ordercollections', label: ['articlecollection.orderCollections'], licenseModules: { baseModule: true }, claims: { order: { read: true } } },\n { stateLink: 'base.currencies', label: ['base.currencies'], licenseModules: { baseModule: true }, claims: { currency: { read: true } } },\n { stateLink: 'base.ordertypes', label: ['base.ordertypes'], licenseModules: { baseModule: true }, claims: { orderType: { read: true } } },\n // Hidden: Not complete { stateLink: 'base.deliveryplanningtemplates', label: ['base.deliveryplanningtemplates'], licenseModules: { deliveryPlanningModule: true }, claims: { deliveryPlanningTemplate: { read: true } } },\n { stateLink: 'base.invoicetypes', label: ['role.invoiceType'], licenseModules: { baseModule: true }, claims: { invoiceType: { read: true } } }\n ]\n },\n {\n label: ['admin.price'], licenseModules: { productModule: true }, claims: { salesChannel: { read: true }, pricelist: { read: true }, customerGroup: { read: true } }, nodes: [\n { stateLink: 'product.saleschannels', label: ['article.saleschannel'], licenseModules: { productModule: true }, claims: { salesChannel: { read: true } } },\n { stateLink: 'product.pricelists', label: ['article.pricelists'], licenseModules: { productModule: true }, claims: { pricelist: { read: true } } },\n { stateLink: 'product.pricelisteditor', label: ['article.pricelisteditor'], licenseModules: { productModule: true }, claims: { pricelist: { read: true } } },\n { stateLink: 'product.psychologicalprices', label: ['article.psychologicalprices'], licenseModules: { productModule: true }, claims: { psychologicalPrice: { read: true } } },\n { stateLink: 'product.volumediscounts', label: ['role.volumeDiscount'], licenseModules: { productModule: true }, claims: { volumeDiscount: { read: true } } },\n { stateLink: 'base.customergroups', label: ['role.customerGroup'], licenseModules: { baseModule: true }, claims: { customerGroup: { read: true } } }\n ]\n },\n { stateLink: 'main.siefileexport', label: ['economy.siefileexport'], licenseModules: { economyModule: true }, claims: { economy: { read: true } } },\n { stateLink: 'base.accounts', label: ['role.account'], licenseModules: { baseModule: true }, claims: { account: { read: true } } },\n { stateLink: 'base.vats', label: ['role.vat'], licenseModules: { baseModule: true }, claims: { vat: { read: true } } },\n { stateLink: 'base.paymenttypes', label: ['role.paymentType'], licenseModules: { baseModule: true }, claims: { paymentType: { read: true } } },\n { stateLink: 'base.returnreasons', label: ['role.returnReason'], licenseModules: { baseModule: true }, claims: { returnReason: { read: true } } },\n { stateLink: 'contacts.timestampingmanagement', label: ['contacts.timestamping'], licenseModules: { baseModule: true }, claims: { timeStamping: { read: true } } }\n ]\n };\n\n nav.nodes.push(dashboard);\n nav.nodes.push(contacts);\n nav.nodes.push(product);\n nav.nodes.push(budget);\n nav.nodes.push(order);\n nav.nodes.push(sales);\n nav.nodes.push(stock);\n nav.nodes.push(stocklogistics);\n nav.nodes.push(analysis);\n nav.nodes.push(administration);\n\n return nav;\n }\n\n\n}\n\nangular\n .module('navigation.api', [])\n .factory('NavigationApiService', Service);\n","var module = angular.module('components');\nmodule.component('navigationNode', {\n templateUrl: 'components/navigation/navigationNode.component.tpl.html',\n controllerAs: 'vm',\n bindings: {\n node: '<',\n level: '<',\n claims: '<',\n root: '<',\n branch: '<',\n licenseModules: '<'\n },\n controller: ['$state','AuthService','$window','$rootScope', '$translate',controller]\n});\n\n\nfunction controller($state, AuthService, $window, $rootScope, $translate) {\n var vm = this;\n\n vm.$onInit = onInit;\n vm.$onChanges = onChanges;\n vm.$onDestroy = onDestroy;\n vm.onClick = onClick;\n vm.hasFocus = hasFocus;\n vm.shouldRender = shouldRender;\n vm.getIndentation = getIndentation;\n vm.getNodeLabel = getNodeLabel;\n\n function onInit() {\n vm.node.expanded = false;\n }\n\n function onChanges(changes) {\n }\n\n function onDestroy() {\n }\n\n function onClick() {\n if (vm.node.stateLink) {\n $rootScope.$emit('NavigatingTo', vm.node.stateLink);\n $state.go(vm.node.stateLink, vm.node.params == undefined ? {} : vm.node.params);\n $window.scrollTo(0, 0);\n return;\n }\n toggleMenuExpansion();\n }\n\n function hasFocus() {\n if (vm.node.stateLink) {\n if ($state.includes(vm.node.stateLink)) {\n return true;\n }\n }\n return false;\n }\n\n function shouldRender(type) {\n if (type === 'root' && vm.level > 0) {\n return false;\n }\n\n if (type === 'leaf' && vm.level === 0) {\n return false;\n }\n\n if (vm.node.claims && !AuthService.matchAnyDemand(vm.node.claims, vm.claims)) {\n return false;\n }\n\n if (vm.node.licenseModules && !AuthService.matchAnyDemand(vm.node.licenseModules, vm.licenseModules)) {\n return false;\n }\n\n if (vm.node.claims && !AuthService.matchTwoDemand(vm.node.claims, vm.claims, type, \"seepurchasecost\", \"stock\")) {\n return false;\n }\n\n return true;\n }\n\n function getNodeLabel(node) {\n var label = _.map(node.label, function(o) {\n return $translate.instant(o);\n });\n\n return _.join(label, ' ');\n }\n\n function getIndentation(level) {\n if (level > 1) {\n return Array(level).join('-') + ' ';\n }\n return '';\n }\n\n function toggleMenuExpansion() {\n vm.node.expanded = !vm.node.expanded;\n\n if (vm.node.expanded) {\n _.forEach(vm.root.nodes, function(branch) {\n if (branch !== vm.branch) {\n branch.expanded = false;\n }\n });\n\n }\n }\n\n}\n","// @ngInject\nfunction bootstrapModal($provide) {\n $provide.decorator('$uibModalStack',bootstrapModalDelegate);\n}\n\n// @ngInject\nfunction bootstrapModalDelegate($delegate,loadSpinnerService) {\n\n var openFn = $delegate.open;\n\n\n $delegate.open = function() {\n var args = Array.prototype.slice.call(arguments);\n\n var spinnerName = \"modalSpinner\" + Math.random();\n\n args[1].content = '<div load-spinner spinner-name=\"' + spinnerName + '\"></div>' + args[1].content;\n\n args[0].startLoadingSpinner = function() {\n loadSpinnerService.start(spinnerName);\n };\n args[0].stopLoadingSpinner = function() {\n loadSpinnerService.stop(spinnerName);\n };\n\n openFn.apply(null,args);\n };\n\n return $delegate;\n}\n\nangular\n .module('decorators.bootstrapModal', [])\n .config(bootstrapModal);\n","// @ngInject\nfunction dashboard(DashboardApiService, $debounce) {\n return {\n templateUrl: 'directives/dashboard/dashboard.tpl.html',\n link: function($scope) {\n $scope.addNewWidget = function(widget) {\n var newWidget = angular.copy(widget);\n $scope.widgets.push(newWidget);\n };\n \n $scope.gridsterOpts = {\n columns: 24,\n margins: [5, 5],\n outerMargin: true,\n pushing: true,\n floating: true,\n swapping: true,\n mobileBreakPoint: 500,\n resizable: {\n enabled: true,\n handles: ['e', 's', 'se'],\n start: function(event, $element, widget) {}, // optional callback fired when resize is started,\n resize: function(event, $element, widget) {}, // optional callback fired when item is resized,\n stop: function(event, $element, widget) {} // optional callback fired when item is finished resizing\n },\n draggable: {\n enabled: true, // whether dragging items is supported\n handle: '.wgt-heading',\n start: function(event, $element, widget) {}, // optional callback fired when drag is started,\n drag: function(event, $element, widget) {}, // optional callback fired when item is moved,\n stop: function(event, $element, widget) {} // optional callback fired when item is finished dragging\n }\n };\n\n $scope.$watch('widgets', function() {\n $debounce($scope.saveDashboard, 2500);\n }, true);\n $scope.saveDashboard = function() {\n DashboardApiService.saveWidgets($scope.widgets)\n .then(function(response) {\n });\n };\n\n }\n };\n}\n\nangular\n .module('directives.dashboard', [])\n .directive('dashboard', ['DashboardApiService', '$debounce', dashboard])\n .filter('cmdate', [\n '$filter',\n function($filter) {\n return function(input, format) {\n return $filter('date')(new Date(input.replace(new RegExp('-', 'g'), '/')), format); // replace is used for IE to understand the date\n };\n }\n ])\n .factory('$debounce', ['$rootScope', '$browser', '$q', '$exceptionHandler',\n function($rootScope, $browser, $q, $exceptionHandler) {\n var deferreds = {},\n methods = {},\n uuid = 0;\n\n function debounce(fn, delay, invokeApply) {\n var deferred = $q.defer(),\n promise = deferred.promise,\n skipApply = (angular.isDefined(invokeApply) && !invokeApply),\n timeoutId, cleanup,\n methodId, bouncing = false;\n\n // check we dont have this method already registered\n angular.forEach(methods, function(value, key) {\n if (angular.equals(methods[key].fn, fn)) {\n bouncing = true;\n methodId = key;\n }\n });\n\n // not bouncing, then register new instance\n if (!bouncing) {\n methodId = uuid++;\n methods[methodId] = {\n fn: fn\n };\n } else {\n // clear the old timeout\n deferreds[methods[methodId].timeoutId].reject('bounced');\n $browser.defer.cancel(methods[methodId].timeoutId);\n }\n\n var debounced = function() {\n // actually executing? clean method bank\n delete methods[methodId];\n\n try {\n deferred.resolve(fn());\n } catch (e) {\n deferred.reject(e);\n $exceptionHandler(e);\n }\n\n if (!skipApply) {\n $rootScope.$apply();\n }\n };\n\n timeoutId = $browser.defer(debounced, delay);\n\n // track id with method\n methods[methodId].timeoutId = timeoutId;\n\n cleanup = function(reason) {\n delete deferreds[promise.$$timeoutId];\n };\n\n promise.$$timeoutId = timeoutId;\n deferreds[timeoutId] = deferred;\n promise.then(cleanup, cleanup);\n\n return promise;\n }\n\n // similar to angular's $timeout cancel\n debounce.cancel = function(promise) {\n if (promise && promise.$$timeoutId in deferreds) {\n deferreds[promise.$$timeoutId].reject('canceled');\n return $browser.defer.cancel(promise.$$timeoutId);\n }\n return false;\n };\n\n return debounce;\n }\n ]);\n","angular.module('directives.dashboard').directive('widgetBody',\n ['$compile', '$uibModal',\n function ($compile, $uibModal) {\n return {\n restrict: 'E',\n templateUrl: 'directives/dashboard/widgetBody.tpl.html',\n link: function (scope, element, attrs) {\n var newElement = angular.element(scope.item.template);\n element.append(newElement);\n $compile(newElement)(scope);\n\n scope.close = function () {\n scope.widgets.splice(scope.widgets.indexOf(scope.item), 1);\n };\n\n if (scope.item.setting !== undefined) {\n\n var settings = JSON.parse(scope.item.setting);\n var locationIds = settings.locationIds === undefined ? [settings] : settings.locationIds;\n var selectedLocations = [];\n\n _.forEach(scope.currentUser.locations, function(loc){\n if(_.some(locationIds, function(id){ return parseInt(id) === loc.id })){\n selectedLocations.push(loc);\n }\n })\n\n scope.selectedWidgetTimeFrame = settings.selectedWidgetTimeFrame ? \"0\" : settings.selectedWidgetTimeFrame.toString();\n scope.selectedBusinessAreaId = settings.businessAreaId;\n scope.selectedLocation = (selectedLocations.length) ? selectedLocations[0].locationName : '';\n scope.selectedLocationNumber = (selectedLocations.length) ? selectedLocations[0].locationNumber : '';\n scope.selectedLocationId = (selectedLocations.length) ? selectedLocations[0].id : NaN;\n scope.selectedLocations = selectedLocations;\n }\n\n if (scope.item.settingController) {\n scope.settings = function () {\n var options = {\n templateUrl: scope.item.settingTemplateUrl,\n controller: scope.item.settingController,\n scope: scope\n };\n $uibModal.open(options);\n };\n }\n\n scope.iconClicked = function () {\n // empty, don't remove it\n };\n }\n };\n }\n ]);\n","angular.module('directives.dashboard').controller('wgtSettings',\n ['$scope', '$rootScope',\n function ($scope, $rootScope) {\n if ($scope.item.setting === undefined || $scope.item.setting === null ) {\n $scope.selectedSettingItem = '';\n } else {\n var selectedItem = parseInt($scope.item.setting);\n if(isNaN(selectedItem) && $scope.item.setting !== \"\"){\n selectedItem = JSON.parse($scope.item.setting).locationIds[0];\n }\n $scope.selectedSettingItem = selectedItem;\n }\n $scope.saveSettings = function () {\n if ($scope.selectedSettingItem === null || $scope.selectedSettingItem === \"\" ) {\n $scope.$parent.selectedLocation = '';\n $scope.$parent.selectedLocationNumber = '';\n $scope.$parent.selectedLocationId = 0;\n } else {\n var location = $.grep($scope.currentUser.locations, function (e) {\n return e.id === $scope.selectedSettingItem;\n })[0];\n $scope.$parent.selectedLocation = location.locationName;\n $scope.$parent.selectedLocationNumber = location.locationNumber;\n $scope.$parent.selectedLocationId = location.id;\n\n $scope.selectedSettingItem = {locationIds: [angular.copy(location.id)]};\n }\n $scope.item.setting = $scope.selectedSettingItem;\n if ($scope.$parent) {\n if ($scope.$parent.loadWidget) {\n $scope.$parent.loadWidget();\n }\n }\n $rootScope.$emit(\"widget.changed\", $scope.item);\n\n $scope.$close();\n };\n }]);\n","angular.module('directives.dashboard').controller('wgtSettingsBusinessArea',\n ['$scope', '$rootScope', 'BusinessAreasApiService',\n function ($scope, $rootScope, BusinessAreasApiService) {\n $scope.businessAreas = [];\n if ($scope.item.setting === undefined || $scope.item.setting === null ) {\n $scope.selectedSettingItem = '';\n $scope.selectedBusinessArea = undefined;\n $scope.selectedWidgetTimeFrame = \"0\";\n } else { \n $scope.selectedSettingItem = parseInt($scope.item.setting);\n if(isNaN($scope.selectedSettingItem)){\n var parsedSettings = JSON.parse($scope.item.setting);\n $scope.selectedSettingItem = parsedSettings.locationIds ? parsedSettings.locationIds[0] : '';\n $scope.selectedBusinessAreaId = parsedSettings.businessAreaId ? parsedSettings.businessAreaId : 0;\n $scope.selectedWidgetTimeFrame = parsedSettings.selectedWidgetTimeFrame ? parsedSettings.selectedWidgetTimeFrame.toString(): \"0\"\n }\n }\n BusinessAreasApiService.getBusinessAreas().then(function (response){\n $scope.businessAreas = response;\n if($scope.selectedBusinessAreaId && $scope.selectedBusinessAreaId !== 0){\n $scope.selectedBusinessArea = $scope.businessAreas.filter(x => x.id === $scope.selectedBusinessAreaId)[0];\n }\n });\n $scope.saveSettings = function () {\n if ($scope.selectedSettingItem === null || $scope.selectedSettingItem === \"\" ) {\n $scope.$parent.selectedLocation = '';\n $scope.$parent.selectedLocationNumber = '';\n $scope.$parent.selectedLocationId = 0;\n $scope.$parent.selectedBusinessArea = $scope.selectedBusinessArea;\n $scope.$parent.selectedBusinessAreaId = $scope.selectedBusinessArea && $scope.selectedBusinessArea.id > 0 ? $scope.selectedBusinessArea.id : undefined;\n $scope.selectedSettingItem = {};\n if($scope.selectedBusinessArea){\n $scope.$parent.selectedBusinessArea = $scope.selectedBusinessArea;\n $scope.selectedSettingItem.businessAreaId = $scope.selectedBusinessArea.id;\n }\n $scope.$parent.selectedWidgetTimeFrame = $scope.selectedWidgetTimeFrame ? parseInt($scope.selectedWidgetTimeFrame) : 0;\n if($scope.selectedWidgetTimeFrame){\n $scope.selectedSettingItem.selectedWidgetTimeFrame = parseInt($scope.selectedWidgetTimeFrame);\n }\n } else {\n var location = $.grep($scope.currentUser.locations, function (e) {\n return e.id === $scope.selectedSettingItem;\n })[0];\n $scope.$parent.selectedLocation = location.locationName;\n $scope.$parent.selectedLocationNumber = location.locationNumber;\n $scope.$parent.selectedLocationId = location.id;\n $scope.$parent.selectedBusinessArea = $scope.selectedBusinessArea;\n $scope.$parent.selectedBusinessAreaId = $scope.selectedBusinessArea && $scope.selectedBusinessArea.id > 0 ? $scope.selectedBusinessArea.id : undefined;\n $scope.$parent.selectedWidgetTimeFrame = $scope.selectedWidgetTimeFrame ? parseInt($scope.selectedWidgetTimeFrame) : 0\n\n $scope.selectedSettingItem = {\n locationIds: [angular.copy(location.id)], \n businessAreaId: $scope.selectedBusinessArea && $scope.selectedBusinessArea.id > 0 ? $scope.selectedBusinessArea.id : undefined, \n selectedWidgetTimeFrame: parseInt($scope.$parent.selectedWidgetTimeFrame)\n };\n }\n $scope.item.setting = $scope.selectedSettingItem;\n if ($scope.$parent) {\n if ($scope.$parent.loadWidget) {\n $scope.$parent.loadWidget();\n }\n }\n $rootScope.$emit(\"widget.changed\", $scope.item);\n\n $scope.$close();\n };\n }]);\n","angular.module('directives.dashboard').controller('wgtSettingsHideTooltipLocation',\n ['$scope', '$rootScope',\n function ($scope, $rootScope) {\n if ($scope.item.setting === undefined) {\n $scope.selectedSettingItem = '';\n } else {\n if(angular.isString($scope.item.setting)){\n $scope.item.setting = JSON.parse($scope.item.setting);\n }\n\n $scope.selectedSettingItem = {\n locationIds : $scope.item.setting.locationIds[0],\n hideTooltip: $scope.item.setting.hideTooltip\n }\n }\n $scope.saveSettings = function () {\n if ($scope.selectedSettingItem.locationIds === null || $scope.selectedSettingItem.locationIds === undefined || $scope.selectedSettingItem.locationIds === 0) {\n $scope.$parent.selectedLocation = '';\n $scope.$parent.selectedLocationId = 0;\n $scope.$parent.hideTooltip = $scope.selectedSettingItem.hideTooltip ? $scope.selectedSettingItem.hideTooltip: false;\n } else {\n var location = $.grep($scope.currentUser.locations, function (e) {\n return e.id === $scope.selectedSettingItem.locationIds;\n })[0];\n $scope.$parent.selectedLocation = location.locationName;\n $scope.$parent.selectedLocationId = location.id;\n $scope.$parent.hideTooltip = $scope.selectedSettingItem.hideTooltip;\n\n }\n $scope.selectedSettingItem = {locationIds: [$scope.$parent.selectedLocationId], hideTooltip: $scope.$parent.hideTooltip};\n $scope.item.setting = $scope.selectedSettingItem;\n if ($scope.$parent) {\n if ($scope.$parent.loadWidget) {\n $scope.$parent.loadWidget();\n }\n }\n $rootScope.$emit(\"widget.changed\", $scope.item);\n\n $scope.$close();\n };\n }]);\n","angular.module('directives.dashboard').controller('wgtSettingsMultipleLocations',\n ['$scope', '$rootScope',\n function ($scope, $rootScope) {\n if ($scope.item.setting === undefined) {\n $scope.selectedSettingItems = '';\n } else {\n var selectedLocationIds = $scope.item.setting.locationIds;\n \n if(angular.isString($scope.item.setting)){\n selectedLocationIds = JSON.parse($scope.item.setting).locationIds;\n }\n\n $scope.selectedSettingItems = [];\n\n _.forEach($scope.currentUser.locations, function(loc){\n if(_.some(selectedLocationIds, function(id){ return parseInt(id) === loc.id })){\n $scope.selectedSettingItems.push(loc);\n }\n })\n }\n $scope.saveSettings = function () {\n if ($scope.selectedSettingItems === null) {\n $scope.$parent.selectedLocations = [];\n } else { \n\n var settingsObject = { locationIds : [] };\n _.forEach($scope.currentUser.locations, function(loc){\n if(_.some($scope.selectedSettingItems, function(item){ return item.id === loc.id })){\n settingsObject.locationIds.push(loc.id);\n }\n })\n\n $scope.$parent.selectedLocations = angular.copy($scope.selectedSettingItems);\n $scope.selectedSettingItems = settingsObject;\n }\n $scope.item.setting = $scope.selectedSettingItems;\n if ($scope.$parent) {\n if ($scope.$parent.loadWidget) {\n $scope.$parent.loadWidget();\n }\n }\n $rootScope.$emit(\"widget.changed\", $scope.item);\n\n $scope.$close();\n };\n }]);\n","angular.module('directives.dashboard').controller('wgtSettingsTimePeriod',\n['$scope', '$rootScope',\n function ($scope, $rootScope) {\n if ($scope.item.setting === undefined) {\n $scope.selectedSettingItem = {\n locationIds : null,\n selectedWidgetTimeFrame: \"0\"\n };\n } else {\n if(angular.isString($scope.item.setting)){\n $scope.item.setting = JSON.parse($scope.item.setting);\n }\n\n $scope.selectedSettingItem = {\n locationIds : $scope.item.setting.locationIds[0],\n selectedWidgetTimeFrame: $scope.item.setting.selectedWidgetTimeFrame !== undefined ? $scope.item.setting.selectedWidgetTimeFrame.toString(): \"0\"\n }\n }\n $scope.saveSettings = function () {\n if ($scope.selectedSettingItem.locationIds === null || $scope.selectedSettingItem.locationIds === undefined || $scope.selectedSettingItem.locationIds === 0) {\n $scope.$parent.selectedLocation = '';\n $scope.$parent.selectedLocationNumber = '';\n $scope.$parent.selectedLocationId = 0;\n $scope.$parent.selectedWidgetTimeFrame = $scope.selectedSettingItem.selectedWidgetTimeFrame ? parseInt($scope.selectedSettingItem.selectedWidgetTimeFrame) : 0;\n } else {\n var location = $.grep($scope.currentUser.locations, function (e) {\n return e.id === $scope.selectedSettingItem.locationIds;\n })[0];\n $scope.$parent.selectedLocation = location.locationName;\n $scope.$parent.selectedLocationNumber = location.locationNumber;\n $scope.$parent.selectedLocationId = location.id;\n $scope.$parent.selectedWidgetTimeFrame = parseInt($scope.selectedSettingItem.selectedWidgetTimeFrame)\n }\n $scope.selectedSettingItem = {locationIds: [$scope.$parent.selectedLocationId], selectedWidgetTimeFrame: parseInt($scope.$parent.selectedWidgetTimeFrame)};\n $scope.item.setting = $scope.selectedSettingItem;\n if ($scope.$parent) {\n if ($scope.$parent.loadWidget) {\n $scope.$parent.loadWidget();\n }\n }\n $rootScope.$emit(\"widget.changed\", $scope.item);\n\n $scope.$close();\n };\n }]);\n","angular.module('directives.dashboard').directive('wgtArticleNegativeBalance', ['DashboardApiService','$state',\n function (DashboardApiService, $state) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtArticleNegativeBalance/wgtArticleNegativeBalance.tpl.html',\n link: function ($scope) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n if (response.data === '') {\n //No data, leaving\n return;\n }\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n\n $scope.gotoArticle = function(articleId) {\n $state.go('stock.articlesearch.article', { articleId: articleId });\n };\n $scope.loadWidget();\n }\n };\n }\n]);\n","angular.module('directives.dashboard').directive('wgtCalHeatmap', ['DashboardApiService', '$compile',\n function(DashboardApiService, $compile) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtCalHeatmap/wgtCalHeatmap.tpl.html',\n link: function($scope, $element) {\n\n $scope.elId = 'chart-' + Math.floor((Math.random() * 6000) + 1);\n $element.find('.heatmap-container')\n .append($compile(\"<div class='svg-container' id='\" + $scope.elId + \"'></div>\")($scope));\n\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function() {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function(response) {\n\n if (response.data === '') {\n //No data, leaving\n return;\n }\n\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n\n var margin = {\n top: 50,\n right: 0,\n bottom: 100,\n left: 50\n },\n width = 960 - margin.left - margin.right,\n height = 430 - margin.top - margin.bottom,\n gridSize = Math.floor(width / 24),\n legendElementWidth = gridSize * 2,\n buckets = 9,\n colors = [\"#ffffd9\", \"#edf8b1\", \"#c7e9b4\", \"#7fcdbb\", \"#41b6c4\", \"#1d91c0\", \"#225ea8\", \"#253494\", \"#081d58\"],\n days = [\"mÃ¥\", \"ti\", \"on\", \"to\", \"fr\", \"lö\", \"sö\"],\n times = [\"07\", \"08\", \"09\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\"];\n var timeHacked = 6;\n draw($scope.widgetData);\n\n function draw(data) {\n\n var colorScale = d3.scale.quantile()\n .domain([0, buckets - 1, d3.max(data, function(d) {\n return d.value;\n })])\n .range(colors);\n $(\"#\" + $scope.elId).empty();\n var svg = d3.select(\"#\" + $scope.elId).append(\"svg\")\n .attr(\"width\", \"100%\")\n .attr(\"height\", \"100%\")\n .attr(\"viewBox\", \"0 0 800 600\")\n .attr(\"preserveAspectRatio\", \"xMinYMin meet\")\n .attr(\"class\", \"svg-content\")\n .append(\"g\")\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\n var dayLabels = svg.selectAll(\".dayLabel\")\n .data(days)\n .enter().append(\"text\")\n .text(function(d) {\n return d;\n })\n .attr(\"x\", 0)\n .attr(\"y\", function(d, i) {\n return i * gridSize;\n })\n .style(\"text-anchor\", \"end\")\n .attr(\"transform\", \"translate(-6,\" + gridSize / 1.5 + \")\")\n .attr(\"class\", function(d, i) {\n return ((i >= 0 && i <= 4) ? \"dayLabel mono axis axis-workweek\" : \"dayLabel mono axis\");\n });\n\n var timeLabels = svg.selectAll(\".timeLabel\")\n .data(times)\n .enter().append(\"text\")\n .text(function(d) {\n return d;\n })\n .attr(\"x\", function(d, i) {\n return i * gridSize;\n })\n .attr(\"y\", 0)\n .style(\"text-anchor\", \"middle\")\n .attr(\"transform\", \"translate(\" + gridSize / 2 + \", -6)\")\n .attr(\"class\", function(d, i) {\n return ((i >= 7 && i <= 16) ? \"timeLabel mono axis axis-worktime\" : \"timeLabel mono axis\");\n });\n\n var heatMap = svg.selectAll(\".hour\")\n .data(data)\n .enter().append(\"rect\")\n .attr(\"x\", function(d) {\n return (d.hour - 1 - timeHacked) * gridSize;\n })\n .attr(\"y\", function(d) {\n return (d.day - 1) * gridSize;\n })\n .attr(\"rx\", 4)\n .attr(\"ry\", 4)\n .attr(\"class\", \"hour bordered\")\n .attr(\"width\", gridSize)\n .attr(\"height\", gridSize)\n .style(\"fill\", colors[0]);\n\n heatMap.transition().duration(1000)\n .style(\"fill\", function(d) {\n return colorScale(d.value);\n });\n\n heatMap.append(\"title\").text(function(d) {\n return d.value;\n });\n\n var legend = svg.selectAll(\".legend\")\n .data([0].concat(colorScale.quantiles()), function(d) {\n return d;\n })\n .enter().append(\"g\")\n .attr(\"class\", \"legend\");\n\n legend.append(\"rect\")\n .attr(\"x\", function(d, i) {\n return legendElementWidth * i;\n })\n .attr(\"y\", height)\n .attr(\"width\", legendElementWidth)\n .attr(\"height\", gridSize / 2)\n .style(\"fill\", function(d, i) {\n return colors[i];\n });\n\n legend.append(\"text\")\n .attr(\"class\", \"mono\")\n .text(function(d) {\n return \"≥ \" + Math.round(d);\n })\n .attr(\"x\", function(d, i) {\n return legendElementWidth * i;\n })\n .attr(\"y\", height + gridSize);\n }\n\n }, function(response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n\n }\n };\n }\n]);\n","angular.module('directives.dashboard').directive('wgtChart', function() {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtChart/wgtChart.tpl.html',\n restrict: 'E',\n controller: wgtChartController\n };\n});\n\n// @ngInject\nfunction wgtChartController($scope, $q, googleChartApiPromise, $element, $debounce, $rootScope, BusinessAreasApiService, $translate, DashboardApiService, $compile) {\n $scope.chart = {\n\n dataModel: {\n visual: {},\n metaData: {},\n data: {}\n },\n type: {},\n options: {}\n };\n $scope.activateChart = false;\n $scope.isLoaded = false;\n $scope.hasError = false;\n\n $scope.loadWidget = function () {\n var dataPromise = DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting);\n\n $q.all({\n data: dataPromise,\n api: googleChartApiPromise\n })\n .then(apiLoadSuccess);\n };\n $scope.loadWidget();\n BusinessAreasApiService.getBusinessAreas().then(function(data){\n $scope.businessAreas = data;\n });\n\n function apiLoadSuccess(response) {\n\n $rootScope.chartColorAssocArray = $rootScope.chartColorAssocArray || {};\n\n $scope.chart.type = 'BarChart';\n\n var _data = response.data.data;\n // Set chart options\n $scope.chart.options = {\n width: '100%',\n height: '100%',\n colors: [\n '#8dd3c7', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'\n ],\n animation: {\n duration: 1000,\n easing: 'out'\n },\n is3D: true,\n keepAspectRatio: 'false'\n };\n\n if (_data) {\n $scope.isLoaded = true;\n }\n\n var _array = [];\n\n var i;\n var data;\n var _seriesColor;\n var x;\n var __date;\n switch ($scope.item.name) {\n\n case 'sale-top-sold':\n for (i = 0; i < _data.length; i++) {\n _array.push([_data[i].article.articleName, parseInt(_data[i].quantity)]);\n }\n data = new google.visualization.DataTable();\n data.addColumn('string', 'Name');\n data.addColumn('number', 'Quantity');\n data.addRows(_array);\n $scope.chart.dataModel.dataTable = data;\n $scope.chart.options.legend = {\n position: 'none'\n };\n $scope.chart.type = 'BarChart';\n break;\n\n case 'sale-top-refund':\n for (i = 0; i < _data.length; i++) {\n _array.push([_data[i].article.articleName, parseInt(_data[i].quantity)]);\n }\n data = new google.visualization.DataTable();\n data.addColumn('string', 'Name');\n data.addColumn('number', 'dashboard.quantity');\n data.addRows(_array);\n $scope.chart.options = {\n colors: ['#e0440e', '#e6693e', '#ec8f6e', '#f3b49f', '#f6c7b6']\n };\n $scope.chart.options.legend = {\n position: 'none'\n };\n $scope.chart.type = 'BarChart';\n $scope.chart.dataModel.dataTable = data;\n break;\n\n case 'sale-main-group':\n if($scope.selectedBusinessAreaId && $scope.selectedBusinessAreaId > 0 && $scope.businessAreas && $scope.businessAreas.length > 0){\n $scope.selectedBusinessArea = $scope.businessAreas.filter(x => x.id === $scope.selectedBusinessAreaId)[0];\n }\n\n _seriesColor = [];\n\n for (i = 0; i < _data.length; i++) {\n x = parseInt(_data[i].sum);\n if (x > 0) {\n _array.push([_data[i].mainGroupDescription, x]);\n _seriesColor.push({color: getMySeriesColor(_data[i].mainGroupDescription)});\n }\n }\n\n data = new google.visualization.DataTable();\n data.addColumn('string', 'Name');\n data.addColumn('number', 'Price');\n data.addRows(_array);\n $scope.chart.dataModel.dataTable = data;\n $scope.chart.type = 'PieChart';\n $scope.chart.options.title = $scope.selectedBusinessArea && $scope.selectedBusinessArea.id > 0 ? $translate.instant(\"maingroup.businessarea\") + \": \" + $scope.selectedBusinessArea.code + \" \" + $scope.selectedBusinessArea.name : \"\";\n $scope.chart.options.slices = _seriesColor;\n $scope.chart.options.chartArea = {left:15,top:30};\n $scope.chart.options.width = 600;\n $scope.chart.options.height = 300;\n $scope.chart.options.fontSize = 11;\n $scope.chart.options.isStacked = true;\n break;\n\n case 'sale-stock-main-group':\n _seriesColor = [];\n for (i = 0; i < _data.length; i++) {\n x = parseInt(_data[i].sum);\n if (x > 0) {\n _array.push([_data[i].mainGroupDescription, x]);\n _seriesColor.push({color: getMySeriesColor(_data[i].mainGroupDescription)});\n }\n }\n\n data = new google.visualization.DataTable();\n data.addColumn('string', 'Name');\n data.addColumn('number', 'Price');\n data.addRows(_array);\n $scope.chart.dataModel.dataTable = data;\n $scope.chart.type = 'PieChart';\n $scope.chart.options.slices = _seriesColor;\n break;\n\n case 'sale-30days':\n data = new google.visualization.DataTable();\n data.addColumn('date', 'Name');\n\n var j;\n\n //TODO: check this later when you have time\n for (j in $scope.currentUser.locations) {\n data.addColumn('number', $scope.currentUser.locations[j].locationName);\n }\n\n for (i = 0; i < _data.length; i++) {\n\n __date = new Date(_data[i].transactionDate.replace(new RegExp('-', 'g'), '/'));\n\n var __marray = [];\n __marray.push(__date);\n\n for (j in $scope.currentUser.locations) {\n x = 0;\n try {\n for (var t in _data[i].locationGroup) {\n if (_data[i].locationGroup[t].location === $scope.currentUser.locations[j].locationName) {\n x = parseInt(_data[i].locationGroup[t].sum);\n }\n }\n } catch (err) {\n }\n\n __marray.push({\n v: x,\n f: x + ' kr'\n });\n }\n\n _array.push(__marray);\n }\n\n\n data.addRows(_array);\n $scope.chart.options = {\n bar: {\n groupWidth: '25%'\n },\n is3D: true\n };\n $scope.chart.dataModel.dataTable = data;\n $scope.chart.type = 'ColumnChart';\n $scope.chart.options.legend = {\n position: 'right'\n };\n $scope.chart.options.isStacked = true;\n break;\n\n case 'sale-frequency':\n for (i = 0; i < _data.length; i++) {\n x = parseInt(_data[i].quantity);\n __date = new Date(_data[i].transactionDate.replace(new RegExp('-', 'g'), '/'));\n\n _array.push([__date, null, 0, x]);\n }\n data = new google.visualization.DataTable();\n data.addColumn('date', 'Name');\n data.addColumn('number', 'Sum');\n data.addColumn('number', 'Sum1');\n data.addColumn('number', 'Sum2');\n data.addRows(_array);\n $scope.chart.options = {\n highlightOnMouseOver: true,\n maxDepth: 1,\n maxPostDepth: 2,\n minHighlightColor: '#8c6bb1',\n midHighlightColor: '#9ebcda',\n maxHighlightColor: '#edf8fb',\n minColor: '#009688',\n midColor: '#f7f7f7',\n maxColor: '#ee8100',\n headerHeight: 15,\n showScale: true,\n height: 500,\n useWeightedAverageForAggregation: true\n };\n $scope.chart.dataModel.dataTable = data;\n $scope.chart.type = 'ColumnChart';\n break;\n case 'sale-top-sold-7days':\n for (i = 0; i < _data.length; i++) {\n _array.push([_data[i].article.articleName, parseInt(_data[i].quantity)]);\n }\n data = new google.visualization.DataTable();\n data.addColumn('string', 'Name');\n data.addColumn('number', 'Quantity');\n data.addRows(_array);\n $scope.chart.dataModel.dataTable = data;\n $scope.chart.options.legend = {\n position: 'none'\n };\n $scope.chart.type = 'BarChart';\n break;\n }\n\n function getBusinessAreas(){\n BusinessAreasApiService.getBusinessAreas().then(function (businessAreasResponse){\n return businessAreasResponse\n });\n }\n\n function getMySeriesColor(key) {\n if (null !== key || key !== undefined) {\n key = key.trim();\n var colors = ['#8dd3c7', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'];\n\n if ($rootScope.chartColorAssocArray[key] === undefined) {\n $rootScope.chartColorAssocArray[key] = colors[Object.keys($rootScope.chartColorAssocArray).length];\n }\n\n return $rootScope.chartColorAssocArray[key];\n }\n }\n\n initChart();\n drawChart();\n\n function initChart() {\n $element.find('.chart-container').empty();\n\n $scope.chart.elId = 'chart-' + Math.floor((Math.random() * 6000) + 1);\n $element.find('.chart-container')\n .append($compile(\"<div google-chart class='google_chart chart' chart='chartObject' id='\" + $scope.chart.elId + \"'></div>\")($scope));\n\n }\n\n function drawChart() {\n //check for data\n var chart = new google.visualization[$scope.chart.type](document.getElementById($scope.chart.elId));\n chart.draw($scope.chart.dataModel.dataTable, $scope.chart.options);\n }\n\n\n $scope.$on('gridster-resized', function (sizes, gridster) {\n $debounce(drawChart, 1);\n });\n\n $scope.$on('gridster-item-resized', function (item) {\n $debounce(drawChart, 1);\n });\n }\n\n}\n","angular.module('directives.dashboard').directive('wgtInfoLatestTransaction', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoLatestTransaction/wgtInfoLatestTransaction.tpl.html',\n link: function ($scope, $element) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n var _data = response.data;\n $scope.transactionDate = _data[0].transactionDate;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoQuickSaleFact', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoQuickSaleFact/wgtInfoQuickSaleFact.tpl.html',\n link: function ($scope) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoSaleBusinessArea', ['DashboardApiService', 'googleChartApiPromise',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoSaleBusinessArea/wgtInfoSaleBusinessArea.tpl.html',\n link: function ($scope, $element, googleChartApiPromise) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data;\n if(angular.isString($scope.item.setting)){\n $scope.item.setting = JSON.parse($scope.item.setting);\n }\n $scope.selectedWidgetTimeFrame = $scope.item.setting === undefined ? 0 : $scope.item.setting.selectedWidgetTimeFrame;\n setTimeout(() => {\n google.charts.setOnLoadCallback($scope.drawChart);\n }, 250);\n\n $scope.isLoaded = true;\n $scope.hasError = false;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.formatHtmlTooltip = function (data) {\n return \"<div \" + \n \"class=\\\"pieChartBA\\\">\" + \"<b>\" + data.businessArea.name+\"</b>\" + \"<br>\" + \n data.totalSalesPrice.toLocaleString() + \": (\" + (data.totalSalesPercent * 100).toFixed(1) + \"%)\" + \n \"</div>\"\n }\n $scope.drawChart = function() {\n\n var dataArray = [];\n _.forEach($scope.widgetData.salesBusinessAreaData, function(data) {\n dataArray.push([\n data.businessArea.name, \n parseFloat(data.totalSalesPrice), \n $scope.formatHtmlTooltip(data)\n ])\n });\n\n var dataTable = new google.visualization.DataTable();\n dataTable.addColumn(\"string\", \"BusinessArea\");\n dataTable.addColumn(\"number\",\"TotalSales\");\n dataTable.addColumn({type: \"string\", role: \"tooltip\", p: {'html': true}});\n dataTable.addRows(dataArray);\n\n var options = {\n chartArea: {left:15,top:30},\n width:600,\n height:300,\n fontSize: 11,\n isStacked: true,\n sliceVisibilityThreshold: 0,\n is3D: true,\n tooltip: {\n showColorCode : true,\n isHtml : true\n }\n };\n\n $scope.chart = new google.visualization.PieChart(document.getElementById(\"pieChart-\" + $scope.$id));\n\n $scope.chart.draw(dataTable, options);\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoSaleToLastYear', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoSaleToLastYear/wgtInfoSaleToLastYear.tpl.html',\n link: function ($scope, $element) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data;\n if(angular.isString($scope.item.setting)){\n $scope.item.setting = JSON.parse($scope.item.setting);\n $scope.selectedWidgetTimeFrame = $scope.item.setting.selectedWidgetTimeFrame ? $scope.item.setting.selectedWidgetTimeFrame : 0;\n }\n $scope.isLoaded = true;\n $scope.hasError = false;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n\n $scope.getDifferenceColour = function(value){\n return value > 0 ? \"green\" : \n value < 0 ? \"red\" : \n /*ELSE*/ \"gray\";\n };\n \n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoTodayOrder', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoTodayOrder/wgtInfoTodayOrder.tpl.html',\n link: function ($scope, $element) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoUndeliveredInternalOrder', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoUndeliveredInternalOrder/wgtInfoUndeliveredInternalOrder.tpl.html',\n link: function ($scope) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.count = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoYesterdaySaleBrv', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoYesterdaySaleBrv/wgtInfoYesterdaySaleBrv.tpl.html',\n link: function ($scope, $element) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n $scope.hasError = false;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n $scope.anyVisitors = function () {\n return $scope.widgetData !== undefined ? _.some($scope.widgetData.locations, function(location){ return location.numberOfVisitors > 0 }): false\n };\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtInfoYesterdaySale', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtInfoYesterdaySale/wgtInfoYesterdaySale.tpl.html',\n link: function ($scope, $element) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n $scope.hasError = false;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtOrderAutoOrders', ['DashboardApiService', '$state', '$window',\n function (DashboardApiService, $state, $window) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtOrderAutoOrders/wgtOrderAutoOrders.tpl.html',\n link: function ($scope, $element) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.filter = {\n show: false,\n businessArea: { id: -1, name: ' ' },\n brand: { id: -1, name: ' ' },\n orderType: \"all\"\n };\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.widgetData = response.data.autoOrderData;\n $scope.originalWidgetData = response.data.autoOrderData;\n $scope.hideTooltip = response.data.hideTooltip;\n $scope.distinctBrandIds = response.data.distinctBrandIds;\n $scope.distinctBusinessAreaIds = response.data.distinctBusinessAreaIds;\n $scope.isLoaded = true;\n $scope.hasError = false;\n\n $scope.$watch(function() { return $scope.filter.businessArea }, function(newValue, oldValue) {\n $scope.filterData();\n }, true);\n $scope.$watch(function() { return $scope.filter.brand }, function(newValue, oldValue) {\n $scope.filterData();\n }, true);\n $scope.$watch(function() { return $scope.filter.orderType }, function(newValue, oldValue) {\n $scope.filterData();\n }, true);\n }, function (response) {\n $scope.hasError = true;\n });\n };\n\n $scope.filterData = function () {\n var newWidgetData = angular.copy($scope.originalWidgetData);\n\n if($scope.filter.businessArea.id !== undefined && $scope.filter.businessArea.id !== -1){\n newWidgetData = newWidgetData.filter(x => x.businessAreaIds.filter(y => y.id === $scope.filter.businessArea.id).length > 0);\n }\n\n if($scope.filter.brand.id !== undefined && $scope.filter.brand.id !== -1){\n newWidgetData = newWidgetData.filter(x => x.brandIds.filter(y => y.id === $scope.filter.brand.id).length > 0);\n }\n\n if(newWidgetData !== undefined){\n $scope.widgetData = newWidgetData.filter(x => $scope.filter.orderType === \"all\" || x.orderSystemType === $scope.filter.orderType);\n }\n\n /*\n $scope.distinctBrandIds = [];\n $scope.distinctBusinessAreaIds = [];\n\n _.forEach($scope.originalWidgetData, function(data){\n _.forEach(data.businessAreaIds, function(ba){\n if($scope.distinctBusinessAreaIds.filter(x => x.id === ba.id).length === 0){\n $scope.distinctBusinessAreaIds.push(ba);\n }\n });\n _.forEach(data.brandIds, function(b){\n if($scope.distinctBrandIds.filter(x => x.id === b.id).length === 0){\n $scope.distinctBrandIds.push(b);\n }\n });\n });*/\n };\n\n $scope.goToOrder = function (orderId) {\n if(orderId !== undefined){\n var href = $state.href('order.ordersearch', { orderId: orderId });;\n $window.open(href);\n }\n };\n $scope.orderAutoOrder_OrderBy = 'orderCreatedDate';\n $scope.orderAutoOrder_Reverse = true;\n $scope.changeSortOrder = function (objectName) {\n if($scope.orderAutoOrder_OrderBy === objectName){\n if($scope.orderAutoOrder_Reverse){\n $scope.orderAutoOrder_OrderBy = undefined;\n $scope.orderAutoOrder_Reverse = undefined;\n }\n else{\n $scope.orderAutoOrder_Reverse = true;\n }\n }\n else{\n $scope.orderAutoOrder_OrderBy = objectName;\n $scope.orderAutoOrder_Reverse = false;\n }\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","\r\n// function wgtPrintableImports(DashboardApiService) {\r\n// return {\r\n// templateUrl: '/directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.tpl.html',\r\n// link: function ($scope, $element) {\r\n// $scope.isLoaded = false;\r\n// $scope.hasError = false;\r\n// $scope.loadWidget = loadWidget;\r\n// $scope.loadWidget(DashboardApiService, $scope);\r\n\r\n// }\r\n// };\r\n// }\r\n\r\n// function loadWidget(dashboardApiService, scope) {\r\n// dashboardApiService.getWidgetData(scope.item.name, scope.item.setting)\r\n// .then(function (response) {\r\n// var _data = response.data;\r\n// scope.transactionDate = _data[0].transactionDate;\r\n// scope.isLoaded = true;\r\n// }, function (response) {\r\n// scope.hasError = true;\r\n// });\r\n\r\n// }\r\n\r\n// angular.module('directives.dashboard')\r\n// .directive('wgtPrintableImports', wgtPrintableImports);\r\n\r\n\r\n// angular.module('directives.dashboard').directive('wgtPrintableImports', ['DashboardApiService',\r\n// function (DashboardApiService) {\r\n// return {\r\n// templateUrl: 'directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.tpl.html',\r\n// link: function ($scope, $element) {\r\n// $scope.isLoaded = false;\r\n// $scope.hasError = false;\r\n// $scope.loadWidget = function () {\r\n// DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\r\n// .then(function (response) {\r\n// var _data = response.data;\r\n// $scope.transactionDate = _data[0].transactionDate;\r\n// $scope.isLoaded = true;\r\n// }, function (response) {\r\n// $scope.hasError = true;\r\n// });\r\n// };\r\n// $scope.loadWidget();\r\n// }\r\n// };\r\n// }]\r\n// );\r\n\r\n\r\n\r\nangular\r\n .module('directives.dashboard')\r\n .directive('wgtPrintableImports', ['DashboardApiService', '$state', 'loadSpinnerService', 'FileDataImportApiServiceV2', 'ToasterService', '$translate', directiveFactory]);\r\n\r\n// @ngInject\r\nfunction directiveFactory (DashboardApiService, $state, loadSpinnerService, FileDataImportApiServiceV2, ToasterService, $translate) {\r\n return {\r\n templateUrl: 'directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.tpl.html',\r\n link: function ($scope, $element) {\r\n $scope.isLoaded = false;\r\n $scope.hasError = false;\r\n $scope.loadWidget = function () {\r\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\r\n .then(function (response) {\r\n var _data = response.data;\r\n $scope.importFiles = _data;\r\n $scope.isLoaded = true;\r\n }, function (response) {\r\n $scope.hasError = true;\r\n });\r\n };\r\n $scope.gotoImportFile = function(id) {\r\n $state.go('product.productimporteditor', { importFileId: id });\r\n };\r\n $scope.printImportFile = function(id) {\r\n loadSpinnerService.start('mainSpinner');\r\n FileDataImportApiServiceV2.getPdfLabels(id, $scope.selectedLocationId).then(function(response) {\r\n // Success, reload widget\r\n $scope.loadWidget();\r\n },function(error) {\r\n console.log(error);\r\n if (error.status === 444) {\r\n ToasterService.showInfo($translate.instant('widget.printable-imports.no-stock')); \r\n $scope.loadWidget(); \r\n } else {\r\n ToasterService.showError($translate.instant('failure'));\r\n }\r\n }).finally(function() {\r\n loadSpinnerService.stop('mainSpinner');\r\n });\r\n };\r\n $scope.loadWidget();\r\n }\r\n };\r\n}\r\n","angular.module('directives.dashboard').directive('wgtSaleTop', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtSaleTop/wgtSaleTop.tpl.html',\n link: function ($scope) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n if (response.data === '') {\n //No data, leaving\n return;\n }\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n }\n };\n }\n]);\n","angular.module('directives.dashboard').directive('wgtSaleTwoWeek', ['DashboardApiService',\n function (DashboardApiService) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtSaleTwoWeek/wgtSaleTwoWeek.tpl.html',\n link: function ($scope) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n $scope.data = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.loadWidget();\n }\n };\n }]\n);\n","angular.module('directives.dashboard').directive('wgtUndeliveredOrders', ['DashboardApiService','$state',\n function (DashboardApiService, $state) {\n return {\n templateUrl: 'directives/dashboard/widgets/wgtUndeliveredOrders/wgtUndeliveredOrders.tpl.html',\n link: function ($scope) {\n $scope.isLoaded = false;\n $scope.hasError = false;\n $scope.loadWidget = function () {\n DashboardApiService.getWidgetData($scope.item.name, $scope.item.setting)\n .then(function (response) {\n if (response.data === '') {\n //No data, leaving\n return;\n }\n $scope.widgetData = response.data;\n $scope.isLoaded = true;\n }, function (response) {\n $scope.hasError = true;\n });\n };\n $scope.goToOrder = function(orderId) {\n $state.go('order.orderdelivery', { orderId: orderId });\n };\n $scope.abs = function(value) {\n return Math.abs(value);\n };\n $scope.loadWidget();\n }\n };\n }\n]);\n","angular.module('directives', [\n 'directives.restrictAccess',\n 'directives.loadSpinner',\n 'directives.uiNav',\n 'directives.uiToggleClass',\n 'directives.editableDecimal',\n 'directives.smartDecimal',\n 'directives.percentInput',\n 'directives.dashboard',\n 'directives.enterAsTab'\n]);\n","// @ngInject\nfunction editableDecimal(editableDirectiveFactory) {\n return editableDirectiveFactory({\n directiveName: 'editableDecimal',\n inputTpl: '<input type=\"text\" smart-decimal class=\"form-control\">'\n });\n}\n\nangular\n .module('directives.editableDecimal', [])\n .directive('editableDecimal', editableDecimal);\n","// @ngInject\nfunction enterAsTab() {\n return function(scope, element, attrs) {\n element.bind(\"keydown keypress\", function(event) {\n var fields = $(this).parents('form:eq(0), body').find('input.enterAsTab, textarea.enterAsTab, select.enterAsTab, ui-select.enterAsTab');\n var index = fields.index(this);\n\n if (event.which === 13 && event.shiftKey) {\n event.preventDefault();\n if (index > -1 && (index - 1) >= 0) {\n fields.eq(index - 1).focus().select();\n }\n } else if (event.which === 13) {\n event.preventDefault();\n if (index > -1 && (index + 1) < fields.length) {\n fields.eq(index + 1).focus().select();\n }\n }\n });\n };\n}\n\n// Moves the focus to the next input area instead of submitting the form.\nangular.module('directives.enterAsTab', [])\n .directive('enterAsTab', enterAsTab);\n","// @ngInject\nfunction loadSpinnerService($rootScope) {\n return {\n start: start,\n stop: stop\n };\n\n function start(name, opt) {\n var options = opt || { message: '' };\n options.message = options.message || '';\n $rootScope.$applyAsync(function() {\n $rootScope.$emit(name + '-start', options);\n });\n }\n\n function stop(name, opt) {\n var options = opt || {};\n options.force = options.force || false;\n $rootScope.$applyAsync(function() {\n $rootScope.$emit(name + '-stop', options);\n });\n }\n}\n\n// @ngInject\nfunction loadSpinner($rootScope,usSpinnerService) {\n return {\n templateUrl: 'directives/loadSpinner/loadSpinner.tpl.html',\n restrict: 'EA',\n replace: true,\n scope: {\n spinnerName: '@',\n spinnerMessage: '@'\n },\n link: function($scope) {\n var loaders = 0;\n\n $rootScope.$on($scope.spinnerName + '-start', function(event, data) {\n $scope.isLoading = true;\n $scope.spinnerMessage = data.message;\n usSpinnerService.spin($scope.spinnerName);\n loaders = loaders + 1;\n });\n\n $rootScope.$on($scope.spinnerName + '-stop', function(event, data) {\n loaders = loaders > 0 ? loaders - 1 : loaders;\n if (loaders === 0 || data.force === true) {\n usSpinnerService.stop($scope.spinnerName);\n $scope.isLoading = false;\n }\n });\n }\n };\n}\n\nangular\n .module('directives.loadSpinner', ['angularSpinner'])\n .service('loadSpinnerService', loadSpinnerService)\n .directive('loadSpinner', loadSpinner);\n","// @ngInject\nfunction percentInput($filter) {\n var onViewChange = function(viewValue) {\n var m = viewValue.match(/^(\\d+)\\/(\\d+)/);\n if (m != null) {\n var newValueParsed = $filter('number')(parseInt(m[1])/parseInt(m[2]), 2);\n newValueParsed = newValueParsed.replace(/,/, '.');\n return newValueParsed;\n }\n var newValueUnparsed = $filter('number')(parseFloat(viewValue) / 100, 2);\n newValueUnparsed = newValueUnparsed.replace(/,/, '.');\n return newValueUnparsed;\n };\n\n var onModelChange = function(modelValue) {\n var newValue = $filter('number')(parseFloat(modelValue) * 100);\n newValue = newValue.replace(/,/, '.');\n return newValue;\n };\n\n return {\n require: 'ngModel',\n link: function(scope, ele, attr, ctrl) {\n ctrl.$parsers.unshift(onViewChange);\n ctrl.$formatters.unshift(onModelChange);\n }\n };\n}\n\nangular\n .module('directives.percentInput', [])\n .directive(\"percentInput\", percentInput);\n","// @ngInject\nfunction restrictAccess(AuthService) {\n return {\n restrict: 'A',\n scope: false,\n compile: function(element, attr) {\n if (!attr.access || AuthService.canAccess(attr.access, attr.permission)) {\n return;\n }\n\n // For IE 8\n angular.forEach(element.children(), function(elm) {\n try {\n elm.remove();\n }\n catch (ignore) {}\n });\n\n element.remove();\n }\n };\n}\n\nangular\n .module('directives.restrictAccess', [])\n .directive('access', restrictAccess);\n","// @ngInject\nfunction smartDecimal() {\n var DECIMAL_REGEXP_1 = /^\\$?\\d+.(\\d{3})*(\\,\\d*)$/; // Matches: 1.123,56\n var DECIMAL_REGEXP_2 = /^\\$?\\d+,(\\d{3})*(\\.\\d*)$/; // Matches: 1,123.56\n var DECIMAL_REGEXP_3 = /^\\$?\\d+(\\.\\d*)?$/; // Matches: 1123.56\n var DECIMAL_REGEXP_4 = /^\\$?\\d+(\\,\\d*)?$/; // Matches: 1123,56\n\n return {\n require: 'ngModel',\n link: function(scope, elm, attrs, ctrl) {\n ctrl.$parsers.unshift(function(viewValue) {\n if (DECIMAL_REGEXP_1.test(viewValue)) {\n ctrl.$setValidity('decimal', true);\n return parseFloat(viewValue.replace('.', '').replace(',', '.'));\n } else if (DECIMAL_REGEXP_2.test(viewValue)) {\n ctrl.$setValidity('decimal', true);\n return parseFloat(viewValue.replace(',', ''));\n } else if (DECIMAL_REGEXP_3.test(viewValue)) {\n ctrl.$setValidity('decimal', true);\n return parseFloat(viewValue);\n } else if (DECIMAL_REGEXP_4.test(viewValue)) {\n ctrl.$setValidity('decimal', true);\n return parseFloat(viewValue.replace(',', '.'));\n } else {\n ctrl.$setValidity('decimal', false);\n return undefined;\n }\n });\n }\n };\n}\n\nangular\n .module('directives.smartDecimal', [])\n .directive('smartDecimal', smartDecimal);\n","// jscs:disable\n// jshint ignore: start\nangular.module('directives.uiNav', [])\n .directive('uiNav', ['$timeout', function($timeout) {\n return {\n restrict: 'AC',\n link: function(scope, el, attr) {\n var _window, _mb, wrap, next, backdrop;\n _window = $(window);\n _mb = 768;\n wrap = $('.app-aside');\n backdrop = '.dropdown-backdrop';\n // unfolded\n el.on('click', 'a', function(e) {\n if (next) {next.trigger('mouseleave.nav');}\n var _this = $(this);\n _this.parent().siblings(\".active\").toggleClass('active');\n if (_this.next().is('ul')) {\n if(this.parent) {\n this.parent().toggleClass('active');\n }\n e.preventDefault();\n }\n // mobile\n _this.next().is('ul') || ((_window.width() < _mb) && $('.app-aside').removeClass('show off-screen'));\n });\n\n // folded & fixed\n el.on('mouseenter', 'a', function(e) {\n next && next.trigger('mouseleave.nav');\n $('> .nav', wrap).remove();\n if (!$('.app-aside-fixed.app-aside-folded').length || (_window.width() < _mb) || $('.app-aside-dock').length) return;\n var _this = $(e.target), top, w_h = $(window).height(), offset = 50, min = 150;\n !_this.is('a') && (_this = _this.closest('a'));\n if (_this.next().is('ul')) {\n next = _this.next();\n } else {\n return;\n }\n _this.parent().addClass('active');\n top = _this.parent().position().top + offset;\n next.css('top', top);\n if (top + next.height() > w_h) {\n next.css('bottom', 0);\n }\n if (top + min > w_h) {\n next.css('bottom', w_h - top - offset).css('top', 'auto');\n }\n next.appendTo(wrap);\n\n next.on('mouseleave.nav', function(e) {\n $(backdrop).remove();\n next.appendTo(_this.parent());\n next.off('mouseleave.nav').css('top', 'auto').css('bottom', 'auto');\n _this.parent().removeClass('active');\n });\n\n $('.smart').length && $('<div class=\"dropdown-backdrop\"/>').insertAfter('.app-aside').on('click', function(next) {\n next && next.trigger('mouseleave.nav');\n });\n\n });\n\n wrap.on('mouseleave', function(e) {\n next && next.trigger('mouseleave.nav');\n $('> .nav', wrap).remove();\n });\n }\n };\n }]);\n","angular.module('directives.uiToggleClass', [])\n .directive('uiToggleClass', ['$timeout', '$document', function($timeout, $document) {\n return {\n restrict: 'AC',\n link: function(scope, el, attr) {\n /* jshint ignore:start */\n el.on('click', function(e) {\n e.preventDefault();\n var classes = attr.uiToggleClass.split(','),\n targets = (attr.target && attr.target.split(',')) || new Array(el),\n key = 0;\n angular.forEach(classes, function(_class) {\n var target = targets[(targets.length && key)];\n if (_class.indexOf('*') !== -1) { magic(_class, target); }\n $(target).toggleClass(_class);\n key++;\n });\n $(el).toggleClass('active');\n\n function magic(_class, target) {\n var patt = new RegExp('\\\\s' + _class.replace(/\\*/g, '[A-Za-z0-9-_]+').split(' ').join('\\\\s|\\\\s') + '\\\\s', 'g');\n var cn = ' ' + $(target)[0].className + ' ';\n while (patt.test(cn)) {\n cn = cn.replace(patt, ' ');\n }\n $(target)[0].className = $.trim(cn);\n }\n });\n /* jshint ignore:end */\n }\n };\n }]);\n","angular.module('filters', ['filters.propsFilter',\n 'filters.multiPartFilter'\n]);\n","// @ngInject\nfunction multiPartFilter() {\n return function(items, search, searchables, limit) {\n var out = [];\n\n if (limit && limit.minimumInputLength && search.searchTerm.length < limit.minimumInputLength) {\n return out;\n }\n\n var ks = Object.keys(search);\n var searchTerms = search[ks[0]].split(\" \");\n var searchableTerms = searchables.searchableTerms;\n\n if (angular.isArray(items) && searchTerms[0] !== \"\") {\n var matchingItems = _.filter(items, function(item) {\n var searchTermsThatMatches = [];\n\n _.forEach(searchTerms, function(searchTerm) {\n _.forEach(searchableTerms, function(key) {\n if (item[key].toString().toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 && item[key].toString() !== \"[object Object]\") {\n searchTermsThatMatches.push(searchTerm);\n }\n });\n });\n\n if (searchTerms.length <= searchTermsThatMatches.length) { // If every search term is a match.\n return true;\n } else {\n return false;\n }\n });\n\n _.forEach(matchingItems, function(item) {\n out.push(item);\n });\n } else {\n // Let the output be the input untouched\n out = items;\n }\n\n return out;\n };\n}\n\nangular.module('filters.multiPartFilter', [])\n .filter('multiPartFilter',multiPartFilter);\n","// @ngInject\nfunction propsFilter() {\n return function(items, props) {\n var out = [];\n\n if (angular.isArray(items)) {\n items.forEach(function(item) {\n var itemMatches = false;\n\n var keys = Object.keys(props);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var text = props[prop].toLowerCase();\n if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {\n itemMatches = true;\n break;\n }\n }\n\n if (itemMatches) {\n out.push(item);\n }\n });\n } else {\n // Let the output be the input untouched\n out = items;\n }\n\n return out;\n };\n}\n\nangular.module('filters.propsFilter', [])\n .filter('propsFilter',propsFilter);\n","// @ngInject\nfunction FileDataImportApiService($q, DS, DSHttpAdapter, ResourcesService) {\n return {\n createArticlesOrders: createArticlesOrders,\n getImportFiles: getImportFiles,\n getImportFile: getImportFile,\n updateArticlesOrdersImportFile: updateArticlesOrdersImportFile,\n updateAndFinalizeArticlesOrdersImportFile: updateAndFinalizeArticlesOrdersImportFile,\n deleteArticlesOrdersImportFile: deleteArticlesOrdersImportFile,\n getArticlesOrdersImportColumnMapping: getArticlesOrdersImportColumnMapping,\n setArticlesOrdersImportColumnMapping: setArticlesOrdersImportColumnMapping,\n getSuppliers: getSuppliers,\n getArticleCollections: getArticleCollections,\n getLocations: getLocations,\n getItemGroups: getItemGroups\n };\n\n function createArticlesOrders(requestDto) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'articlesorders', requestDto).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getImportFiles(page, filter, pageSize) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders', {params: params}).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getImportFile(importFileId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders/' + importFileId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateArticlesOrdersImportFile(importFileData) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'articlesorders/', importFileData).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateAndFinalizeArticlesOrdersImportFile(importFileData) {\n var deferred = $q.defer();\n\n console.log(\"Finalizing with data:\");\n console.log(importFileData);\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'articlesorders/finalize', importFileData).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteArticlesOrdersImportFile(importId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.DEL(DS.defaults.basePath + 'articlesorders/' + importId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getArticlesOrdersImportColumnMapping(companyId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders/mapping/company/' + companyId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function setArticlesOrdersImportColumnMapping(companyId, mappingRequest) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'articlesorders/mapping/company/' + companyId, mappingRequest).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getSuppliers() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders/suppliers').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getArticleCollections() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders/articlecollections').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getLocations() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders/locations').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getItemGroups() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'articlesorders/itemgroupbriefs').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('filedataimport.api', [])\n .factory('FileDataImportApiService', FileDataImportApiService);\n","// @ngInject\nfunction FileDataImportApiServiceV2($q, DS, DSHttpAdapter, ResourcesService, $window) {\n\n var endpoint = 'productimport';\n\n return {\n checkForConnectionWithArticleData: checkForConnectionWithArticleData,\n connectWithArticleData: connectWithArticleData,\n createProductImportEntry: createProductImportEntry,\n deleteProductImportFile: deleteProductImportFile,\n getArticleCollections: getArticleCollections,\n getArticleTypes: ResourcesService.apiFactory.get(endpoint + '/articletypesbrief'),\n getColumnMapping: getColumnMapping,\n getImportFiles: getImportFiles,\n getImportFile: getImportFile,\n getLocations: getLocations,\n getOrderCollections: getOrderCollections,\n getSuppliers: getSuppliers,\n getCompanies:getCompanies,\n saveColumnMapping: saveColumnMapping,\n updateImportFile: updateImportFile,\n updateFileRow: updateFileRow,\n updateFileRows: updateFileRows,\n deleteFileRow: deleteFileRow,\n finalizeImport: finalizeImport,\n getItemGroups: getItemGroups,\n getItemGroupsOnFileId: getItemGroupsOnFileId,\n getDepartments: ResourcesService.apiFactory.get(endpoint + '/departmentsbrief'),\n getSubCategories: ResourcesService.apiFactory.get(endpoint + '/subcategoriesbrief'),\n getCurrencyDefault: ResourcesService.apiFactory.get(endpoint + '/currencies/default'),\n getCurrencies: ResourcesService.apiFactory.get(endpoint + '/currencies'),\n validateImportFileWithId: validateImportFileWithId,\n checkImportFileDataExistence: checkImportFileDataExistence,\n getSalesChannels: ResourcesService.apiFactory.get(endpoint + '/saleschannels'),\n getCountries: ResourcesService.apiFactory.get(endpoint + '/countries'),\n getMissingSiblingRows: getMissingSiblingRows,\n getPdfLabels: getPdfLabels,\n existsSiblingPrices: existsSiblingPrices,\n getTenantConfig: getTenantConfig\n };\n\n function getTenantConfig() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + \"/tenantconfig\").then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function existsSiblingPrices(importFileId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + \"/existssiblingprices/\" + importFileId).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getMissingSiblingRows(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + \"/siblingrows/\", request).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s]){1,}.pdf/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function getPdfLabels(importFileId, locationId) {\n var deferred = $q.defer();\n var request = {\n importFileId: importFileId,\n locationId: locationId\n };\n\n DSHttpAdapter.GET(DS.defaults.basePath + endpoint + \"/labels\", {params: request, responseType: 'arraybuffer'}).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'labels.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise; \n }\n\n function checkForConnectionWithArticleData(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/check/articledata', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function connectWithArticleData(request) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + endpoint + '/connect/articledata', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function createProductImportEntry(requestDto) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'productimport/create', requestDto).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getImportFiles(page, filter, pageSize) {\n var deferred = $q.defer();\n var params = {};\n\n if (page && page > 1) {\n params.page = page - 1;\n }\n\n if (pageSize && pageSize > 0) {\n params.pageSize = pageSize;\n }\n\n if (!_.isEmpty(filter)) {\n params.searchTerm = filter;\n }\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/files', {params: params}).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getImportFile(importFileId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/files/' + importFileId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getSuppliers() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/suppliers').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getLocations() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/locations').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getArticleCollections(onlyCurrent) {\n var deferred = $q.defer();\n\n var request = {\n onlyCurrent: onlyCurrent\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'productimport/articlecollections', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getOrderCollections(onlyCurrent) {\n var deferred = $q.defer();\n\n var request = {\n onlyCurrent: onlyCurrent\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'productimport/ordercollections', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n\n\n function saveColumnMapping(companyId, mappingRequest) {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'productimport/mapping/' + companyId, mappingRequest).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateImportFile(importFile) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'productimport/', importFile).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateFileRow(importRow) {\n var deferred = $q.defer();\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'productimport/row', importRow).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function updateFileRows(importRows) {\n var deferred = $q.defer();\n\n var request = {\n rows: importRows\n };\n\n DSHttpAdapter.PUT(DS.defaults.basePath + 'productimport/rows', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteFileRow(importRow) {\n var deferred = $q.defer();\n\n DSHttpAdapter.DEL(DS.defaults.basePath + 'productimport/row/' + importRow.id).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function finalizeImport(importFileId, priceUpdateGroupingLevel) {\n var deferred = $q.defer();\n\n var request = {\n importFileId: importFileId,\n grouping: priceUpdateGroupingLevel\n };\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'productimport/finalize/', request).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n // DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/finalize/' + importFileId).then(function(response) {\n // deferred.resolve(response.data);\n // }, function(error) {\n // deferred.reject(handleError(error));\n // });\n\n return deferred.promise;\n }\n\n function getColumnMapping(companyId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/mapping/' + companyId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function deleteProductImportFile(importId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.DEL(DS.defaults.basePath + 'productimport/files/' + importId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getItemGroups() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/itemgroupbriefs').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getItemGroupsOnFileId(fileId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/itemgroupbriefs/' + fileId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function getCompanies() {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/suppliers').then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function validateImportFileWithId(importFileId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/validatefile/' + importFileId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function checkImportFileDataExistence(importFileId) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'productimport/checkimportfile/' + importFileId).then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('filedataimportv2.api', [])\n .factory('FileDataImportApiServiceV2', FileDataImportApiServiceV2);\n","// @ngInject\nfunction FileOperationsApiService($q, $cookies, $window, DS, DSHttpAdapter, ResourcesService) {\n\n return {\n downloadLabels: downloadLabels,\n downloadPdfFile: downloadPdfFile\n };\n\n function getFileName(contentDisposition, defaultValue) {\n //\"attachment; filename=PickingList36013.pdf\"\n var filename = defaultValue;\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\n var filenameRegex = /(?![=]{1})([\\w\\d\\s]){1,}.pdf/ig;\n var matches = new RegExp(filenameRegex).exec(contentDisposition);\n if (matches != null && matches[0]) {\n filename = matches[0];\n }\n }\n return filename;\n }\n\n function downloadLabels(fileName) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'file/labels/' + fileName, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'labels.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function downloadPdfFile(fileName) {\n var deferred = $q.defer();\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'file/' + fileName, { responseType: 'arraybuffer' }).then(function(response) {\n var blob = new Blob([response.data], {type: 'application/pdf'});\n var contentDisposition = response.headers('Content-Disposition');\n var fileName = getFileName(contentDisposition, 'file.pdf');\n\n if ($window.navigator.msSaveBlob) {\n $window.navigator.msSaveBlob(blob, fileName);\n } else {\n var a = document.createElement(\"a\");\n document.body.appendChild(a);\n a.style = \"display: none\";\n\n var url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n\n a.parentNode.removeChild(a);\n }\n\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular.module('fileoperations.api', [])\n .factory('FileOperationsApiService', FileOperationsApiService);\n","// @ngInject\nfunction ResourcesService($translate, $q,DS, DSHttpAdapter, $rootScope) {\n var savedTimestamps = [];\n var apiFactory = {\n get: apiFactoryGet,\n create: apiFactoryCreate,\n update: apiFactoryUpdate,\n save: apiFactorySave,\n delete: apiFactoryDelete\n };\n\n var apiRms2Factory = {\n get: apiRms2FactoryGet,\n create: apiRms2FactoryCreate,\n update: apiRms2FactoryUpdate,\n save: apiRms2FactorySave,\n delete: apiRms2FactoryDelete\n };\n\n return {\n handleResourceError: handleResourceError,\n updateSavedTimestamp: updateSavedTimestamp,\n getSavedTimestamp: getSavedTimestamp,\n apiFactory: apiFactory,\n apiRms2Factory: apiRms2Factory\n };\n\n\n function apiFactoryGet(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = null;\n if (!req && !isNaN(args)) {\n req = DSHttpAdapter.GET(DS.defaults.basePath + relativeUrl + '/' + args);\n }\n if (!req) {\n if (args && !args.params) {\n args = { params: args};\n }\n req = DSHttpAdapter.GET(DS.defaults.basePath + relativeUrl, args);\n }\n\n req.then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiFactoryDelete(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = null;\n if (!req && !isNaN(args)) {\n req = DSHttpAdapter.DEL(DS.defaults.basePath + relativeUrl + '/' + args);\n }\n if (!req) {\n req = DSHttpAdapter.DEL(DS.defaults.basePath + relativeUrl, args);\n }\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Deleted', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiFactoryUpdate(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n if (!typeName) {\n typeName = 'Object';\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = DSHttpAdapter.PUT(DS.defaults.basePath + relativeUrl, args);\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Updated', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiFactorySave(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n if (!typeName) {\n typeName = 'Object';\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = DSHttpAdapter.POST(DS.defaults.basePath + relativeUrl, args);\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Saved', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiFactoryCreate(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n if (!typeName) {\n typeName = 'Object';\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = DSHttpAdapter.POST(DS.defaults.basePath + relativeUrl, args);\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Created', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n \n function apiRms2FactoryGet(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = null;\n if (!req && !isNaN(args)) {\n req = DSHttpAdapter.GET(DS.defaults.rms2Path + relativeUrl + '/' + args);\n }\n if (!req) {\n if (args && !args.params) {\n args = { params: args};\n }\n req = DSHttpAdapter.GET(DS.defaults.rms2Path + relativeUrl, args);\n }\n\n req.then(function(response) {\n deferred.resolve(response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiRms2FactoryDelete(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = null;\n if (!req && !isNaN(args)) {\n req = DSHttpAdapter.DEL(DS.defaults.rms2Path + relativeUrl + '/' + args);\n }\n if (!req) {\n req = DSHttpAdapter.DEL(DS.defaults.rms2Path + relativeUrl, args);\n }\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Deleted', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiRms2FactoryUpdate(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n if (!typeName) {\n typeName = 'Object';\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = DSHttpAdapter.PUT(DS.defaults.rms2Path + relativeUrl, args);\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Updated', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiRms2FactorySave(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n if (!typeName) {\n typeName = 'Object';\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = DSHttpAdapter.POST(DS.defaults.rms2Path + relativeUrl, args);\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Saved', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function apiRms2FactoryCreate(relativeUrl, typeName, errorHandler) {\n\n if (!errorHandler) {\n errorHandler = handleResourceError;\n }\n\n if (!typeName) {\n typeName = 'Object';\n }\n\n return function(args) {\n\n var deferred = $q.defer();\n var req = DSHttpAdapter.POST(DS.defaults.rms2Path + relativeUrl, args);\n\n req.then(function(response) {\n deferred.resolve(response.data);\n $rootScope.$emit(typeName + '.Created', response.data);\n $rootScope.$emit(typeName + '.Changed', response.data);\n }, function(error) {\n deferred.reject(errorHandler(error));\n });\n\n return deferred.promise;\n\n };\n }\n\n function handleResourceError(httpError) {\n var error = {\n status: httpError.status,\n message: \"\",\n errors: []\n };\n\n // Add child errors\n if (httpError.data && !_.isEmpty(httpError.data.errors)) {\n error.errors = _.transform(httpError.data.errors, function(result, n, key) {\n result[key] = {message: n.errorMessage};\n });\n }\n\n // Add correct error message\n if (httpError.data && !_.isEmpty(httpError.data.message)) {\n error.message = httpError.data.message;\n } else {\n switch (httpError.status) {\n case 0:\n error.message = $translate.instant('errors.noconnection');\n break;\n case 401:\n error.message = $translate.instant('errors.unauthorized');\n break;\n case 404:\n error.message = $translate.instant('errors.notfound');\n break;\n default:\n error.message = $translate.instant('errors.other');\n break;\n }\n }\n\n return error;\n }\n\n function updateSavedTimestamp(resource) {\n savedTimestamps[resource] = Date.now();\n }\n\n function getSavedTimestamp(resource) {\n return savedTimestamps[resource] || 0;\n }\n}\n\nangular\n .module('resources', [\n 'fileoperations.api',\n 'filedataimport.api',\n 'filedataimportv2.api',\n 'navigation.api'\n ])\n .factory('ResourcesService', ResourcesService);\n","// @ngInject\nfunction AuthService($rootScope, $cookies, $location, DS, DSHttpAdapter, $q, $state,$window, ToasterService, UsersApiService,apiToken,LoginDialogService, ResourcesService, $translate) {\n var _isAuthenticating = false;\n var _isAuthenticated = false;\n var _user = null;\n return {\n isAuthenticated: isAuthenticated,\n hasToken: hasToken,\n canAccess: canAccess,\n hasUser: hasUser,\n getUser: getUser,\n setToken: setToken,\n showLogin: showLogin,\n logOut: logOut,\n matchAnyDemand: matchAnyDemand,\n matchAllDemand: matchAllDemand,\n matchTwoDemand: matchTwoDemand,\n resetPassword: resetPassword,\n confirmNewPassword: confirmNewPassword,\n getAuth0Token: getAuth0Token,\n getTokenExpired: getTokenExpired,\n refreshSession: refreshSession\n };\n\n function refreshSession(callback){\n var json = {\n token: apiToken.token\n }\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'auth/refreshsession', json).then(function() {\n callback(true);\n },function(error) { \n callback(false, error.data.message);\n ToasterService.showError(error.data.message, $translate.instant('common.error'));\n }).finally(function (){\n });\n }\n\n function getTokenExpired(){\n var deferred = $q.defer();\n \n var params = {};\n params.token = apiToken.token;\n\n DSHttpAdapter.GET(DS.defaults.basePath + 'auth/expire', {params : params}).then(function(response) {\n deferred.resolve(response);\n \n },function(error) { \n deferred.reject(handleError(error));\n });\n \n return deferred.promise;//.$$state.value.data.expireDate;\n }\n\n function getAuth0Token() {\n var deferred = $q.defer();\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'auth/auth0', {}).then(function(response) {\n deferred.resolve(response);\n },function(error) {\n deferred.reject(handleError(error));\n });\n\n return deferred.promise;\n }\n\n function isAuthenticated() {\n return _isAuthenticated;\n }\n\n function hasToken() {\n return angular.isDefined(apiToken.token) && apiToken.token !== null;\n }\n\n function canAccess(objectType, permission) {\n if (!isAuthenticated() || !_user.claims) { return false; }\n\n var lowerCaseObjectType = _.toLower(objectType);\n\n return _user.claims[lowerCaseObjectType] && (!permission || _user.claims[lowerCaseObjectType][permission]);\n }\n\n function hasUser() {\n return angular.isDefined(_user) && _user !== null;\n }\n\n function getUser() {\n var deferred = $q.defer();\n\n // If we already have the user, just return it\n if (hasUser()) {\n deferred.resolve(_user);\n } else {\n UsersApiService.getSelf().then(function(user) {\n var objectTypes = Object.keys(user.claims);\n var licenseTypes = Object.keys(user.licenseConfig);\n var claims = {};\n var licenseConfig = {};\n _.forEach(objectTypes, function(objectType) { claims[_.toLower(objectType)] = user.claims[objectType]; });\n _.forEach(licenseTypes, function(licenseType) { licenseConfig[_.toLower(licenseType)] = user.licenseConfig[licenseType]; });\n _user = user;\n _user.claims = claims;\n _user.licenseConfig = licenseConfig;\n _isAuthenticated = true;\n if (user.tenant && user.tenant.languageLocale) {\n $translate.use(user.tenant.languageLocale);\n }\n $translate.refresh();\n deferred.resolve(_user);\n }, function() {\n expireSession();\n deferred.reject();\n });\n }\n\n return deferred.promise;\n }\n\n function showLogin(message) {\n if (!_isAuthenticating) {\n _isAuthenticating = true;\n LoginDialogService.showDialog({isLoginState:isLoginState(),authMessage:message}).then(function(result) {\n setToken(result.Token, result.Tenant);\n if (isLoginState()) {\n // Go to the stated if it exists, else go to root url\n if ($rootScope.toState !== null && $rootScope.toState.name !== \"login\") {\n $state.go($rootScope.toState.name, $rootScope.toParams, {replace: true});\n } else {\n $location.path(\"/\");\n }\n }\n }).finally(function() {_isAuthenticating = false;});\n }\n }\n function logOut() {\n expireSession();\n // Reload the app\n $window.location.href = '/';\n }\n function expireSession() {\n apiToken.token = null;\n _user = null;\n _isAuthenticated = false;\n // Remove the cookie\n $cookies.remove('X-JetsoftToken');\n\n // Remove header\n DSHttpAdapter.defaults.httpConfig.headers = { Authorization: function() { return null;} };\n }\n function isLoginState() {\n return !!($rootScope.$state.current.abstract || $rootScope.$state.current.name === \"login\");\n }\n function setToken(token, tenantName) {\n if (token) {\n $cookies.putObject(\"X-JetsoftToken\", token);\n $cookies.putObject(\"X-JetsoftTenant\", tenantName);\n $cookies.putObject(\"x-cleverapps-tenant\", tenantName);\n } else {\n token = $cookies.getObject('X-JetsoftToken');\n tenantName = $cookies.getObject('X-JetsoftTenant');\n }\n\n if (token) {\n apiToken.token = token;\n DSHttpAdapter.defaults.httpConfig.headers = { Authorization: apiToken.token, Tenant: tenantName };\n DSHttpAdapter.defaults.httpConfig.headers['x-cleverapps-tenant'] = tenantName;\n }\n }\n\n function matchAnyDemand(demand, rights) {\n for (var propertyName in demand) {\n\n if (!rights) {\n continue;\n }\n var rightNode = rights[_.toLower(propertyName)];\n if (rightNode && demand[propertyName] === rightNode) {\n return true;\n }\n if (matchAnyDemand(demand[propertyName],rightNode)) {\n return true;\n }\n }\n return false;\n }\n\n function matchAllDemand(demand, rights) {\n for (var propertyName in demand) {\n var rightNode = rights[propertyName];\n if (!rightNode) {\n return false;\n }\n return matchAllDemand(demand[propertyName],rightNode);\n }\n return true;\n }\n\n //matchAllDemand dont work properly with the data from navigation.api.js \n function matchTwoDemand(demand, rights, type, seepurchasecost, stock) {\n if(demand.hasOwnProperty(seepurchasecost) && demand.hasOwnProperty(stock) && type === 'leaf'){\n if(rights.seepurchasecost != undefined){\n if(!rights.seepurchasecost.read || !rights.stock.read){\n return false\n }\n }\n }\n\n return true\n }\n\n function resetPassword(user) {\n var deferred = $q.defer();\n\n var param = {};\n param.tenantName = user.tenantName;\n if (user.username.length > 0) { param.username = user.username; }\n if (user.email.length > 0) { param.email = user.email; }\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'auth/reset', param).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n }\n\n function confirmNewPassword(user) {\n var deferred = $q.defer();\n\n var param = {};\n param.tenantName = user.tenantName;\n param.newPassword = user.newPassword;\n param.confirmPassword = user.confirmPassword;\n param.securityCode = user.securityCode;\n\n DSHttpAdapter.POST(DS.defaults.basePath + 'auth/confirm', param).then(function(response) {\n deferred.resolve(response);\n }, function(error) {\n deferred.reject(handleError(error));\n });\n return deferred.promise;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('services.authService', [])\n .factory('AuthService', AuthService);\n","// @ngInject\nfunction BarcodeService() {\n return {\n cleanBarcode: cleanBarcode,\n formatBarcodesString: formatBarcodesString\n };\n\n function cleanBarcode(barcode) {\n var cleanedBarcode = barcode;\n\n cleanedBarcode = cleanedBarcode.replace(/#/g, '');\n cleanedBarcode = cleanedBarcode.replace(/p/gi, '');\n\n cleanedBarcode = cleanedBarcode.trim();\n\n return cleanedBarcode;\n }\n\n function formatBarcodesString(string) {\n var formattedString = string;\n\n formattedString = formattedString.replace(/##/g, '\\n');\n formattedString = formattedString.replace(/#/g, '');\n formattedString = formattedString.replace(/p/gi, '');\n\n return formattedString;\n }\n}\n\nangular\n .module('services.barcodeService', [])\n .factory('BarcodeService', BarcodeService);\n","// @ngInject\nfunction invoiceConfirmationDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, deliveryDate, earliestAllowedDeliveryDate) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'invoiceConfirmationDialogController as vm',\n templateUrl: 'services/dialogs/InvoiceConfirmationDialog/InvoiceConfirmationDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n deliveryDate: function() {\n return deliveryDate;\n },\n earliestAllowedDeliveryDate: function() {\n return earliestAllowedDeliveryDate;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction invoiceConfirmationDialogController($uibModalInstance, message, deliveryDate, earliestAllowedDeliveryDate, $sce) {\n var vm = this;\n\n //Properties\n vm.message = $sce.trustAsHtml(message);\n vm.deliveryDate = deliveryDate;\n vm.earliestAllowedDeliveryDate = earliestAllowedDeliveryDate;\n\n //Methods\n vm.closeModal = closeModal;\n vm.setWijmoInputDateLimits = setWijmoInputDateLimits;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close({ isCompleted: isCompleted, deliveryDate: vm.deliveryDate });\n }\n\n function setWijmoInputDateLimits(s) {\n if (vm.earliestAllowedDeliveryDate) {\n s.min = parseDate(vm.earliestAllowedDeliveryDate);\n } else {\n s.min = new Date(2016, 1, 1, 0, 0, 0, 0);\n }\n s.max = parseDate(new Date());\n }\n\n //Transform from string to Date, and make sure date has correct timezone and no time information\n\tfunction parseDate(input) {\n\t\tif (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n\t\t} else {\n\t\t\treturn new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n\t\t}\n\t}\n}\n\nangular\n .module('services.dialogs.InvoiceConfirmationDialog', [])\n .service('invoiceConfirmationDialogService', invoiceConfirmationDialogService)\n .controller('invoiceConfirmationDialogController', invoiceConfirmationDialogController);\n","import { reactEvents } from \"../../../../bridge/reactEvents\";\nimport { angularEvents } from \"../../../../bridge/angularEvents\";\n// @ngInject\nfunction colourChangeDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(articleId, colourName) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'colourChangeDialogController as vm',\n templateUrl: 'services/dialogs/colourChangeDialog/colourChangeDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n articleId: function() {\n return articleId;\n },\n colourName: function() {\n return colourName;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction colourChangeDialogController(articleId, colourName, Rms2ProductsApiService, $q, $uibModalInstance, ToasterService) {\n var vm = this;\n \n vm.closeModal = closeModal;\n vm.saveColourChange = saveColourChange;\n vm.ongoingRequest = false;\n vm.articleId = articleId;\n vm.articleColours = {};\n vm.uniqueColourNames = [];\n vm.selectedColour = \"\";\n vm.replacementColourName = \"\";\n vm.colourNameIsTheSame = colourNameIsTheSame;\n\n // var unsubSaveColourChangeEvent = reactEvents.saveColourChange.subscribe((colourChange) => {\n // ProductsApiService.upsertMetaFields(colourChange).then(function(response) {\n // console.log(\"ColourChange successfully saved\", response);\n // }, function(error) {\n // ToasterService.showError(error.message);\n // });\n // });\n\n Rms2ProductsApiService.getArticleColours(vm.articleId).then(function(response) {\n vm.articleColours = response;\n console.log(\"Rms2 getArticleColours response: \", vm.articleColours);\n\n prepareColourNames(vm.articleColours);\n\n // When we decide to migrate this dialog to react\n // angularEvents.articleColoursHasChanged.dispatch(vm.articleColours);\n }, function(error) {\n console.log(error);\n });\n\n function prepareColourNames(articleColours) {\n vm.uniqueColourNames = [];\n var colours = articleColours.colourNames;\n\n vm.uniqueColourNames = [];\n\n var count = 1; \n _.forEach(colours, function(c) {\n vm.uniqueColourNames.push({ id: count, colourName: c });\n count++;\n });\n\n vm.selectedColour = vm.uniqueColourNames[0];\n\n if (colourName) {\n var foundValue = _.find(vm.uniqueColourNames, function (n) { return n.colourName === colourName });\n if (foundValue) {\n vm.selectedColour = foundValue;\n }\n }\n }\n\n function closeModal(confirmation) {\n var response = {};\n \n // When we decide to migrate this dialog to react\n // unsubSaveColourChangeEvent();\n\n $uibModalInstance.close(confirmation);\n }\n\n function saveColourChange() {\n vm.ongoingRequest = true;\n var request = {\n articleId: vm.articleId,\n oldValue: vm.selectedColour.colourName,\n newValue: vm.replacementColourName\n }; \n\n Rms2ProductsApiService.createColourChange(request).then(function(response) {\n ToasterService.showSuccess();\n closeModal(true);\n }, function(error) {\n ToasterService.showError(error.message);\n })\n .then(function() {\n vm.ongoingRequest = false; \n });\n }\n\n function colourNameIsTheSame() {\n return vm.replacementColourName.toLowerCase() === vm.selectedColour.colourName.toLowerCase();\n }\n}\n\nangular\n .module('services.dialogs.colourChangeDialog', [])\n .service('colourChangeDialogService', colourChangeDialogService)\n .controller('colourChangeDialogController', colourChangeDialogController);","// @ngInject\nfunction confirmationDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, level, modalSize = 'md') {\n\n if(modalSize != 'xs' && modalSize != 'sm' && modalSize != 'md' && modalSize != 'lg')\n modalSize = 'md'\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'confirmationDialogController as vm',\n templateUrl: 'services/dialogs/confirmationDialog/confirmationDialog.tpl.html',\n size: modalSize\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n level: function() {\n return level;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction confirmationDialogController($uibModalInstance, message, level, $sce) {\n var vm = this;\n\n vm.message = $sce.trustAsHtml(message);\n vm.level = level;\n\n vm.closeModal = closeModal;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close(isCompleted);\n }\n}\n\nangular\n .module('services.dialogs.confirmationDialog', [])\n .service('confirmationDialogService', confirmationDialogService)\n .controller('confirmationDialogController', confirmationDialogController);\n","// @ngInject\nfunction deliveryConfirmationDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, deliveryDate, earliestAllowedDeliveryDate) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'deliveryConfirmationDialogController as vm',\n templateUrl: 'services/dialogs/deliveryConfirmationDialog/deliveryConfirmationDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n deliveryDate: function() {\n return deliveryDate;\n },\n earliestAllowedDeliveryDate: function() {\n return earliestAllowedDeliveryDate;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction deliveryConfirmationDialogController($uibModalInstance, message, deliveryDate, earliestAllowedDeliveryDate, $sce) {\n var vm = this;\n\n //Properties\n vm.message = $sce.trustAsHtml(message);\n vm.deliveryDate = deliveryDate;\n vm.earliestAllowedDeliveryDate = earliestAllowedDeliveryDate;\n\n //Methods\n vm.closeModal = closeModal;\n vm.setWijmoInputDateLimits = setWijmoInputDateLimits;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close({ isCompleted: isCompleted, deliveryDate: vm.deliveryDate });\n }\n\n function setWijmoInputDateLimits(s) {\n if (vm.earliestAllowedDeliveryDate) {\n s.min = parseDate(vm.earliestAllowedDeliveryDate);\n } else {\n s.min = new Date(2016, 1, 1, 0, 0, 0, 0);\n }\n s.max = parseDate(new Date());\n }\n\n //Transform from string to Date, and make sure date has correct timezone and no time information\n\tfunction parseDate(input) {\n\t\tif (!(input instanceof Date)) {\n var newDate = new Date(input);\n return new Date(Date.UTC(newDate.getFullYear(), newDate.getMonth(), newDate.getDate()));\n\t\t} else {\n\t\t\treturn new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n\t\t}\n\t}\n}\n\nangular\n .module('services.dialogs.deliveryConfirmationDialog', [])\n .service('deliveryConfirmationDialogService', deliveryConfirmationDialogService)\n .controller('deliveryConfirmationDialogController', deliveryConfirmationDialogController);\n","// @ngInject\nfunction deliveryDocumentDownloadDialogService($uibModal, OrdersApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(orderId) {\n\n var modalDefaults = {\n backdrop: 'static',\n keyboard: true,\n controller: 'deliveryDocumentDownloadDialogServiceController as vm',\n templateUrl: 'services/dialogs/deliveryDocumentDownloadDialog/deliveryDocumentDownloadDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n orderId: function() {\n return orderId;\n }\n };\n \n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction deliveryDocumentDownloadDialogServiceController($uibModalInstance, $scope, orderId, OrdersApiService, ToasterService, loadSpinnerService) {\n var vm = this;\n\n vm.deliveryDate = {};\n vm.deliveryTimeProximity = 10;\n vm.deliveryTimeType = '1';\n vm.deliveryTimeOptions = [\n {value: '0', name:'sec'},\n {value: '1', name:'min'},\n {value: '2', name:'hr'},\n {value: '3', name:'day'}\n ];\n\n vm.closeModal = closeModal;\n vm.downloadDocument = downloadDocument;\n vm.isFetchingData = false;\n\n activate();\n\n function activate() {\n loadDateSelections();\n\n\n $scope.$watch(function() { return vm.deliveryTimeType; }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n loadDateSelections();\n }\n });\n $scope.$watch(function() { return vm.deliveryTimeProximity; }, function(oldValue, newValue) {\n if (oldValue !== newValue) {\n loadDateSelections();\n }\n });\n }\n\n function loadDateSelections() {\n vm.isFetchingData = true;\n OrdersApiService.getWholeDeliveryDates(orderId, vm.deliveryTimeProximity, vm.deliveryTimeType).then(function(response) {\n vm.deliveryDate = {};\n // modify the date format\n response.data.deliveryDates.forEach(function(entry) {\n var dateObj = new Date(entry.startDate);\n\n entry.id = entry.startDate;\n //entry.description = getDeliveryDateString(dateObj);\n });\n vm.deliveryDates = response.data.deliveryDates;\n vm.orderId = orderId;\n }, function(error) {\n ToasterService.ShowError(error);\n }).finally(function() {\n vm.isFetchingData = false;\n });\n }\n\n function getDeliveryDateString(date) {\n if (!date) { return ''; }\n\n var dateStr = date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2) + ' ' + zeroFill(date.getHours(), 2) + ':' + zeroFill(date.getMinutes(), 2);\n if (date.getHours() === 0 && date.getMinutes() === 0) {\n dateStr = date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2);\n }\n\n return dateStr;\n }\n\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n return new Array(width + ((/\\./).test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function closeModal(isCompleted) {\n $uibModalInstance.close(isCompleted);\n }\n\n function downloadDocument() {\n vm.isFetchingData = true;\n OrdersApiService.downloadDeliveryDocument(orderId, vm.deliveryDate.startDate, vm.deliveryDate.endDate).then(function() {\n }, function(error) {\n ToasterService.ShowError(error);\n }).finally(function() {\n closeModal(true);\n });;\n }\n}\n\nangular\n .module('services.dialogs.deliveryDocumentDownloadDialog', [])\n .service('deliveryDocumentDownloadDialogService', deliveryDocumentDownloadDialogService)\n .controller('deliveryDocumentDownloadDialogServiceController', deliveryDocumentDownloadDialogServiceController);\n","angular.module('services.dialogs', [\n 'services.dialogs.loginDialog',\n 'services.dialogs.newInventoryDialog',\n 'services.dialogs.inventoryCorrectionsModal',\n 'services.dialogs.deliveryDocumentDownloadDialog',\n 'services.dialogs.confirmationDialog',\n 'services.dialogs.informationDialog',\n 'services.dialogs.setFieldConfirmationDialog',\n 'services.dialogs.deliveryConfirmationDialog',\n 'services.dialogs.InvoiceConfirmationDialog',\n 'services.dialogs.printInvoiceDialog',\n 'services.dialogs.printPickingListDialog',\n 'services.dialogs.printLanguageConfirmationDialog',\n 'services.dialogs.printInventoryReportDialog',\n 'services.dialogs.purchaseOrderAnalysisFilterDialog',\n 'services.dialogs.salesTotalFilterDialog',\n 'services.dialogs.updateOrderNoteDialog',\n 'services.dialogs.labelPrintingDialog',\n 'services.dialogs.updateAddressDialog',\n 'services.dialogs.createVariantFulfillmentDialogService',\n 'services.dialogs.createVariantDeliveryDateDialogService',\n 'services.dialogs.importFinalizationDialog',\n 'services.dialogs.colourChangeDialog'\n ]);\n","// @ngInject\r\nfunction importFinalizationDialogService($uibModal) {\r\n\r\n return {\r\n showDialog: showDialog\r\n };\r\n\r\n function showDialog() {\r\n\r\n var modalDefaults = {\r\n backdrop: true,\r\n keyboard: true,\r\n controller: 'importFinalizationDialogController as vm',\r\n // templateUrl: 'main/product/productimporteditor/components/dialogs/importFinalizationDialog.tpl.html',\r\n templateUrl: 'services/dialogs/importFinalizationDialog/importFinalizationDialog.tpl.html',\r\n size: 'md'\r\n };\r\n \r\n return $uibModal.open(modalDefaults).result;\r\n }\r\n}\r\n\r\n// @ngInject\r\nfunction importFinalizationDialogController($uibModalInstance) {\r\n var vm = this;\r\n\r\n vm.selectionChoices = [\r\n {\r\n label:\"productimport.nopriceupdate\",\r\n selection: 'None'\r\n },\r\n {\r\n label:\"productimport.updatesamecolor\",\r\n selection: 'Color'\r\n },\r\n // { // Disabled until further notice\r\n // label:\"productimport.updateallvariants\",\r\n // selection: 'AllVariants'\r\n // }\r\n ];\r\n vm.selected = vm.selectionChoices[0];\r\n\r\n console.log(\"FinalizationModal opened\");\r\n\r\n vm.closeModal = closeModal;\r\n\r\n function closeModal() {\r\n $uibModalInstance.close(vm.selected.selection);\r\n }\r\n}\r\n\r\nangular\r\n .module('services.dialogs.importFinalizationDialog', [])\r\n .service('importFinalizationDialogService', importFinalizationDialogService)\r\n .controller('importFinalizationDialogController', importFinalizationDialogController);","// @ngInject\nfunction informationDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'informationDialogController as vm',\n templateUrl: 'services/dialogs/informationDialog/informationDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction informationDialogController($uibModalInstance, message, $sce) {\n var vm = this;\n\n vm.message = $sce.trustAsHtml(message);\n\n vm.closeModal = closeModal;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close(isCompleted);\n }\n}\n\nangular\n .module('services.dialogs.informationDialog', [])\n .service('informationDialogService', informationDialogService)\n .controller('informationDialogController', informationDialogController);\n","// @ngInject\nfunction inventoryCorrectionsDialogService($uibModal, InventoryingApiService, ProductsApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(inventoryId, articleId) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'inventoryCorrectionsDialogServiceController as vm',\n templateUrl: 'services/dialogs/inventoryCorrectionsDialog/inventoryCorrectionsDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n inventoryRows: function() {\n return InventoryingApiService.getInventoryRowsRelatedToArticle(inventoryId, articleId);\n },\n stocks: function() {\n return ProductsApiService.getProductStocks(articleId);\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction inventoryCorrectionsDialogServiceController($uibModalInstance, inventoryRows, stocks, InventoryingApiService, ResourcesService) {\n var vm = this;\n\n var flexGrid = {};\n var rowData = [];\n var rowCollection = new wijmo.collections.CollectionView(rowData);\n var originalCellValue = '';\n\n var totalsGrid = {};\n\n var locationId = inventoryRows.data[0].inventory.location.id;\n\n vm.inventoryRows = inventoryRows.data;\n vm.articleVariants = pickOutArticleVariants(vm.inventoryRows);\n vm.stocksData = stocks.data;\n vm.totals = [\n {\n sumName: \"Total\",\n theoreticalTotal: 0,\n inventoriedTotal: 0,\n difference: 0\n }\n ];\n\n vm.closeModal = closeModal;\n vm.captureVariantsGrid = captureVariantsGrid;\n vm.beginEditing = beginEditing;\n vm.editEnded = editEnded;\n vm.saveChanges = saveChanges;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close(isCompleted);\n }\n\n function saveChanges() {\n var inventoryToSend = {\n id: vm.inventoryRows[0].inventory.id,\n inventoryRows: []\n };\n\n _.forEach(rowData, function(data) {\n var keys = Object.keys(data);\n var variant1Name = data['variantDetails1Name'];\n _.forEach(keys, function(key) {\n if (key !== \"variantDetails1Name\") {\n\n var relatedArticleVariant = _.find(vm.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.variantDetailName === variant1Name &&\n articleVariant.variantDetail2.variantDetailName === key;\n });\n\n var specifiedQuantity = data[key].split('(')[0].trim();\n\n var inventoryRow = {\n articleVariant: relatedArticleVariant,\n quantity: parseInt(specifiedQuantity)\n };\n\n inventoryToSend.inventoryRows.push(inventoryRow);\n }\n });\n });\n\n InventoryingApiService.updateInventory(inventoryToSend).then(function(response) {\n closeModal(response);\n }, function(error) {\n handleError(error);\n });\n }\n\n function captureVariantsGrid(sender) {\n flexGrid = sender;\n\n flexGrid.initialize({\n autoGenerateColumns: false,\n selectionMode: wijmo.grid.SelectionMode.Cell,\n allowDragging: wijmo.grid.AllowDragging.None,\n allowResizing: wijmo.grid.AllowResizing.Columns,\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\n isReadOnly: false,\n frozenColumns: 1,\n itemsSource: rowCollection\n });\n\n initializeGridColumns();\n }\n\n function captureTotalsGrid(sender) {\n totalsGrid = sender;\n\n // Setting the item formatter, coloring the first line (total sum) differently.\n totalsGrid.itemFormatter = function(panel, r, c, cell) {\n var style = cell.style;\n var regularCellType = wijmo.grid.CellType.Cell;\n\n if (r === 0 && panel.cellType === regularCellType) {\n style.color = '#000000';\n style.backgroundColor = '#dddddd';\n }\n };\n }\n\n function calculateNewTotals() {\n var totalsObject = _.find(vm.totals, function(totalsEntry) {\n return totalsEntry.sumName === \"Total\";\n });\n\n totalsObject.theoreticalTotal = 0;\n totalsObject.inventoriedTotal = 0;\n totalsObject.difference = 0;\n\n _.forEach(rowData, function(data) {\n var keys = Object.keys(data);\n var variant1TotalsObject = _.find(vm.totals, function(variant1Entry) {\n return variant1Entry.sumName === data['variantDetails1Name'];\n });\n if (variant1TotalsObject === undefined) {\n variant1TotalsObject = {\n sumName: data['variantDetails1Name'],\n theoreticalTotal: 0,\n inventoriedTotal: 0,\n difference: 0\n };\n vm.totals.push(variant1TotalsObject);\n }\n\n variant1TotalsObject.theoreticalTotal = 0;\n variant1TotalsObject.inventoriedTotal = 0;\n variant1TotalsObject.difference = 0;\n\n _.forEach(keys, function(key) {\n if (key !== \"variantDetails1Name\") {\n var currentData = data[key].split('(');\n currentData[1] = currentData[1].substring(0, currentData[1].length - 1);\n\n totalsObject.theoreticalTotal += parseInt(currentData[1]);\n totalsObject.inventoriedTotal += parseInt(currentData[0]);\n\n variant1TotalsObject.theoreticalTotal += parseInt(currentData[1]);\n variant1TotalsObject.inventoriedTotal += parseInt(currentData[0]);\n\n variant1TotalsObject.difference = variant1TotalsObject.inventoriedTotal - variant1TotalsObject.theoreticalTotal;\n }\n });\n });\n\n totalsObject.difference = totalsObject.inventoriedTotal - totalsObject.theoreticalTotal;\n if (totalsGrid.collectionView) {\n totalsGrid.collectionView.refresh();\n }\n }\n\n function initializeGridColumns() {\n // Need to wait for the grid to be initialized\n if (!flexGrid.columns) {\n setTimeout(initializeGridColumns, 100);\n return;\n }\n\n rowData.length = 0;\n flexGrid.columns.clear();\n rowCollection.refresh();\n\n // Add first row header column\n var rowHeader = new wijmo.grid.Column();\n rowHeader.binding = \"variantDetails1Name\";\n rowHeader.header = \"Variant\";\n rowHeader.allowSorting = false;\n rowHeader.allowResizing = true;\n rowHeader.width = '*';\n rowHeader.minWidth = 100;\n rowHeader.isReadOnly = false;\n flexGrid.columns.push(rowHeader);\n\n var columns = getDataColumns();\n\n // Add dynamic columns\n _.forEach(columns, function (variantDetail) {\n var c = new wijmo.grid.Column();\n c.binding = variantDetail.variantDetailName;\n c.header = variantDetail.variantDetailName;\n c.width = \"*\";\n c.minWidth = 100;\n c.allowSorting = false;\n c.allowResizing = true;\n c.inputType = 'text';\n c.isReadOnly = false;\n c.align = \"right\";\n flexGrid.columns.push(c);\n });\n\n loadGridData();\n }\n\n function getDataColumns() {\n var columns = [];\n\n // Group by nested variantDetail2 in the current articleVariants\n columns = _.groupBy(vm.articleVariants, function(variant) {\n return variant.variantDetail2.variantDetailName;\n });\n // Get the variantDetail2 from each group in an array\n columns = _.reduce(columns, function(newArray, val, key) {\n newArray.push(val[0].variantDetail2);\n return newArray;\n }, []);\n\n return _.sortBy(columns, 'sortOrder');\n }\n\n function loadGridData() {\n var articleVariants = _.groupBy(vm.articleVariants, function(articleVariant) {\n return articleVariant.variantDetail1.variantDetailName;\n });\n\n _.forEach(articleVariants, function(variantRowValues) {\n var r = {};\n _.forEach(variantRowValues, function(variantRowValue) {\n r.variantDetails1Name = variantRowValue.variantDetail1.variantDetailName;\n\n var relatedStock = getStockFor(r.variantDetails1Name, variantRowValue.variantDetail2.variantDetailName);\n var relatedInventoryRow = getInventoryRowFor(r.variantDetails1Name, variantRowValue.variantDetail2.variantDetailName);\n\n if (relatedStock === undefined || relatedStock.location.id !== locationId) {\n relatedStock = {};\n relatedStock['quantity'] = 0;\n }\n\n if (relatedInventoryRow === undefined) {\n relatedInventoryRow = {};\n relatedInventoryRow['quantity'] = 0;\n }\n\n r[variantRowValue.variantDetail2.variantDetailName] = relatedInventoryRow.quantity + \" (\" + relatedStock.quantity + \")\";\n });\n rowData.push(r);\n });\n rowCollection.refresh();\n\n calculateNewTotals();\n }\n\n function getStockFor(variantDetail1Name, variantDetail2Name) {\n return _.find(vm.stocksData, function(stock) {\n return stock.articleVariant.variantDetail1.variantDetailName === variantDetail1Name &&\n stock.articleVariant.variantDetail2.variantDetailName === variantDetail2Name &&\n stock.location.id === locationId;\n });\n }\n\n function getInventoryRowFor(variantDetail1Name, variantDetail2Name) {\n var result = _.find(vm.inventoryRows, function(inventoryRow) {\n return inventoryRow.articleVariant.variantDetail1.variantDetailName === variantDetail1Name &&\n inventoryRow.articleVariant.variantDetail2.variantDetailName === variantDetail2Name;\n });\n\n return result;\n }\n\n function beginEditing(sender, e) {\n var rowNumber = flexGrid.selection.row;\n var columnNumber = flexGrid.selection.col;\n\n var columnHeader = flexGrid.columns[columnNumber].binding;\n\n var keys = Object.keys(rowData[rowNumber]);\n\n originalCellValue = angular.copy(rowData[rowNumber][columnHeader]);\n\n rowData[rowNumber][columnHeader] = rowData[rowNumber][columnHeader].split('(')[0].trim();\n rowCollection.refresh();\n }\n\n function editEnded(sender, e) {\n var rowNumber = flexGrid.selection.row;\n var columnNumber = flexGrid.selection.col;\n var keys = Object.keys(rowData[rowNumber]);\n\n var columnHeader = flexGrid.columns[columnNumber].binding;\n\n rowData[rowNumber][columnHeader] = rowData[rowNumber][columnHeader] + \" (\" + originalCellValue.split('(')[1];\n rowCollection.refresh();\n calculateNewTotals();\n }\n\n function pickOutArticleVariants(inventoryRows) {\n var articleVariants = [];\n\n _.forEach(inventoryRows, function(inventoryRow) {\n articleVariants.push(inventoryRow.articleVariant);\n });\n\n return articleVariants;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n}\n\nangular\n .module('services.dialogs.inventoryCorrectionsModal', [])\n .service('inventoryCorrectionsDialogService', inventoryCorrectionsDialogService)\n .controller('inventoryCorrectionsDialogServiceController', inventoryCorrectionsDialogServiceController);\n","// @ngInject\nfunction labelPrintingDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(order) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'labelPrintingDialogController as vm',\n templateUrl: 'services/dialogs/labelPrintingDialog/labelPrintingDialog.tpl.html',\n size: 'lg'\n };\n\n modalDefaults.resolve = {\n order: function() {\n return order;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction labelPrintingDialogController($uibModalInstance, order, loadSpinnerService, OrdersApiService, $translate, ToasterService) {\n var vm = this;\n\n //Properties\n vm.order = order;\n\n //Methods\n vm.closeModal = closeModal;\n vm.printOrderLabels = printOrderLabels;\n\n activate();\n\n function activate() {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.getDeliveryDates(vm.order.id).then(function(response) {\n vm.selectableDates = [];\n _.forEach(response.data.deliveryDates, function(entry) {\n var dateObj = new Date(entry.startDate);\n\n entry.id = entry.startDate;\n entry.description = $translate.instant(\"order.printlabel.deliveredto\") + ' ' + getDeliveryDateString(dateObj);\n\n //if user wants to print labels for whole date\n var useWholeDate = (dateObj.getHours() === 0 && dateObj.getMinutes() === 0);\n\n vm.selectableDates.push({\n id: entry.id,\n description: entry.description,\n useWholeDate: useWholeDate\n });\n });\n\n vm.selectableDates.unshift({ id: \"allDates\", description:$translate.instant(\"order.printlabel.ordered\")});\n\n if (vm.selectableDates.length !== 0) {\n vm.selectedDate = vm.selectableDates[0];\n }\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n\n function getDeliveryDateString(date) {\n if (!date) { return ''; }\n\n var dateStr = date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2) + ' ' + zeroFill(date.getHours(), 2) + ':' + zeroFill(date.getMinutes(), 2);\n if (date.getHours() === 0 && date.getMinutes() === 0) {\n dateStr = date.getFullYear() + '-' + zeroFill(date.getMonth() + 1, 2) + '-' + zeroFill(date.getDate(), 2);\n }\n\n return dateStr;\n }\n function zeroFill(number, width)\n {\n width -= number.toString().length;\n if (width > 0)\n {\n return new Array(width + ((/\\./).test(number) ? 2 : 1)).join('0') + number;\n }\n return number + ''; // always return a string\n }\n\n function printOrderLabels() {\n if (vm.selectedDate.id !== \"allDates\") {\n loadSpinnerService.start('mainSpinner');\n var request = {\n orderId: vm.order.id,\n orderNumber: vm.order.orderNumber,\n date: vm.selectedDate.id,\n useWholeDate: vm.selectedDate.useWholeDate\n };\n OrdersApiService.downloadLabelsForDate(request).then(function(response) {\n $uibModalInstance.close(true);\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n } else {\n loadSpinnerService.start('mainSpinner');\n OrdersApiService.downloadLabels(vm.order.id, vm.order.orderNumber).then(function(response) {\n $uibModalInstance.close(true);\n }, function(error) {\n ToasterService.showError(error.message);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n }\n\n function closeModal(isCompleted) {\n $uibModalInstance.close(isCompleted);\n }\n}\n\nangular\n .module('services.dialogs.labelPrintingDialog', [])\n .service('labelPrintingDialogService', labelPrintingDialogService)\n .controller('labelPrintingDialogController', labelPrintingDialogController);\n","// @ngInject\nfunction LoginDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(data) {\n data = data || {};\n data.authMessage = data.authMessage || null;\n data.isLoginState = data.isLoginState || false;\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'LoginDialogController as vm',\n templateUrl: 'services/dialogs/loginDialog/loginDialog.tpl.html',\n size: 'sm'\n };\n\n modalDefaults.resolve = {\n authMessage: function() {\n return data.authMessage;\n }\n };\n\n if (data.isLoginState) {\n modalDefaults.backdrop = 'static';\n modalDefaults.keyboard = false;\n }\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction LoginDialogController($uibModalInstance,$location,authMessage,AuthApiService,UserTimeStampingDialogService, UserPasswordResetDialogService, AuthService, $translate) {\n var vm = this;\n\n //Parameters\n vm.user = {};\n vm.authError = null;\n vm.showTenantInputField = false;\n vm.tenantName = \"\";\n\n //Methods\n vm.showDialogTimeStamping = showDialogTimeStamping;\n vm.authMessage = authMessage;\n vm.login = login;\n vm.showDialogResetPassword = showDialogResetPassword;\n\n activate();\n\n function activate() {\n var absoluteUrl = $location.absUrl();\n var match = absoluteUrl.match(/(?:\\/\\?)([A-Za-z0-9]*)(?:\\#?)/); //Find occurrences of \"/?string\"\n\n var tenantName;\n if (match !== null) {\n tenantName = match[1];\n }\n\n if (tenantName === undefined) {\n vm.showTenantInputField = true;\n console.log(\"Tenant is not included in URL.\");\n } else {\n vm.showTenantInputField = false;\n vm.tenantName = tenantName;\n console.log(\"Tenant found. Tenant name is:\");\n console.log(vm.tenantName);\n }\n }\n\n function login() {\n $uibModalInstance.startLoadingSpinner();\n AuthApiService.getToken(vm.user.username, vm.user.password, vm.tenantName).then(function(token) {\n $uibModalInstance.close({ Token: token, Tenant: vm.tenantName });\n }, function(error) {\n $uibModalInstance.stopLoadingSpinner();\n vm.authError = error.message;\n });\n }\n\n function showDialogTimeStamping() {\n $uibModalInstance.startLoadingSpinner();\n\n AuthApiService.getToken(vm.user.username, vm.user.password, vm.tenantName).then(function(token) {\n AuthService.setToken(token, vm.tenantName);\n UserTimeStampingDialogService.showDialogLoginless().then(function(response) {\n console.log(\"Returned from time stamping. Response:\");\n console.log(response);\n }, function(error) {\n vm.authError = error.message;\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n });\n\n }, function(error) {\n $uibModalInstance.stopLoadingSpinner();\n vm.authError = error.message;\n });\n\n }\n\n function showDialogResetPassword() {\n $uibModalInstance.startLoadingSpinner();\n\n //AuthApiService.getToken(vm.user.username, vm.user.password, vm.tenantName).then(function(token) {\n //AuthService.setToken(token);\n UserPasswordResetDialogService.showDialog().then(function(response) {\n console.log(\"Returned from time stamping. Response:\");\n console.log(response);\n }, function(error) {\n vm.authError = error.message;\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n });\n //}, function(error) {\n //$uibModalInstance.stopLoadingSpinner();\n //vm.authError = error.message;\n //});\n }\n}\n\nangular\n .module('services.dialogs.loginDialog', ['services.dialogs.resetLoginDialog'])\n .service('LoginDialogService', LoginDialogService)\n .controller('LoginDialogController', LoginDialogController);\n","// @ngInject\nfunction NewInventoryDialogService($uibModal, LocationsApiService, InventoryingApiService, StockApiService) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog() {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'NewInventoryDialogServiceController as vm',\n templateUrl: 'services/dialogs/newInventoryDialog/newInventoryDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n locations: function() {\n return StockApiService.getFilteredLocations();\n },\n inventoryTypes: function() {\n return StockApiService.getInventoryTypes();\n },\n mainGroups: function() {\n return StockApiService.getMainGroups();\n },\n brands: function() {\n return StockApiService.getBrands();\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction NewInventoryDialogServiceController($uibModalInstance, locations, inventoryTypes, brands, ResourcesService, InventoryingApiService, mainGroups) {\n var vm = this;\n var currentTime = getCurrentTimeRoundedToNearestHour();\n\n vm.locations = locations;\n vm.inventoryTypes = inventoryTypes;\n vm.mainGroups = insertEmptyMainGroupFirst(mainGroups);\n vm.brands = insertEmptyBrandFirst(brands);\n\n vm.isShowingScanningForm = false;\n vm.toggleScanningForm = toggleScanningForm;\n vm.scannedBarcodes = \"\";\n\n vm.locationChanged = locationChanged;\n vm.inventoryTypeChanged = inventoryTypeChanged;\n vm.mainGroupChanged = mainGroupChanged;\n vm.brandChanged = brandChanged;\n vm.save = save;\n vm.closeModal = closeModal;\n\n vm.newInventoryRequestData = {\n inventoryDescription: \"\",\n inventoryDate: currentTime,\n brand: { id: 0, brandDescription: ' ' },\n itemGroup: { id: 0, itemGroupLongName: ' '},\n inventoryType: { id: 0 },\n location: { id: 0 },\n itemGroups: [],\n brands:[]\n };\n\n // testing support for mulitple main groups\n vm.newInventoryRequestData.mainGroups = [];\n\n function getCurrentTimeRoundedToNearestHour() {\n var timeNonUtc = new Date();\n var time = new Date();\n time.setSeconds(0);\n time.setMilliseconds(0);\n\n if (time.getMinutes() < 30) {\n time.setMinutes(0);\n } else {\n time.setMinutes(0);\n if (time.getHours() <= 22) {\n time.setHours(time.getHours() + 1);\n } else {\n time.setHours(23);\n }\n }\n return time;\n }\n\n function closeModal(args) {\n $uibModalInstance.close(args);\n }\n\n function save() {\n $uibModalInstance.startLoadingSpinner();\n InventoryingApiService.createInventory(vm.newInventoryRequestData).then(function(response) {\n console.log(\"Success, id:\" + response.data.id);\n vm.closeModal({ success: true, inventoryItem: response.data });\n }, function(error) {\n handleError(error);\n }).finally(function() {\n $uibModalInstance.stopLoadingSpinner();\n });\n }\n\n function insertEmptyMainGroupFirst(mainGroups) {\n var emptyMainGroup = {\n id: 0,\n mainGroupDescription: ' '\n };\n var newArr = [];\n newArr.push(emptyMainGroup);\n newArr = newArr.concat(mainGroups);\n return newArr;\n }\n\n function insertEmptyBrandFirst(brands) {\n var emptyBrand = {\n id: 0,\n brandDescription: ' '\n };\n var newArr = [];\n newArr.push(emptyBrand);\n newArr = newArr.concat(brands);\n return newArr;\n }\n\n function toggleScanningForm() {\n if (!vm.isShowingScanningForm) {\n vm.isShowingScanningForm = true;\n } else {\n vm.isShowingScanningForm = false;\n vm.scannedBarcodes = \"\";\n }\n }\n\n function locationChanged(sender) {\n vm.newInventoryRequestData.location = sender.selectedItem;\n }\n\n function inventoryTypeChanged(sender) {\n vm.newInventoryRequestData.inventoryType = sender.selectedItem;\n }\n\n function mainGroupChanged(sender) {\n vm.newInventoryRequestData.mainGroup = sender.selectedItem;\n }\n\n function brandChanged(sender) {\n vm.newInventoryRequestData.brand = sender.selectedItem;\n }\n\n function handleError(error) {\n return ResourcesService.handleResourceError(error);\n }\n\n}\n\nangular\n .module('services.dialogs.newInventoryDialog', [])\n .service('NewInventoryDialogService', NewInventoryDialogService)\n .controller('NewInventoryDialogServiceController', NewInventoryDialogServiceController);\n","// @ngInject\nfunction printInventoryReportDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, level) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'printInventoryReportDialogController as vm',\n templateUrl: 'services/dialogs/printInventoryReportDialog/printInventoryReportDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n level: function() {\n return level;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction printInventoryReportDialogController($uibModalInstance, $window, message, level, $sce) {\n var vm = this;\n\n //Properties\n vm.message = $sce.trustAsHtml(message);\n vm.level = level;\n vm.printLanguage = 'se';\n vm.printFormat = 'pdf';\n\n //Methods\n vm.closeModal = closeModal;\n vm.setLanguage = setLanguage;\n vm.setPrintFormat = setPrintFormat;\n\n readSettingsFromLocalStorage();\n\n function closeModal(isCompleted) {\n var result = {\n result: isCompleted,\n languageCode: vm.printLanguage,\n printFormat: vm.printFormat\n };\n saveSettingsToLocalStorage();\n $uibModalInstance.close(result);\n }\n\n function setLanguage(language) {\n vm.printLanguage = language;\n }\n function setPrintFormat(format) {\n vm.printFormat = format;\n }\n\n function readSettingsFromLocalStorage() {\n if ($window.localStorage.printInventoryReportSettings) {\n if (!isJsonString($window.localStorage.getItem('printInventoryReportSettings'))) {\n $window.localStorage.removeItem('printInventoryReportSettings');\n }\n\n var settingsStr = $window.localStorage.getItem('printInventoryReportSettings');\n if (settingsStr !== null) {\n var json = JSON.parse(settingsStr);\n if (json.printLanguage) { vm.printLanguage = json.printLanguage; }\n if (json.printFormat) { vm.printFormat = json.printFormat; }\n }\n }\n }\n function isJsonString(str) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n function saveSettingsToLocalStorage() {\n var request = {\n printLanguage: angular.copy(vm.printLanguage),\n printFormat: angular.copy(vm.printFormat)\n };\n\n $window.localStorage.setItem('printInventoryReportSettings', JSON.stringify(request));\n }\n}\n\nangular\n .module('services.dialogs.printInventoryReportDialog', [])\n .service('printInventoryReportDialogService', printInventoryReportDialogService)\n .controller('printInventoryReportDialogController', printInventoryReportDialogController);\n","// @ngInject\nfunction printInvoiceDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, level) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'printInvoiceDialogController as vm',\n templateUrl: 'services/dialogs/printInvoiceDialog/printInvoiceDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n level: function() {\n return level;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction printInvoiceDialogController($uibModalInstance, message, level, $sce) {\n var vm = this;\n\n //Properties\n vm.message = $sce.trustAsHtml(message);\n vm.level = level;\n vm.printLanguage = 'en';\n vm.weightSetting = 'kg';\n\n //Methods\n vm.closeModal = closeModal;\n vm.setLanguage = setLanguage;\n vm.setWeightSetting = setWeightSetting;\n\n function closeModal(isCompleted) {\n var result = {\n result: isCompleted,\n languageCode: vm.printLanguage,\n weightSetting: vm.weightSetting\n };\n $uibModalInstance.close(result);\n }\n\n function setLanguage(language) {\n vm.printLanguage = language;\n }\n function setWeightSetting(setting) {\n vm.weightSetting = setting;\n }\n}\n\nangular\n .module('services.dialogs.printInvoiceDialog', [])\n .service('printInvoiceDialogService', printInvoiceDialogService)\n .controller('printInvoiceDialogController', printInvoiceDialogController);\n","// @ngInject\nfunction printLanguageConfirmationDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, level) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'printLanguageConfirmationDialogController as vm',\n templateUrl: 'services/dialogs/printLanguageConfirmationDialog/printLanguageConfirmationDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n level: function() {\n return level;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction printLanguageConfirmationDialogController($uibModalInstance, $window, message, level, $sce, $translate) {\n var vm = this;\n\n //Properties\n vm.message = $sce.trustAsHtml(message);\n vm.level = level;\n vm.printLanguage = 'se';\n\n //Methods\n vm.closeModal = closeModal;\n vm.setLanguage = setLanguage;\n\n activate();\n\n function activate() {\n readSettingsFromLocalStorage();\n }\n\n function closeModal(isCompleted) {\n var result = {\n result: isCompleted,\n locale: vm.printLanguage\n };\n saveSettingsToLocalStorage();\n $uibModalInstance.close(result);\n }\n\n function setLanguage(language) {\n vm.printLanguage = language;\n }\n\n function readSettingsFromLocalStorage() {\n if ($window.localStorage.printLanguageConfirmationSettings) {\n if (!isJsonString($window.localStorage.getItem('printLanguageConfirmationSettings'))) {\n $window.localStorage.removeItem('printLanguageConfirmationSettings');\n }\n\n var settingsStr = $window.localStorage.getItem('printLanguageConfirmationSettings');\n if (settingsStr !== null) {\n var json = JSON.parse(settingsStr);\n if (json.printLanguage) { vm.printLanguage = json.printLanguage; }\n }\n }\n }\n function isJsonString(str) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n function saveSettingsToLocalStorage() {\n var request = {\n printLanguage: angular.copy(vm.printLanguage)\n };\n\n $window.localStorage.setItem('printLanguageConfirmationSettings', JSON.stringify(request));\n }\n}\n\nangular\n .module('services.dialogs.printLanguageConfirmationDialog', [])\n .service('printLanguageConfirmationDialogService', printLanguageConfirmationDialogService)\n .controller('printLanguageConfirmationDialogController', printLanguageConfirmationDialogController);\n","// @ngInject\nfunction printPickingListDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, level) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'printPickingListDialogController as vm',\n templateUrl: 'services/dialogs/printPickingListDialog/printPickingListDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n level: function() {\n return level;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction printPickingListDialogController($uibModalInstance, $window, message, level, $sce, $translate) {\n var vm = this;\n\n //Properties\n vm.message = $sce.trustAsHtml(message);\n vm.level = level;\n vm.printLanguage = 'se';\n vm.includeStorageLocation = false;\n vm.includeIsPhotographed = false;\n vm.includePrices = false;\n vm.groupings = [];\n\n //Methods\n vm.closeModal = closeModal;\n vm.setLanguage = setLanguage;\n\n activate();\n\n function activate() {\n vm.groupings = [\n { id: 1, description: $translate.instant('article.articlenumber'), code: 'ArticleNumber' }, //'Produktnummer'\n { id: 2, description: $translate.instant('article.itemgroup'), code: 'ItemGroupCode' }, //'Varugrupp'\n { id: 3, description: $translate.instant('article.brand'), code: 'BrandCode' }, //'Varumärke'\n { id: 4, description: $translate.instant('article.maingroup'), code: 'MainGroupCode' }, //'Huvudgrupp'\n { id: 5, description: $translate.instant('article.department'), code: 'DepartmentCode' } //'Avdelning'\n ];\n vm.selectedGrouping = vm.groupings[0];\n readSettingsFromLocalStorage();\n }\n\n function closeModal(isCompleted) {\n var result = {\n result: isCompleted,\n languageCode: vm.printLanguage,\n grouping: vm.selectedGrouping.code,\n includeStorageLocation: vm.includeStorageLocation,\n includeIsPhotographed: vm.includeIsPhotographed,\n includePrices: vm.includePrices\n };\n saveSettingsToLocalStorage();\n $uibModalInstance.close(result);\n }\n\n function setLanguage(language) {\n vm.printLanguage = language;\n }\n\n function readSettingsFromLocalStorage() {\n if ($window.localStorage.printOrderPickingListSettings) {\n if (!isJsonString($window.localStorage.getItem('printOrderPickingListSettings'))) {\n $window.localStorage.removeItem('printOrderPickingListSettings');\n }\n\n var settingsStr = $window.localStorage.getItem('printOrderPickingListSettings');\n if (settingsStr !== null) {\n var json = JSON.parse(settingsStr);\n if (json.printLanguage) { vm.printLanguage = json.printLanguage; }\n if (json.includeStorageLocation) { vm.includeStorageLocation = json.includeStorageLocation; }\n if (json.includeIsPhotographed) { vm.includeIsPhotographed = json.includeIsPhotographed; }\n if (json.includePrices) { vm.includePrices = json.includePrices; }\n if (json.grouping && _.indexOf(vm.groupings, function(so) { return so.code === json.grouping; })) { vm.selectedGrouping = _.find(vm.groupings, function(so) { return so.code === json.grouping; }); }\n }\n }\n }\n function isJsonString(str) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n function saveSettingsToLocalStorage() {\n var request = {\n printLanguage: angular.copy(vm.printLanguage),\n grouping: angular.copy(vm.selectedGrouping.code),\n includeStorageLocation: vm.includeStorageLocation ? angular.copy(vm.includeStorageLocation) : null,\n includeIsPhotographed: vm.includeIsPhotographed ? angular.copy(vm.includeIsPhotographed) : null,\n includePrices: vm.includeprices ? angular.copy(vm.includePrices) : null\n };\n\n $window.localStorage.setItem('printOrderPickingListSettings', JSON.stringify(request));\n }\n}\n\nangular\n .module('services.dialogs.printPickingListDialog', [])\n .service('printPickingListDialogService', printPickingListDialogService)\n .controller('printPickingListDialogController', printPickingListDialogController);\n","// @ngInject\nfunction purchaseOrderAnalysisFilterDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(selectedSupplier,\n suppliers,\n selectedNumberOfResultsPerPage,\n numberOfResultsPerPage,\n selectedArticleCollection,\n articleCollections,\n showAllCollections,\n selectedMainGroup,\n mainGroups,\n selectedWeekLimit,\n weekLimit,\n keepProductTogether,\n showWeeks,\n showProduct,\n includeInactive) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'purchaseOrderAnalysisFilterDialogController as vm',\n templateUrl: 'services/dialogs/purchaseOrderAnalysisFilterDialog/purchaseOrderAnalysisFilterDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n selectedSupplier: function() {\n return selectedSupplier;\n },\n suppliers: function() {\n return suppliers;\n },\n selectedNumberOfResultsPerPage: function() {\n return selectedNumberOfResultsPerPage;\n },\n numberOfResultsPerPage: function() {\n return numberOfResultsPerPage;\n },\n selectedArticleCollection: function() {\n return selectedArticleCollection;\n },\n articleCollections: function() {\n return articleCollections;\n },\n showAllCollections: function() {\n return showAllCollections;\n },\n selectedMainGroup: function() {\n return selectedMainGroup;\n },\n mainGroups: function() {\n return mainGroups;\n },\n selectedWeekLimit: function() {\n return selectedWeekLimit;\n },\n weekLimit: function() {\n return weekLimit;\n },\n keepProductTogether: function() {\n return keepProductTogether;\n },\n showWeeks: function() {\n return showWeeks;\n },\n showProduct: function() {\n return showProduct;\n },\n includeInactive: function() {\n return includeInactive;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction purchaseOrderAnalysisFilterDialogController($uibModalInstance,\n selectedSupplier,\n suppliers,\n selectedNumberOfResultsPerPage,\n numberOfResultsPerPage,\n selectedArticleCollection,\n articleCollections,\n showAllCollections,\n selectedMainGroup,\n mainGroups,\n selectedWeekLimit,\n weekLimit,\n keepProductTogether,\n showWeeks,\n showProduct,\n includeInactive) {\n var vm = this;\n\n vm.closeModal = closeModal;\n vm.selectedSupplier = selectedSupplier;\n vm.suppliers = suppliers;\n vm.selectedNumberOfResultsPerPage = selectedNumberOfResultsPerPage;\n vm.numberOfResultsPerPage = numberOfResultsPerPage;\n vm.selectedArticleCollection = selectedArticleCollection;\n vm.articleCollections = articleCollections;\n vm.showAllCollections = showAllCollections;\n vm.selectedMainGroup = selectedMainGroup;\n vm.mainGroups = mainGroups;\n vm.selectedWeekLimit = selectedWeekLimit;\n vm.weekLimit = weekLimit;\n vm.keepProductTogether = keepProductTogether;\n vm.showWeeks = showWeeks;\n vm.showProduct = showProduct;\n vm.includeInactive = includeInactive;\n\n function closeModal(confirmation) {\n var response = {\n confirmation: confirmation,\n selectedSupplier: vm.selectedSupplier,\n selectedNumberOfResultsPerPage: vm.selectedNumberOfResultsPerPage,\n selectedArticleCollection: vm.selectedArticleCollection,\n showAllCollections: vm.showAllCollections,\n selectedMainGroup: vm.selectedMainGroup,\n selectedWeekLimit: vm.selectedWeekLimit,\n keepProductTogether: vm.keepProductTogether,\n showWeeks: vm.showWeeks,\n showProduct: vm.showProduct,\n includeInactive: vm.includeInactive\n };\n $uibModalInstance.close(response);\n }\n}\n\nangular\n .module('services.dialogs.purchaseOrderAnalysisFilterDialog', [])\n .service('purchaseOrderAnalysisFilterDialogService', purchaseOrderAnalysisFilterDialogService)\n .controller('purchaseOrderAnalysisFilterDialogController', purchaseOrderAnalysisFilterDialogController);\n","// @ngInject\nfunction UserPasswordResetDialogService($uibModal, $timeout) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog() {\n var modalDefaults = {\n backdrop: 'static',\n keyboard: false,\n controller: 'UserPasswordResetDialogServiceController as vm',\n templateUrl: 'services/dialogs/resetLogin/resetLogin.tpl.html',\n size: ''\n };\n\n modalDefaults.resolve = {\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction UserPasswordResetDialogServiceController($rootScope, $uibModalInstance, $scope, $interval, $translate,\n AuthService, ToasterService, $timeout) {\n var vm = this;\n\n //Properties\n vm.showPage = 0;\n vm.currentUser = {};\n vm.currentUser.email = '';\n vm.currentUser.tenantName = '';\n vm.currentUser.securityCode = '';\n vm.currentUser.newPassword = '';\n vm.currentUser.confirmPassword = '';\n vm.usernameOrEmail = '';\n vm.clickedResetPasswordButton = false;\n vm.clickedConfirmPasswordButton = false;\n\n //Methods\n vm.closeModal = closeModal;\n vm.resetPassword = resetPassword;\n vm.confirmNewPassword = confirmNewPassword;\n\n function activate() {\n if ($rootScope.currentUser !== undefined) {\n vm.currentUser = $rootScope.currentUser;\n }\n }\n\n function closeModal() {\n vm.showConfirmPassword = false;\n $uibModalInstance.close();\n }\n\n function resetPassword() {\n vm.clickedResetPasswordButton = true;\n if (vm.usernameOrEmail.length === 0 || vm.currentUser.tenantName.length === 0) {\n ToasterService.showError($translate.instant('common.errorMissingInputOrTenant'), $translate.instant('common.error'));\n vm.clickedResetPasswordButton = false;\n return;\n }\n if (!validateEmail(vm.usernameOrEmail)) {\n vm.currentUser.username = vm.usernameOrEmail;\n vm.currentUser.email = '';\n } else {\n vm.currentUser.email = vm.usernameOrEmail;\n vm.currentUser.username = '';\n }\n\n AuthService.resetPassword(vm.currentUser).then(function(response) {\n vm.showPage = 1;\n }, function(error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n vm.clickedResetPasswordButton = false;\n });\n }\n\n function confirmNewPassword() {\n vm.clickedConfirmPasswordButton = false;\n if (vm.currentUser.newPassword.length === 0 || vm.currentUser.confirmPassword.length === 0) {\n vm.clickedConfirmPasswordButton = true;\n ToasterService.showError($translate.instant('common.errorMissingPasswordOrConfirmation'), $translate.instant('common.error'));\n return;\n } else if (vm.currentUser.newPassword !== vm.currentUser.confirmPassword) {\n vm.clickedConfirmPasswordButton = true;\n ToasterService.showError($translate.instant('common.errorPasswordsNotMatching'), $translate.instant('common.error'));\n return;\n } else if (vm.currentUser.securityCode.length === 0) {\n vm.clickedConfirmPasswordButton = true;\n ToasterService.showError($translate.instant('common.errorMissingSecurityCode'), $translate.instant('common.error'));\n return;\n }\n\n AuthService.confirmNewPassword(vm.currentUser).then(function(response) {\n if (response !== null || response !== undefined) {\n vm.showPage = 2;\n }\n }, function(error) {\n ToasterService.showError($translate.instant(error.message), $translate.instant('common.error'));\n vm.clickedConfirmPasswordButton = false;\n });\n }\n\n function validateEmail(email) {\n var EMAIL_REGEXP = /^[_a-z0-9]+(\\.[_a-z0-9]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$/;\n\n return EMAIL_REGEXP.test(email);\n }\n}\n\nangular\n .module('services.dialogs.resetLoginDialog', [])\n .service('UserPasswordResetDialogService', UserPasswordResetDialogService)\n .controller('UserPasswordResetDialogServiceController', UserPasswordResetDialogServiceController);\n","// @ngInject\nfunction salesTotalFilterDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(periodStartDate,\n periodEndDate,\n locations,\n selectedLocation,\n includeApproved,\n includeForProcessing) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'salesTotalFilterDialogController as vm',\n templateUrl: 'services/dialogs/salesTotalFilterDialog/salesTotalFilterDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n periodStartDate: function() {\n return periodStartDate;\n },\n periodEndDate: function() {\n return periodEndDate;\n },\n locations: function() {\n return locations;\n },\n selectedLocation: function() {\n return selectedLocation;\n },\n includeApproved: function() {\n return includeApproved;\n },\n includeForProcessing: function() {\n return includeForProcessing;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction salesTotalFilterDialogController($uibModalInstance,\n periodStartDate,\n periodEndDate,\n locations,\n selectedLocation,\n includeApproved,\n includeForProcessing) {\n var vm = this;\n\n vm.closeModal = closeModal;\n vm.periodStartDate = periodStartDate;\n vm.periodEndDate = periodEndDate;\n vm.locations = locations;\n vm.selectedLocation = selectedLocation;\n vm.includeApproved = includeApproved;\n vm.includeForProcessing = includeForProcessing;\n\n function closeModal(confirmation) {\n var response = {\n confirmation: confirmation,\n periodStartDate: vm.periodStartDate,\n periodEndDate: vm.periodEndDate,\n selectedLocation: vm.selectedLocation.id,\n includeApproved: vm.includeApproved,\n includeForProcessing: vm.includeForProcessing\n };\n $uibModalInstance.close(response);\n }\n}\n\nangular\n .module('services.dialogs.salesTotalFilterDialog', [])\n .service('salesTotalFilterDialogService', salesTotalFilterDialogService)\n .controller('salesTotalFilterDialogController', salesTotalFilterDialogController);\n","// @ngInject\nfunction setFieldConfirmationDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, level, fieldType, minValue, maxValue) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'setFieldConfirmationDialogController as vm',\n templateUrl: 'services/dialogs/setFieldConfirmationDialog/setFieldConfirmationDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n level: function() {\n return level;\n },\n fieldType: function() {\n return fieldType;\n },\n minValue: function() {\n return minValue;\n },\n maxValue: function() {\n return maxValue;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction setFieldConfirmationDialogController($uibModalInstance, message, level, fieldType, minValue, maxValue, $sce) {\n var vm = this;\n\n vm.message = $sce.trustAsHtml(message);\n vm.level = level;\n vm.fieldType = fieldType;\n vm.dateValue = new Date();\n vm.numberValue = 0;\n if (fieldType === 'date') {\n vm.minValue = minValue ? minValue : '' + (new Date().getFullYear() - 5) + '-' + new Date().getMonth() + '-' + new Date().getDate() + ' 00:00:00';\n vm.maxValue = maxValue ? maxValue : '' + (new Date().getFullYear() + 5) + '-' + new Date().getMonth() + '-' + new Date().getDate() + ' 00:00:00';\n } else if (fieldType) {\n vm.minValue = minValue || minValue === 0 ? minValue : 0;\n vm.maxValue = maxValue || maxValue === 0 ? maxValue : 100;\n }\n\n vm.closeModal = closeModal;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close({\n isCompleted: isCompleted,\n dateValue: dateToUtc(vm.dateValue),\n numberValue: vm.numberValue\n });\n }\n\n function dateToUtc(date) {\n var milliseconds = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());\n var d = new Date(milliseconds);\n return d;\n }\n}\n\nangular\n .module('services.dialogs.setFieldConfirmationDialog', [])\n .service('setFieldConfirmationDialogService', setFieldConfirmationDialogService)\n .controller('setFieldConfirmationDialogController', setFieldConfirmationDialogController);\n","// @ngInject\nfunction updateAddressDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(message, address) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'updateAddressDialogController as vm',\n templateUrl: 'services/dialogs/updateAddressDialog/updateAddressDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n message: function() {\n return message;\n },\n address: function() {\n return address;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction updateAddressDialogController($uibModalInstance, message, address) {\n var vm = this;\n\n vm.message = message;\n vm.address = address;\n\n vm.closeModal = closeModal;\n vm.save = save;\n\n function closeModal(isCompleted) {\n $uibModalInstance.close({\n isCompleted: isCompleted,\n address: null\n });\n }\n\n function save() {\n $uibModalInstance.close({\n isCompleted: true,\n address: vm.address\n });\n }\n}\n\nangular\n .module('services.dialogs.updateAddressDialog', [])\n .service('updateAddressDialogService', updateAddressDialogService)\n .controller('updateAddressDialogController', updateAddressDialogController);\n","// @ngInject\nfunction updateOrderNoteDialogService($uibModal) {\n\n return {\n showDialog: showDialog\n };\n\n function showDialog(orderId, note, orderNumberExternal) {\n\n var modalDefaults = {\n backdrop: true,\n keyboard: true,\n controller: 'updateOrderNoteDialogController as vm',\n templateUrl: 'services/dialogs/updateOrderNoteDialog/updateOrderNoteDialog.tpl.html',\n size: 'md'\n };\n\n modalDefaults.resolve = {\n orderId: function() {\n return orderId;\n },\n note: function() {\n return note;\n },\n orderNumberExternal: function() {\n return orderNumberExternal;\n }\n };\n\n return $uibModal.open(modalDefaults).result;\n }\n}\n\n// @ngInject\nfunction updateOrderNoteDialogController($uibModalInstance, OrdersApiService, orderId, note, orderNumberExternal, loadSpinnerService, $sce) {\n var vm = this;\n\n vm.orderId = orderId;\n vm.note = note;\n vm.orderNumberExternal = orderNumberExternal;\n\n vm.closeModal = closeModal;\n vm.save = save;\n\n function closeModal(success, orderId, note, orderNumberExternal) {\n $uibModalInstance.close(success, orderId, note, orderNumberExternal);\n }\n\n function save() {\n loadSpinnerService.start('mainSpinner');\n if (vm.orderId === undefined || vm.orderId === null) { console.log('Order must be saved before updating order note.'); }\n if (vm.note === undefined || vm.note === null) { vm.note = ''; }\n if (vm.orderNumberExternal === undefined || vm.orderNumberExternal === null) { vm.orderNumberExternal = ''; }\n OrdersApiService.updateOrderNote(vm.orderId, vm.note, vm.orderNumberExternal).then(function(response) {\n $uibModalInstance.close({ success:true, orderId: vm.orderId, note: vm.note, orderNumberExternal: vm.orderNumberExternal});\n }, function(error) {\n console.log(error);\n }).finally(function() {\n loadSpinnerService.stop('mainSpinner');\n });\n }\n}\n\nangular\n .module('services.dialogs.updateOrderNoteDialog', [])\n .service('updateOrderNoteDialogService', updateOrderNoteDialogService)\n .controller('updateOrderNoteDialogController', updateOrderNoteDialogController);\n","// @ngInject\r\nfunction FeatureSwitchService($timeout, $rootScope, $q, DSHttpAdapter, DS, ResourcesService) {\r\n return {\r\n hasAdvancedReturnReason: hasAdvancedReturnReason,\r\n hasAdvancedImport: hasAdvancedImport,\r\n isAllowedToChangeColoursOnProducts: isAllowedToChangeColoursOnProducts\r\n };\r\n\r\n function hasAdvancedReturnReason() {\r\n var licenses = getLicense();\r\n var license = licenses['advancedreturnsmodule'];\r\n return (license !== undefined) ? license : false;\r\n }\r\n\r\n function hasAdvancedImport() \r\n {\r\n var licenses = getLicense();\r\n var license = licenses['advancedimportmodule'];\r\n return (license !== undefined) ? license : false;\r\n }\r\n\r\n function isAllowedToChangeColoursOnProducts() {\r\n var deferred = $q.defer();\r\n\r\n DSHttpAdapter.GET(DS.defaults.basePath + 'products/isallowedtochangecolours').then(function (response) {\r\n deferred.resolve(response.data);\r\n }, function (error) {\r\n deferred.reject(handleError(error));\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function getLicense() {\r\n return $rootScope.currentUser.licenseConfig;\r\n }\r\n\r\n function handleError(error) {\r\n return ResourcesService.handleResourceError(error);\r\n }\r\n}\r\n\r\nangular\r\n .module('services.featureSwitchService', [])\r\n .factory('FeatureSwitchService', FeatureSwitchService);\r\n","// @ngInject\nfunction FlexGridHelperService() {\n\n return {\n assembleOrderArticleFlexGridData: assembleOrderArticleFlexGridData,\n assembleArticleVariantsFlexGridData: assembleArticleVariantsFlexGridData\n };\n\n function assembleArticleVariantsFlexGridData(article, propertyToShow) {\n var VARIANT_DETAIL_ONE_PROPERTY_NAME = \"variantDetail1\";\n var VARIANT_DETAIL_TWO_PROPERTY_NAME = \"variantDetail2\";\n var VARIANT_DETAIL_THREE_PROPERTY_NAME = \"variantDetail3\"; // Currently not in use (2015-05-25)\n var VARIANT_DETAIL_FOUR_PROPERTY_NAME = \"variantDetail4\"; // Currently not in use (2015-05-25)\n var sortedVar1s = getSortedUniqueVariants(article, VARIANT_DETAIL_ONE_PROPERTY_NAME);\n var sortedVar2s = getSortedUniqueVariants(article, VARIANT_DETAIL_TWO_PROPERTY_NAME);\n var articleVariantsHashTable = generateArticleVariantsHashTable(article);\n var returnData = [];\n\n for (var i = 0; i < sortedVar1s.length; i++) {\n var gridRowData = {};\n var variant1 = sortedVar1s[i];\n gridRowData[\"v\"] = variant1.variantDetailName;\n for (var j = 0; j < sortedVar2s.length; j++) {\n var variant2 = sortedVar2s[j];\n var currentArtVar = articleVariantsHashTable[variant1.variantDetailName + variant2.variantDetailName];\n\n gridRowData[variant2.variantDetailName] = (currentArtVar && currentArtVar[propertyToShow]) ? currentArtVar[propertyToShow] : 0;\n }\n returnData.push(gridRowData);\n }\n return returnData;\n\n function getSortedUniqueVariants(article, propertyName) {\n var variantDetails = [];\n var variants = article.articleVariants;\n for (var i = 0; i < variants.length; i++) {\n var variantDetail = variants[i][propertyName];\n if (!arrayContains(variantDetails, variantDetail, \"variantDetailName\")) {\n variantDetails.push(variantDetail);\n }\n }\n variantDetails.sort(function(a, b) { return a.sortOrder - b.sortOrder; });\n return variantDetails;\n }\n\n function generateArticleVariantsHashTable(article) {\n var hashTable = {};\n var articleVariants = article.articleVariants;\n for (var i = 0; i < articleVariants.length; i++) {\n var var1Name = articleVariants[i].variantDetail1.variantDetailName;\n var var2Name = articleVariants[i].variantDetail2.variantDetailName;\n\n hashTable[var1Name + var2Name] = articleVariants[i];\n }\n return hashTable;\n }\n\n }\n\n function assembleOrderArticleFlexGridData(ordArt) {\n var VARIANT_DETAIL_ONE_PROPERTY_NAME = \"variantDetail1\";\n var VARIANT_DETAIL_TWO_PROPERTY_NAME = \"variantDetail2\";\n var VARIANT_DETAIL_THREE_PROPERTY_NAME = \"variantDetail3\"; // Currently not in use (2015-05-07)\n var VARIANT_DETAIL_FOUR_PROPERTY_NAME = \"variantDetail4\"; // Currently not in use (2015-05-07)\n var rows = ordArt.orderRows;\n var sortedVar1s = getSortedUniqueVariants(ordArt, VARIANT_DETAIL_ONE_PROPERTY_NAME);\n var sortedVar2s = getSortedUniqueVariants(ordArt, VARIANT_DETAIL_TWO_PROPERTY_NAME);\n var destinations = getUniqueDestinations(ordArt);\n var rowsHashTable = generateRowsHashTable(rows); // Keys are: destination.name + articleVariant1.name + articleVariant2.name\n var returnData = {};\n\n for (var r = 0; r < destinations.length; r++) {\n var destName = destinations[r].locationName;\n returnData[destName] = []; // Initialize fields with empty stacks.\n }\n returnData.destinations = destinations; // For looping out the locations\n\n for (var h = 0; h < destinations.length; h++) {\n var destinationName = destinations[h].locationName;\n for (var i = 0; i < sortedVar1s.length; i++) {\n var gridRowData = {};\n var variant1 = sortedVar1s[i];\n gridRowData[\"v\"] = variant1.variantDetailName;\n for (var j = 0; j < sortedVar2s.length; j++) {\n var variant2 = sortedVar2s[j];\n var currentDetail = rowsHashTable[destinationName + variant1.variantDetailName + variant2.variantDetailName];\n\n gridRowData[variant2.variantDetailName] = (currentDetail != null) ? currentDetail.quantity : 0;\n }\n returnData[destinationName].push(gridRowData);\n }\n }\n return returnData;\n\n // === assembleOrderArticleFlexGridData \"private\" functions ===\n function getSortedUniqueVariants(orderArticle, detailFieldNameString) {\n var details = []; // Details stack\n var orderRows = orderArticle.orderRows;\n for (var i = 0; i < orderRows.length; i++) {\n var detail = orderRows[i].articleVariant[detailFieldNameString];\n if (!arrayContains(details, detail, \"variantDetailName\")) {\n details.push(detail);\n }\n }\n details.sort(function(a, b) { return a.sortOrder - b.sortOrder; }); // Sort by sortOrder, ascending.\n return details;\n }\n\n function getUniqueDestinations(orderArticle) {\n var destinations = []; // Destinations stack\n var orderRows = orderArticle.orderRows;\n for (i = 0; i < orderRows.length; i++) {\n var destination = orderRows[i].destination;\n if (!arrayContains(destinations, destination, \"locationName\")) {\n destinations.push(destination);\n }\n }\n return destinations;\n }\n\n function generateRowsHashTable(orderRows) {\n var hashTable = {};\n for (var i = 0; i < orderRows.length; i++) {\n var var1Name = orderRows[i].articleVariant.variantDetail1.variantDetailName;\n var var2Name = orderRows[i].articleVariant.variantDetail2.variantDetailName;\n var destName = orderRows[i].destination.locationName;\n\n hashTable[destName + var1Name + var2Name] = orderRows[i];\n }\n return hashTable;\n }\n // === End ===\n }\n\n function arrayContains(array, object, comparisonFieldName) {\n for (var i = 0; i < array.length; i++) {\n if (array[i][comparisonFieldName] === object[comparisonFieldName]) {\n return true;\n }\n }\n return false;\n }\n\n}\n\nangular\n .module('services.flexGridHelperService', [])\n .factory('FlexGridHelperService', FlexGridHelperService);\n","function HelperService() {\n\n this.setUndefinedToNull = function(obj, values) {\n _.forEach(values, function(value) {\n if (obj[value] === undefined) {\n obj[value] = null;\n }\n });\n };\n\n\n this.getChangedData = function(original, edited, values) {\n var keysInOriginal = Object.keys(original);\n var keysInEdited = Object.keys(edited);\n _.forEach(keysInEdited, function(editKey) {\n if (!_.find(keysInOriginal, function(originalKey) { return originalKey === editKey; })) {\n original[editKey] = undefined;\n }\n });\n\n return this.findDiffs(_.pick(original, values), edited);\n };\n\n this.findDiffs = function(original, edited) {\n var diffs = {};\n for (var key in original) {\n var orgvalue = original[key];\n var editedvalue = edited[key];\n if (Array.isArray(orgvalue) || Array.isArray(editedvalue)) {\n if (!_.isEqual(orgvalue, editedvalue)) {\n diffs[key] = editedvalue;\n }\n } else {\n if (!angular.equals(orgvalue, editedvalue)) {\n diffs[key] = editedvalue;\n }\n }\n }\n return diffs;\n };\n}\n\nangular\n .module('services.helperService', [])\n .service('HelperService', HelperService);\n","// @ngInject\nfunction PricelistsHelperService() {\n return {\n recalculateRowPrices: recalculateRowPrices\n };\n\n function recalculateRowPrices(priceListItem, editorArticle, priceListHeads) {\n var priceListItemsToRecalculate = _.filter(editorArticle.priceListPrices, function(priceListPrice) {\n return priceListPrice.isCalculatedPrice;\n });\n\n _.forEach(priceListItemsToRecalculate, function(priceToRecalculate) {\n var priceListHead = _.find(priceListHeads, function(priceListHead) {\n return priceListHead.id === priceToRecalculate.priceListId;\n });\n var exchangeRate = (priceListHead.exchangeRate !== 0) ? priceListHead.exchangeRate : 1;\n priceToRecalculate.maxPrice = (priceListItem.maxPrice * priceListHead.priceFactor) / exchangeRate;\n priceToRecalculate.minPrice = (priceListItem.minPrice * priceListHead.priceFactor) / exchangeRate;\n\n // if (priceToRecalculate.smallestAllowedPrice > priceToRecalculate.maxPrice) {\n // priceToRecalculate.maxPrice = Math.min(priceToRecalculate.smallestAllowedPrice, priceListItem.originalPriceMax);\n // priceToRecalculate.minPrice = Math.min(priceToRecalculate.smallestAllowedPrice, priceListItem.originalPriceMin);\n // }\n\n if (priceListHead.psychologicalPrice !== undefined) {\n var priceIntervals = _.filter(priceListHead.psychologicalPrice.priceIntervals, function(priceInterval) {\n return priceToRecalculate.maxPrice > priceInterval.minValue && priceToRecalculate.maxPrice <= priceInterval.maxValue;\n });\n\n priceIntervals = _.sortBy(priceIntervals, function(priceInterval) {\n return -priceInterval.maxValue;\n });\n\n if (priceIntervals !== undefined && priceIntervals.length > 0) {\n var interval = priceIntervals[0];\n priceToRecalculate.maxPrice = interval.resultValue;\n priceToRecalculate.minPrice = interval.resultValue;\n }\n }\n\n // Round the prices to two decimals.\n priceToRecalculate.maxPrice = _.round(priceToRecalculate.maxPrice, 2);\n priceToRecalculate.minPrice = _.round(priceToRecalculate.minPrice, 2);\n\n });\n }\n}\n\nangular\n .module('services.pricelistHelperService', [])\n .factory('PricelistsHelperService', PricelistsHelperService);\n","// @ngInject\nfunction MockImportFileRowService(toastr, $timeout, $q) {\n return {\n validateFileRow: validateFileRow\n };\n\n function validateFileRow(fileRow) {\n var deferred = $q.defer();\n var returnList = [];\n\n var promise = $timeout(function() {\n if (fileRow.alternativeArticleNumber === '') {\n returnList.push({ severity:'error', property: 'AlternativeArticleNumber', errorType: 'NoValueAlternativeArticleNumber', displayMessage: 'importerror.wrongarticlenumber' });\n }\n\n if (fileRow.articleName === '') {\n returnList.push({ severity:'warning', property: 'articleName', errorType: 'NoValueArticleName', displayMessage: 'importerror.noarticlename' });\n }\n\n if (fileRow.descriptionShort) {\n returnList.push({ severity: 'warning', property: 'descriptionShort', errorType: 'NoValueDescriptionShort', displayMessage: 'importerror.nodescription' });\n }\n\n if (fileRow.itemGroupString === '') {\n returnList.push({ severity: 'error', property: 'ItemGroupString', errorType: 'NoValueItemGroup', displayMessage: 'importerror.nonexistentitemgroup' });\n }\n\n if (fileRow.variant1Name === '') {\n returnList.push({ severity:'error', property: 'variant1Name', errorType: 'NoValueVariant1Name', displayMessage: 'importerror.nonexistentcolor' });\n }\n\n if (fileRow.variant2Name === '') {\n returnList.push({ severity:'error', property: 'variant2Name', errorType: 'NoValueVariant2Name', displayMessage: 'importerror.nonexistentsize' });\n }\n\n if (fileRow.departmentCode === '') {\n returnList.push({ severity:'warning', property: 'departmentCode', errorType: 'NoValueDepartmentCode', displayMessage: 'importerror.nonexistent' });\n }\n\n if (fileRow.quantity === '') {\n returnList.push({ severity: 'warning', property: 'Quantity', errorType: 'NoValueQuantity', displayMessage: 'importerror.noquantity' });\n }\n\n if (fileRow.purchaseCost === '') {\n returnList.push({ severity: 'error', property: 'purchaseCost', errorType: 'NoValuePurchaseCost', displayMessage: 'importerror.nopurchasecost' });\n }\n\n if (fileRow.salesPrice === '') {\n returnList.push({ severity: 'error', property: 'salesPrice', errorType: 'NoValueSalesPrice', displayMessage: 'importerror.nosalesprice' });\n }\n\n if (fileRow.previousPrice === '') {\n returnList.push({ severity: 'warning', property: 'previousPrice', errorType: 'NoValuePreviousPrice', displayMessage: 'importerror.nopreviousprice' });\n }\n\n if (fileRow.subCategory === '') {\n returnList.push({ severity: 'warning', property: 'subCategory', errorType: 'NoValueSubcategory', displayMessage: 'importerror.nosubcategory' });\n }\n\n if (fileRow.intrastatCode === '') {\n returnList.push({ severity: 'warning', property: 'intrastatCode', errorType: 'NoValueIntrastatcode', displayMessage: 'importerror.nointrastatcode' });\n }\n\n if (fileRow.barcode === '') {\n returnList.push({ severity: 'error', property: 'barcode', errorType: 'NoValueBarcode', displayMessage: 'importerror.nobarcode' });\n }\n\n if (fileRow.collection === '') {\n returnList.push({ severity: 'warning', property: 'collection', errorType: 'NoValueCollection', displayMessage: 'importerror.nocollection' });\n }\n\n deferred.resolve(returnList);\n }, 2000);\n\n return deferred.promise;\n }\n\n}\n\n\nangular\n .module('services.mockImportFileRowService', [])\n .factory('MockImportFileRowService', MockImportFileRowService);\n","angular.module('services', [\n 'services.dialogs',\n 'services.authService',\n 'services.helperService',\n 'services.flexGridHelperService',\n 'services.toasterService',\n 'services.pricelistHelperService',\n 'services.barcodeService',\n 'services.mockImportFileRowService',\n 'services.featureSwitchService'\n]);\n","// @ngInject\nfunction ToasterService(toastr) {\n return {\n showSuccess: showSuccess,\n showWarning: showWarning,\n showError: showError,\n showInfo: showInfo\n };\n\n function showSuccess(message, title, timeOutTimer) {\n if(timeOutTimer !== undefined) {\n toastr.success(message, title, { timeOut: timeOutTimer});\n }else\n toastr.success(message, title);\n } \n\n function showWarning(message, title, timeOutTimer) {\n if(timeOutTimer !== undefined) {\n toastr.warning(message, title, {timeOut: timeOutTimer});\n }else\n toastr.warning(message, title);\n }\n\n function showError(message, title, timeOutTimer) {\n if(timeOutTimer !== undefined) {\n toastr.error(message, title, {timeOut: timeOutTimer});\n }else\n toastr.error(message, title);\n }\n\n function showInfo(message, title, timeOutTimer) {\n \n if(timeOutTimer !== undefined) {\n toastr.info(message, title, {timeOut: timeOutTimer});\n }else\n toastr.info(message, title);\n }\n\n\n}\n\n\nangular\n .module('services.toasterService', [])\n .factory('ToasterService', ToasterService);\n","import { useSyncExternalStore } from 'react';\nimport { createPortal } from 'react-dom';\nimport { createRoot } from 'react-dom/client';\nimport { getElements, subscribe } from '../bridge/bridgeManager';\n \nfunction Root() {\n return (\n <BridgeElements />\n );\n}\n \nfunction BridgeElements() {\n const elements = useSyncExternalStore(subscribe, getElements);\n \n return (\n <>\n {elements.map((e) =>\n createPortal(\n e.element,\n e.container,\n ),\n )}\n </>\n );\n}\n \nexport function renderReactRoot(container: Element) {\n const root = createRoot(container);\n root.render(<Root />);\n}","window.moment = require('moment/moment');\nrequire('angular-cookies/angular-cookies');\nrequire('js-data/dist/js-data');\nrequire('js-data-angular/dist/js-data-angular');\nrequire('angular-ui-router/release/angular-ui-router');\nrequire('lodash/lodash');\nrequire('angular-toastr/dist/angular-toastr.tpls');\nrequire('angular-ui-bootstrap/dist/ui-bootstrap');\nrequire('angular-ui-bootstrap/dist/ui-bootstrap-tpls.js');\nrequire('angular-gridster/src/angular-gridster');\nrequire('angular-google-chart/ng-google-chart');\nrequire('angular-chart.js/angular-chart');\nrequire('angular-translate/dist/angular-translate');\nrequire('angular-translate-storage-local/angular-translate-storage-local');\nrequire('angular-translate-storage-cookie/angular-translate-storage-cookie');\nrequire('angular-translate-loader-url');\nrequire('ui-select/dist/select');\nrequire('d3/d3');\nrequire('../modules/angular-spinner/angular-spinner');\nrequire('spin/dist/spin');\nrequire('flexmonster/flexmonster.full')\nrequire('pivot-xml-report-converter/js/fm-converter')\nrequire('./less/app.less');\nwindow.XLSX = require('xlsx/xlsx.mjs');\nimport { renderReactRoot } from './react/Root';\n\n// Dynamically require so Webpack finds them all.\nconst components = require.context('.', true, /^(?!.*\\/assets\\/).*\\.js$/);\ncomponents.keys().forEach(components);\n\n\n// Populate the AngularJS $templateCache\nangular.module('app').run([\n '$templateCache',\n ($templateCache) => {\n const templates = require.context('../../', true, /^.*\\.tpl\\.html/);\n templates.keys().forEach((key) => {\n let templatePath = key.slice(2);\n if (templatePath.startsWith('Front/src/app/')) {\n templatePath = templatePath.slice('Front/src/app/'.length);\n } else if (templatePath.startsWith('Front/src/common/')) {\n templatePath = templatePath.slice('Front/src/common/'.length);\n }\n return $templateCache.put(templatePath, templates(key));\n });\n },\n ]);\n\n renderReactRoot(document.getElementById('react-root'));","(function() {\n \"use strict\";\n angular.module('app.version', [])\n .value('currentVersion', '<%= newVersion %>');\n})();\n","// Module\nvar code = \"<div class=\\\"app app-header-fixed\\\" id=\\\"app\\\" ui-view=\\\"app-content\\\">\\n\\n</div>\\n<div load-spinner spinner-name=\\\"mainSpinner\\\"></div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .ta-editor {\\n min-height: 180px;\\n height: auto;\\n overflow: auto;\\n font-family: inherit;\\n font-size: 100%;\\n }\\n</style>\\n<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n\\n <div class=\\\"col\\\">\\n <div class=\\\"wrapper-lg\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-1\\\">\\n <ul class=\\\"nav nav-pills nav-stacked\\\">\\n <li role=\\\"presentation\\\" ng-repeat=\\\"template in vm.templates\\\" role=\\\"presentation\\\" class=\\\"{{ template.id == vm.selectedTemplate.id ? 'active':''}}\\\" >\\n <a ng-click=\\\"vm.selectTemplate(template)\\\">{{(\\\"analysis.pdfTemplateType\\\" + template.type) | translate}}</a>\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"col-md-11\\\">\\n <label for=\\\"htmlEditor\\\">{{(\\\"analysis.pdfTemplateType\\\" + vm.selectedTemplate.type) | translate}}</label>\\n <div text-angular=\\\"text-angular\\\" name=\\\"htmlEditor\\\" ng-model=\\\"vm.selectedTemplate.html\\\" ></div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <button type=\\\"button\\\" ng-click=\\\"vm.save()\\\" class=\\\"btn btn-sm btn-primary\\\" >{{'common.save' | translate}}</button>\\n </div>\\n \\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div id=\\\"flexmonsterScripts\\\">\\n</div>\\n<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"row\\\">\\n <toaster-container></toaster-container>\\n <ul id=\\\"reportTabs\\\" class=\\\"nav nav-pills\\\">\\n <li role=\\\"presentation\\\" ng-disabled=\\\"vm.isLoadingReport\\\" ng-repeat=\\\"report in vm.reports\\\" class=\\\"{{ report.id == vm.selectedReport.id ? 'active':''}}\\\">\\n <a ng-if=\\\"report.id > -2\\\" ng-click=\\\"vm.loadReport(report.id)\\\" popover-placement=\\\"bottom\\\" popover=\\\"{{report.description}}\\\" popover-trigger=\\\"mouseenter\\\">{{report.name}}</a>\\n <a ng-if=\\\"report.id == -2\\\" ng-click=\\\"vm.selectUserReports()\\\">{{report.name}}</a>\\n <a ng-if=\\\"report.id == -3\\\" ng-click=\\\"vm.selectSharedReports()\\\">{{report.name}}</a>\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"row\\\" ng-show=\\\"vm.editReportTemplates\\\">\\n <div class=\\\"col-md-2 hide\\\">\\n <wj-combo-box style=\\\"float:left\\\" control=\\\"cbSelectLevel\\\" id=\\\"cbSelectLevel\\\" items-source=\\\"vm.reportLevels\\\" ng-disabled=\\\"vm.isLoadingReport\\\"\\n is-editable=\\\"false\\\"\\n placeholder=\\\"NivÃ¥\\\"\\n display-member-path=\\\"uniqueName\\\"\\n selected-value-path=\\\"uniqueName\\\"\\n is-dropped-down-changed=\\\"vm.cbSelectLevelChanged(s)\\\">\\n </wj-combo-box>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.collapseRows()\\\"><i class=\\\"fa fa-compress\\\"></i></button>\\n </div>\\n <ui-select ng-model=\\\"vm.selectedDataSource\\\" enter-as-tab class=\\\"col-md-2 enterAsTab\\\">\\n <ui-select-match placeholder=\\\"{{'analysis.datasource' | translate}}\\\">{{$select.selected.name}}</ui-select-match>\\n <ui-select-choices repeat=\\\"dataSource in vm.dataSources\\\">\\n <span>{{dataSource.name}}</span>\\n </ui-select-choices>\\n </ui-select>\\n <input type=\\\"text\\\" class=\\\"col-md-2 enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.selectedReport.name\\\" enter-as-tab placeholder=\\\"{{'analysis.reportName' | translate}}\\\" />\\n <textarea class=\\\"col-md-2\\\" name=\\\"name\\\" ng-model=\\\"vm.selectedReport.description\\\" placeholder=\\\"{{'analysis.reportDescription' | translate}}\\\" enter-as-tab />\\n <div class=\\\"col-md-2\\\">\\n <button type=\\\"button\\\" ng-click=\\\"vm.removeMeasures()\\\" class=\\\"btn btn-sm btn-primary\\\" ng-disabled=\\\"vm.selectedReport.id === -1 || vm.isLoadingReport\\\">{{'common.removeMeasures' | translate}}</button>\\n <button type=\\\"button\\\" ng-click=\\\"vm.saveReport()\\\" class=\\\"btn btn-sm btn-primary\\\" ng-disabled=\\\"vm.selectedReport.id === -1 || vm.isLoadingReport\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" ng-click=\\\"vm.convertAllReports()\\\">Konvertera rapporter</button>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"pull-left hide\\\" ng-show=\\\"!vm.editReportTemplates\\\">\\n <wj-combo-box style=\\\"float:left\\\" control=\\\"cbSelectLevel2\\\" id=\\\"cbSelectLevel2\\\" items-source=\\\"vm.reportLevels\\\" ng-disabled=\\\"vm.isLoadingReport\\\"\\n is-editable=\\\"false\\\"\\n placeholder=\\\"NivÃ¥\\\"\\n display-member-path=\\\"uniqueName\\\"\\n selected-value-path=\\\"uniqueName\\\"\\n is-dropped-down-changed=\\\"vm.cbSelectLevelChanged(s)\\\">\\n </wj-combo-box>\\n <a><i class=\\\"fa fa-compress\\\" ng-click=\\\"vm.collapseRows()\\\"></i></a>\\n </div>\\n <div class=\\\"col-lg-2\\\" ng-show=\\\"vm.showUserReportList\\\">\\n <wj-combo-box control=\\\"cbEditUserReport\\\" id=\\\"cbEditUserReport\\\" items-source=\\\"vm.userReports\\\" ng-disabled=\\\"vm.isLoadingReport\\\"\\n is-editable=\\\"false\\\"\\n placeholder=\\\"rapportnamn\\\"\\n display-member-path=\\\"name\\\"\\n selected-value-path=\\\"id\\\"\\n is-dropped-down-changed=\\\"vm.editFormSelectedReportChanged(s)\\\">\\n </wj-combo-box>\\n </div>\\n <div class=\\\"col-lg-5\\\" ng-show=\\\"vm.showUserReportList && vm.selectedUserReport.id != -1 && !vm.isLoadingReport\\\">\\n <div class=\\\"form-inline\\\">\\n <div class=\\\"form-group\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.deleteUserReport()\\\">{{'common.remove' | translate}}</button>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.selectedUserReport.name\\\" placeholder=\\\"{{'analysis.reportName' | translate}}\\\" ng-enter-as-tab />\\n <label class=\\\"control-label\\\">{{'analysis.shared' | translate}}</label>\\n <input type=\\\"checkbox\\\" class=\\\"form-control\\\" name=\\\"shared\\\" ng-model=\\\"vm.selectedUserReport.isShared\\\" />\\n </div>\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.editUserReport()\\\">{{'common.save' | translate}}</button>\\n </span>\\n </div>\\n </div>\\n <div class=\\\"col-lg-2\\\" ng-show=\\\"vm.showSharedReportList\\\">\\n <wj-combo-box control=\\\"cbSharedReport\\\" id=\\\"cbSharedReport\\\" items-source=\\\"vm.sharedReports\\\" ng-disabled=\\\"vm.isLoadingReport\\\"\\n is-editable=\\\"false\\\"\\n placeholder=\\\"rapportnamn\\\"\\n display-member-path=\\\"name\\\"\\n selected-value-path=\\\"id\\\"\\n is-dropped-down-changed=\\\"vm.selectedSharedReportChanged(s)\\\">\\n </wj-combo-box>\\n </div>\\n <div class=\\\"col-lg-5\\\" ng-show=\\\"!vm.showUserReportList && !vm.editReportTemplates\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-model=\\\"saveAsFormCollapsed\\\" ng-click=\\\"showSaveAsForm=!showSaveAsForm\\\" ng-show=\\\"!showSaveAsForm\\\">{{'common.saveAs' | translate}}</button>\\n <div class=\\\"form-inline\\\" ng-show=\\\"showSaveAsForm\\\">\\n <div class=\\\"form-group\\\">\\n <wj-combo-box control=\\\"cbSaveUserReport\\\" items-source=\\\"vm.userReports\\\"\\n is-editable=\\\"true\\\"\\n placeholder=\\\"rapportnamn\\\"\\n display-member-path=\\\"name\\\"\\n selected-value-path=\\\"name\\\">\\n </wj-combo-box>\\n </div>\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-disabled=\\\"!vm.canSaveUserReport();\\\" ng-click=\\\"vm.saveNewUserReport();showSaveAsForm=false;\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"showSaveAsForm=false\\\">{{'common.cancel' | translate}} </button>\\n </span>\\n </form>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div id=\\\"pivotContainer\\\"></div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <div class=\\\"row\\\">\\n <uib-tabset active=\\\"vm.activeTabIndex\\\">\\n <uib-tab ng-repeat=\\\"group in vm.reportGroups\\\" ng-click=\\\"vm.selectTab(group.name)\\\">\\n <uib-tab-heading>\\n <a ng-click=\\\"\\\">\\n <i class=\\\"fa {{vm.showNavigation && vm.selectedTab === group.name ? 'fa-chevron-down':'fa-chevron-right'}}\\\"></i> {{group.name}}\\n </a>\\n </uib-tab-heading>\\n <div class=\\\"row\\\" ng-show=\\\"vm.showNavigation === true\\\">\\n <div class=\\\"col-md-3\\\">\\n <div id=\\\"report_list\\\" class=\\\"list-group\\\" style=\\\"max-height:200px;min-height:300px; overflow-y:auto; max-width:500px; cursor:pointer\\\">\\n <div class=\\\"list-group-item nav-list-sorting\\\">\\n {{'analysis.sort' | translate}}:\\n <a href=\\\"#\\\" ng-click=\\\"vm.sortDescending($event)\\\">{{'analysis.sort.descending' | translate}}</a>\\n -\\n <a href=\\\"#\\\" ng-click=\\\"vm.sortAscending($event)\\\">{{'analysis.sort.ascending' | translate}}</a>\\n </div>\\n <div id=\\\"report_{{report.id}}\\\" class=\\\"list-group-item\\\" ng-class=\\\"{focus: vm.selectedReport === report}\\\" ng-repeat=\\\"report in group.reports\\\"\\n ng-click=\\\"vm.navigate(report, false)\\\" data-toggle=\\\"tooltip\\\" title=\\\"{{report.description}}\\\">\\n <div style=\\\"color:green\\\" ng-if=\\\"report.changed === undefined && group.reportGroupType === 'userReport'\\\">\\n <small><i class=\\\"fa fa-asterisk\\\"></i></small> {{'common.new' | translate}}\\n </div>\\n <span>\\n {{report.name.length > 0 ? report.name: '-'}}\\n </span>\\n <div class=\\\"pull-right\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm\\\" ng-show=\\\"group.name.toLowerCase() === vm.Constants.ReportGroupName['sales'].toLowerCase() && report.name.toLowerCase() === vm.Constants.ReportName['salesWhen'].toLowerCase()\\\" ng-click=\\\"vm.modalDialog.show()\\\">{{'analysis.filter' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm\\\" ng-disabled=\\\"vm.isLoading && vm.loadedReport.id === report.id\\\" ng-click=\\\"vm.showNavigation=false;vm.navigate(report, true)\\\">{{'common.show' | translate}}</button>\\n </div>\\n <wj-popup control=\\\"vm.modalDialog\\\" modal=\\\"true\\\" hide-trigger=\\\"None\\\">\\n <form class=\\\"ng-pristine ng-valid ng-scope\\\"> \\n <h4 class=\\\"modal-header\\\">\\n {{'analysis.filtering' | translate}}\\n <button type=\\\"button\\\" tabindex=\\\"-1\\\" class=\\\"close wj-hide\\\">×</button>\\n </h4>\\n <div class=\\\"modal-body\\\">\\n <div>\\n <label>{{'analysis.startDate' | translate}}</label><br>\\n <wj-input-date\\n value=\\\"vm.startDate\\\"\\n min=\\\"2016-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n \\n </div>\\n </div>\\n <div class=\\\"modal-footer\\\">\\n <button class=\\\"btn btn-primary wj-hide\\\" ng-click=\\\"vm.showNavigation=false;vm.generate()\\\">\\n {{'analysis.generate' | translate}}\\n </button>\\n <button class=\\\"btn btn-default wj-hide\\\">\\n {{'analysis.close' | translate}}\\n </button>\\n </div>\\n </form>\\n </wj-popup>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-md-4\\\">\\n <div class=\\\"panel panel-default\\\" ng-show=\\\"vm.selectedReport !== undefined\\\">\\n <div class=\\\"panel-body\\\">\\n <form ng-if=\\\"vm.selectedGroup.reportGroupType === 'userReport'\\\" class=\\\"form-horizontal\\\" ng-model-options=\\\"{ updateOn: 'submit' }\\\" ng-submit=\\\"vm.saveReport()\\\">\\n <div ng-if=\\\"vm.isValidDate(vm.selectedReport.changed)\\\" class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <small class=\\\"pull-right\\\">{{'common.changed' | translate}}: {{vm.formatDate(vm.selectedReport.changed, \\\"YYYY-MM-DD\\\")}}</small>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.isValidDate(vm.selectedReport.created)\\\" class=\\\"row\\\">\\n <div class=\\\"col-sm-12 pull-right\\\">\\n <small class=\\\"pull-right\\\">{{'common.created' | translate}}: {{vm.formatDate(vm.selectedReport.created, \\\"YYYY-MM-DD\\\")}}</small>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'analysis.reportName' | translate}}</label>\\n <div class=\\\"col-sm-10\\\">\\n <input class=\\\"form-control enterAsTab\\\" type=\\\"text\\\" ng-model=\\\"vm.selectedReport.name\\\" ng-enter-as-tab />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'analysis.description' | translate}}</label>\\n <div class=\\\"col-sm-10\\\">\\n <textarea class=\\\"form-control enterAsTab\\\" type=\\\"text\\\" ng-model=\\\"vm.selectedReport.description\\\" ng-enter-as-tab />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-offset-2 col-sm-10\\\">\\n <div class=\\\"checkbox\\\" ng-hide=\\\"!vm.canPublishReport()\\\">\\n <label>\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.selectedReport.isShared\\\" />\\n {{'analysis.shared' | translate}}\\n </label>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'analysis.sort' | translate}}</label>\\n <div class=\\\"col-sm-10\\\">\\n <small><a ng-click=\\\"vm.moveUp(vm.selectedReport)\\\"><i style=\\\"vertical-align:text-bottom\\\" class=\\\"fa fa-chevron-up\\\"></i></a></small><br />\\n <small><a ng-click=\\\"vm.moveDown(vm.selectedReport)\\\"><i style=\\\"vertical-align:text-top\\\" class=\\\"fa fa-chevron-down\\\"></i></a></small>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-offset-2 col-sm-10\\\">\\n <br />\\n <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-primary\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" ng-click=\\\"vm.deleteReport()\\\" class=\\\"btn btn-sm pull-right\\\">{{'common.delete' | translate}}</button>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div ng-show=\\\"vm.loadedReportPath.length > 0 && vm.loadedReport !== vm.selectedReport\\\" class=\\\"col-sm-12 alert alert-danger\\\" role=\\\"alert\\\">\\n <p>\\n {{'analysis.changesMustBeSavedFrom' | translate}}\\n </p>\\n </div>\\n </div>\\n </form>\\n <form ng-if=\\\"vm.selectedGroup.reportGroupType === 'sharedReport' || vm.selectedGroup.reportGroupType === 'templateReport'\\\" class=\\\"form-horizontal\\\">\\n\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-8\\\">\\n <h4>{{vm.selectedReport.name}}</h4>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n <small ng-if=\\\"vm.isValidDate(vm.selectedReport.changed)\\\" class=\\\"pull-right\\\">{{'common.changed' | translate}}: {{vm.formatDate(vm.selectedReport.changed, \\\"YYYY-MM-DD\\\")}}</small> <br />\\n <small ng-if=\\\"vm.isValidDate(vm.selectedReport.created)\\\" class=\\\"pull-right\\\">{{'common.created' | translate}}: {{vm.formatDate(vm.selectedReport.created, \\\"YYYY-MM-DD\\\")}}</small>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n {{vm.selectedReport.description}}\\n </div>\\n </div>\\n <br>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.copySelectedReport()\\\">{{ 'analysis.addToMyReports' | translate}}</button>\\n </div>\\n </div>\\n </form>\\n </div>\\n </div>\\n </div>\\n </div>\\n </uib-tab>\\n </uib-tabset>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-2\\\">\\n \\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\"> \\n <div id=\\\"pivotContainer\\\"></div>\\n </div>\\n </div>\\n\\n </div>\\n\\n </div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <user-report></user-report>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveAccount()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewAccount\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteAccount()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewAccount\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'account.accountNumber'\\\">\\n <div ng-if=\\\"!vm.isNewAccount && !vm.isEditing\\\">\\n <label>{{vm.account.accountNumber}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewAccount || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isAccountNumberValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"accountNumber\\\" ng-model=\\\"vm.account.accountNumber\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'account.accountName'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.account.accountName}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"accountName\\\" ng-model=\\\"vm.account.accountName\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'account.isRoundingAccount'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.account.isRoundingAccount ? ('common.true' | translate) : ('common.false' | translate)}}</span>\\n <label class=\\\"i-checks m-t-xs\\\" ng-show=\\\"vm.isEditing\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.account.isRoundingAccount\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row> \\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.accounts.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.accounts.account', {accountId: account.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"account in vm.accounts | orderBy: 'accountNumber'\\\" ng-class=\\\"{'focus m-l-none': account.id === vm.selectedAccountId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': account.id === vm.selectedAccountId }\\\">\\n <span class=\\\"text-muted\\\">{{account.accountNumber}}</span> <span class=\\\"sm-label\\\">{{account.accountName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveCollection()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewCollection\\\"> {{'common.cancel' | translate}} </button>\\n <span> {{vm.collection.collectionCode + \\\" \\\" + vm.collection.collectionDescription}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'articlecollection.code'\\\">\\n <span ng-if=\\\"!vm.isNewCollection\\\">{{ vm.collection.collectionCode }}</span>\\n <div>\\n <input id=\\\"collectionCode\\\" name=\\\"collectionCode\\\" ng-if=\\\"vm.isEditing && vm.isNewCollection\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.collectionCode\\\" enter-as-tab required /> \\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.description'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.collectionDescription }}</span>\\n <div>\\n <input name=\\\"collectionDescription\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.collectionDescription\\\" enter-as-tab required /> \\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.isDefaultCollection'\\\" ng-if=\\\"!vm.isNewCollection\\\">\\n <div>\\n <input type=\\\"checkbox\\\" name=\\\"isDefaultCollection\\\" ng-model=\\\"vm.collection.isDefaultCollection\\\" ng-disabled=\\\"true\\\" />\\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.isCurrentDescription' | translate}}\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.articleCollectionType'\\\">\\n <span ng-if=\\\"!vm.isNewCollection && vm.collection.articleCollectionType === 0\\\">{{'articlecollection.articleCollectionTypeStatic' | translate}}</span>\\n <span ng-if=\\\"!vm.isNewCollection && vm.collection.articleCollectionType === 1\\\">{{'articlecollection.articleCollectionTypeRolling' | translate}}</span>\\n <div ng-if=\\\"vm.isNewCollection && vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.collection.selectedArticleCollectionType\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n <ul>\\n <li>{{'articlecollection.articleCollectionTypeDescription1' | translate}}</li>\\n <li>{{'articlecollection.articleCollectionTypeDescription2' | translate}}</li>\\n </ul>\\n </div>\\n </ca-form-group-row>\\n\\n <!-- Only if static collection type -->\\n <ca-form-group-row label=\\\"'articlecollection.fromDate'\\\" ng-if=\\\"vm.collection.articleCollectionType === 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.fromDate | date:'yyyy-MM-dd' }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <wj-input-date\\n value=\\\"vm.collection.fromDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'articlecollection.toDate'\\\" ng-if=\\\"vm.collection.articleCollectionType === 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.toDate | date:'yyyy-MM-dd' }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <wj-input-date\\n value=\\\"vm.collection.toDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n </ca-form-group-row>\\n\\n <!-- Only if rolling collection type -->\\n <ca-form-group-row label=\\\"'articlecollection.offset'\\\" ng-if=\\\"vm.collection.articleCollectionType === 1\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.offset }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input name=\\\"selectedOffset\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.offset\\\" enter-as-tab required /> \\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.offsetDescription' | translate}}\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.duration'\\\" ng-if=\\\"vm.collection.articleCollectionType === 1\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.duration }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input name=\\\"selectedDuration\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.duration\\\" enter-as-tab required /> \\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.durationDescription' | translate}}\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'articlecollection.currentBehaviour'\\\">\\n <span ng-if=\\\"vm.collection.currentBehaviour === 0 && !vm.isEditing\\\">{{'articlecollection.currentBehaviourDoNotSetCurrent' | translate}}</span>\\n <span ng-if=\\\"vm.collection.currentBehaviour === 1 && !vm.isEditing\\\">{{'articlecollection.currentBehaviourSetCurrent' | translate}}</span>\\n <span ng-if=\\\"vm.collection.currentBehaviour === 2 && !vm.isEditing\\\">{{'articlecollection.currentBehaviourSetNotCurrent' | translate}}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.collection.selectedCurrentBehaviour\\\" choices=\\\"vm.currentBehaviours\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.currentBehaviourDescription1' | translate}}<br>\\n <ul>\\n <li>{{'articlecollection.currentBehaviourDescription2' | translate}}</li>\\n <li>{{'articlecollection.currentBehaviourDescription3' | translate}}</li>\\n <li>{{'articlecollection.currentBehaviourDescription4' | translate}}</li>\\n </ul>\\n </div>\\n </ca-form-group-row>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\"\\n ng-click=\\\"$state.go('base.articlecollections.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\"\\n ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.articlecollections.articlecollection', {collectionId: collection.id})\\\"\\n class=\\\"list-group-item m-l\\\" ng-repeat=\\\"collection in vm.collections\\\"\\n ng-class=\\\"{'focus': collection.id === vm.selectedCollectionId}\\\">\\n <div class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis\\\"\\n style=\\\"font-weight: bold;\\\">{{collection.collectionCode}} -\\n {{collection.collectionDescription}}</span>\\n <div style=\\\"clear: both; height: 1px;\\\"> </div>\\n </div>\\n <div>\\n <span class=\\\"pull-left text-ellipsis\\\">\\n {{ vm.getFullDate(collection.fromDate) }} - {{ vm.getFullDate(collection.toDate) }}\\n </span>\\n <span class=\\\"pull-right text-ellipsis\\\"\\n ng-if=\\\"collection.isCurrent\\\">{{'articlecollection.isCurrent' | translate}}</span>\\n <div style=\\\"clear: both; height: 1px;\\\"> </div>\\n </div>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<form name=\\\"articleTypeForm\\\" ng-submit=\\\"vm.save()\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"articleTypeForm.$invalid\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNew\\\"> {{'common.cancel' | translate}} </button>\\n <!-- <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.delete()\\\" ng-if=\\\"!vm.isNew\\\"> {{'common.delete' | translate}} </button> -->\\n <span> {{vm.articleType.name}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.articleTypeName'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.articleType.articleTypeName }}</span>\\n <div ng-class=\\\"{'has-error': articleTypeForm.articleTypeName.$invalid && articleTypeForm.articleTypeName.$touched}\\\">\\n <input name=\\\"articleTypeName\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.articleType.articleTypeName\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"articleTypeForm.articleTypeName.$invalid && articleTypeForm.articleTypeName.$touched\\\">{{'common.required' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.articleSystemType'\\\">\\n <span>{{ vm.articleType.articleSystemType }}</span>\\n <!-- <div ng-class=\\\"{'has-error': articleTypeForm.articleSystemType.$invalid && articleTypeForm.articleSystemType.$touched}\\\"> -->\\n <!-- <input name=\\\"articleSystemType\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.articleType.type\\\" enter-as-tab required /> -->\\n <!-- <span class=\\\"help-block\\\" ng-show=\\\"articleTypeForm.articleSystemType.$invalid && articleTypeForm.articleSystemType.$touched\\\">{{'common.required' | translate}}</span> -->\\n <!-- </div> -->\\n </ca-form-group-row>\\n </div>\\n </div>\\n</form>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <!-- <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.articleTypes.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span> -->\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.articletypes.articletype', {articleTypeId: articleType.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"articleType in vm.articleTypes\\\" ng-class=\\\"{'focus m-l-none': articleType.id === vm.selectedArticleTypeId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': articleType.id === vm.selectedArticleTypeId }\\\">\\n <span class=\\\"text-ellipsis lg-label\\\">{{articleType.articleTypeName}}</span> <span class=\\\"text-ellipsis lg-label\\\">{{articleType.articleSystemType}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div class=\\\"col w-xl lter b-r\\\" ui-view=\\\"baseList\\\"></div>\\n \\n <div class=\\\"col w-xxl bg-white-only\\\" ui-view=\\\"baseView\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.countries.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.countries.country', {countryId: country.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"country in vm.countries\\\" ng-class=\\\"{'focus m-l-none': country.id === vm.selectedCountryId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': country.id === vm.selectedCountryId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{country.name}}</span>\\n <span class=\\\"pull-right text-ellipsis lg-label\\\">{{country.code}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveCountry()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewCountry\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteCountry()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewCountry\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <uib-tabset active=\\\"active\\\">\\n <uib-tab index=\\\"0\\\" heading=\\\"{{ 'role.country' | translate }}\\\">\\n <ca-form-group-row label=\\\"'country.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.country.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.country.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'country.code'\\\">\\n <div ng-if=\\\"!vm.isNewCountry && !vm.isEditing\\\">\\n <label>{{vm.country.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewCountry || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isCountryCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.country.code\\\" maxlength=\\\"3\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n </uib-tab>\\n <uib-tab index=\\\"1\\\" heading=\\\"{{ 'country.vat' | translate }}\\\">\\n <table class=\\\"table\\\">\\n <tbody>\\n <tr ng-repeat=\\\"countryVat in vm.country.vats | orderBy: 'vat.vatCode'\\\">\\n <td style=\\\"width: 300px\\\">\\n {{countryVat.vat.vatCode}} {{countryVat.vat.vatName}}\\n </td>\\n <td>\\n <div ng-if=\\\"!vm.isEditing\\\">{{countryVat.vatRate | number}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"countryVat.vatRate\\\" enter-as-tab />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table> \\n </uib-tab>\\n </uib-tabset>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.currencies.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.currencies.currency', {currencyId: currency.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"currency in vm.currencies\\\" ng-class=\\\"{'focus m-l-none': currency.id === vm.selectedCurrencyId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': currency.id === vm.selectedCurrencyId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{currency.code}}</span><span class=\\\"text-ellipsis lg-label\\\">{{currency.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<form name=\\\"currencyForm\\\" ng-submit=\\\"vm.save()\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"currencyForm.$invalid\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNew\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.delete()\\\" ng-if=\\\"!vm.isNew\\\"> {{'common.delete' | translate}} </button>\\n <span> {{vm.currency.code + \\\" \\\" + vm.currency.name}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'currency.code'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.currency.code }}</span>\\n <div ng-class=\\\"{'has-error': currencyForm.currencyCode.$invalid && currencyForm.currencyCode.$touched}\\\">\\n <input name=\\\"currencyCode\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.currency.code\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"currencyForm.currencyCode.$invalid && currencyForm.currencyCode.$touched\\\">{{'common.required' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'currency.name'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.currency.name }}</span>\\n <div ng-class=\\\"{'has-error': currencyForm.currencyName.$invalid && currencyForm.currencyName.$touched}\\\">\\n <input name=\\\"currencyName\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.currency.name\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"currencyForm.currencyName.$invalid && currencyForm.currencyName.$touched\\\">{{'common.required' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'currency.number'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.currency.number }}</span>\\n <div ng-class=\\\"{'has-error': currencyForm.currencyNumber.$invalid && currencyForm.currencyNumber.$touched}\\\">\\n <input name=\\\"currencyNumber\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" minlength=\\\"3\\\" maxlength=\\\"3\\\" oninput=\\\"this.value=this.value.replace(/[^0-9]/g,'');\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.currency.number\\\" placeholder=\\\"000\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"currencyForm.currencyNumber.$invalid && currencyForm.currencyNumber.$touched\\\">{{'common.required' | translate}} 3{{'common.piecesAbbr' | translate}} </span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'currency.currencyRate'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.currency.currencyRate | number }}</span>\\n <div ng-class=\\\"{'has-error': currencyForm.currencyRate.$invalid && currencyForm.currencyRate.$touched}\\\">\\n <input name=\\\"currencyRate\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"any\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.currency.currencyRate\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"currencyForm.currencyRate.$invalid && currencyForm.currencyRate.$touched\\\">{{'common.required' | translate}}</span>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row\\\" >\\n <div style=\\\"padding-top: 15px;\\\" >\\n <a style=\\\"font-size: 20px; \\\" class=\\\"ca-celllink\\\" href=\\\"https://sv.wikipedia.org/wiki/ISO_4217\\\" target=\\\"_blank\\\">{{'role.currency' | translate}} <span style=\\\"text-transform: lowercase;\\\">{{'currency.code' | translate}}/{{'currency.number' | translate}} {{'common.information' | translate}}:</span> ISO 4217</a>\\n </div>\\n </ca-form-group-row> \\n </div>\\n </div>\\n</form>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveCustomerGroup()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewCustomerGroup\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteCustomerGroup()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewCustomerGroup\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'customergroup.code'\\\">\\n <div ng-if=\\\"!vm.isNewCustomerGroup && !vm.isEditing\\\">\\n <label>{{vm.customergroup.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewCustomerGroup || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isCustomerGroupCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.customergroup.code\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'customergroup.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.customergroup.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.customergroup.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.customergroups.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.customergroups.customergroup', {customergroupId: customergroup.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"customergroup in vm.customergroups\\\" ng-class=\\\"{'focus m-l-none': customergroup.id === vm.selectedCustomerGroupId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': customergroup.id === vm.selectedCustomerGroupId }\\\">\\n <span class=\\\"sm-label\\\">{{customergroup.code}} {{customergroup.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"row\\\" style=\\\"padding: 0 20px;\\\">\\n <dashboard></dashboard>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveDeliveryPlanningTemplate()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewDeliveryPlanningTemplate\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <!--<ca-form-group-row label=\\\"'deliveryplanningtemplates.deliveryPlanningTemplateName'\\\">-->\\n <ca-form-group-row label=\\\"'Mall benämning'\\\">\\n <div>\\n <label>{{vm.deliveryplanningtemplate.deliveryPlanningTemplateName}}</label>\\n </div>\\n </ca-form-group-row>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.deliveryplanningtemplates.deliveryplanningtemplate', {deliveryplanningtemplateId: deliveryplanningtemplate.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"deliveryplanningtemplate in vm.deliveryplanningtemplates\\\" ng-class=\\\"{'focus m-l-none': deliveryplanningtemplate.id === vm.selectedDeliveryPlanningTemplateId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': deliveryplanningtemplate.id === vm.selectedDeliveryPlanningTemplateId }\\\">\\n <span class=\\\"sm-label\\\">{{deliveryplanningtemplate.deliveryPlanningTemplateName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveDeliveryTerm()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewDeliveryTerm\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteDeliveryTerm()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewDeliveryTerm\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'deliveryterm.code'\\\">\\n <div ng-if=\\\"!vm.isNewDeliveryTerm && !vm.isEditing\\\">\\n <label>{{vm.deliveryterm.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewDeliveryTerm || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isDeliveryTermCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.deliveryterm.code\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'deliveryterm.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.deliveryterm.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.deliveryterm.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'deliveryterm.leadTimeInDays'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.deliveryterm.leadTimeInDays}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.deliveryterm.leadTimeInDays\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <hr>\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>\\n {{ 'common.language' | translate}}\\n </th>\\n <th>\\n {{ 'deliveryterm.name' | translate}}\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"localization in vm.deliveryterm.localizations | orderBy: 'language.name'\\\">\\n <td style=\\\"width: 150px\\\">\\n {{localization.language.name}}\\n </td>\\n <td>\\n <div ng-if=\\\"!vm.isEditing\\\">{{localization.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"localization.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.deliveryterms.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.deliveryterms.deliveryterm', {deliverytermId: deliveryterm.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"deliveryterm in vm.deliveryterms\\\" ng-class=\\\"{'focus m-l-none': deliveryterm.id === vm.selectedDeliveryTermId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': deliveryterm.id === vm.selectedDeliveryTermId }\\\">\\n <span class=\\\"sm-label\\\">{{deliveryterm.code}} {{deliveryterm.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveInvoiceType()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewInvoiceType\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n <ca-form-group-row label=\\\"'invoicetype.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.invoicetype.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.invoicetype.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'invoicetype.printDocumentTemplate'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.invoicetype.printDocumentTemplate.description}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.invoicetype.printDocumentTemplate\\\" choices=\\\"vm.printDocumentTemplates\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n </ca-form-group-row> \\n <hr>\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>\\n {{ 'common.language' | translate}}\\n </th>\\n <th>\\n {{ 'invoicetype.name' | translate}}\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"localization in vm.invoicetype.localizations | orderBy: 'language.name'\\\">\\n <td style=\\\"width: 150px\\\">\\n {{localization.language.name}}\\n </td>\\n <td>\\n <div ng-if=\\\"!vm.isEditing\\\">{{localization.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"localization.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.invoicetypes.invoicetype', {invoicetypeId: invoicetype.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"invoicetype in vm.invoicetypes\\\" ng-class=\\\"{'focus m-l-none': invoicetype.id === vm.selectedInvoiceTypeId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': invoicetype.id === vm.selectedInvoiceTypeId }\\\">\\n <span class=\\\"sm-label\\\">{{invoicetype.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveCollection()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewCollection\\\"> {{'common.cancel' | translate}} </button>\\n <span> {{vm.collection.collectionCode + \\\" \\\" + vm.collection.collectionDescription}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'articlecollection.code'\\\">\\n <span ng-if=\\\"!vm.isNewCollection\\\">{{ vm.collection.collectionCode }}</span>\\n <div>\\n <input id=\\\"collectionCode\\\" name=\\\"collectionCode\\\" ng-if=\\\"vm.isEditing && vm.isNewCollection\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.collectionCode\\\" enter-as-tab required /> \\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.description'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.collectionDescription }}</span>\\n <div>\\n <input name=\\\"collectionDescription\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.collectionDescription\\\" enter-as-tab required /> \\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.isDefaultCollection'\\\" ng-if=\\\"!vm.isNewCollection\\\">\\n <div>\\n <input type=\\\"checkbox\\\" name=\\\"isDefaultCollection\\\" ng-model=\\\"vm.collection.isDefaultCollection\\\" ng-disabled=\\\"true\\\" />\\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.isCurrentDescription' | translate}}\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.articleCollectionType'\\\">\\n <span ng-if=\\\"!vm.isNewCollection && vm.collection.articleCollectionType === 0\\\">{{'articlecollection.articleCollectionTypeStatic' | translate}}</span>\\n <span ng-if=\\\"!vm.isNewCollection && vm.collection.articleCollectionType === 1\\\">{{'articlecollection.articleCollectionTypeRolling' | translate}}</span>\\n <div ng-if=\\\"vm.isNewCollection && vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.collection.selectedArticleCollectionType\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n <ul>\\n <li>{{'articlecollection.articleCollectionTypeDescription1' | translate}}</li>\\n <li>{{'articlecollection.articleCollectionTypeDescription2' | translate}}</li>\\n </ul>\\n </div>\\n </ca-form-group-row>\\n\\n <!-- Only if static collection type -->\\n <ca-form-group-row label=\\\"'articlecollection.fromDate'\\\" ng-if=\\\"vm.collection.articleCollectionType === 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.fromDate | date:'yyyy-MM-dd' }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <wj-input-date\\n value=\\\"vm.collection.fromDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.toDate'\\\" ng-if=\\\"vm.collection.articleCollectionType === 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.toDate | date:'yyyy-MM-dd' }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <wj-input-date\\n value=\\\"vm.collection.toDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n </ca-form-group-row>\\n\\n <!-- Only if rolling collection type -->\\n <ca-form-group-row label=\\\"'articlecollection.offset'\\\" ng-if=\\\"vm.collection.articleCollectionType === 1\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.offset }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input name=\\\"selectedOffset\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.offset\\\" enter-as-tab required /> \\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.offsetDescription' | translate}}\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'articlecollection.duration'\\\" ng-if=\\\"vm.collection.articleCollectionType === 1\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.collection.duration }}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input name=\\\"selectedDuration\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.collection.duration\\\" enter-as-tab required /> \\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.durationDescription' | translate}}\\n </div>\\n </ca-form-group-row>\\n\\n\\n <ca-form-group-row label=\\\"'articlecollection.currentBehaviour'\\\">\\n <span ng-if=\\\"vm.collection.currentBehaviour === 0 && !vm.isEditing\\\">{{'articlecollection.currentBehaviourDoNotSetCurrent' | translate}}</span>\\n <span ng-if=\\\"vm.collection.currentBehaviour === 1 && !vm.isEditing\\\">{{'articlecollection.currentBehaviourSetCurrent' | translate}}</span>\\n <span ng-if=\\\"vm.collection.currentBehaviour === 2 && !vm.isEditing\\\">{{'articlecollection.currentBehaviourSetNotCurrent' | translate}}</span>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.collection.selectedCurrentBehaviour\\\" choices=\\\"vm.currentBehaviours\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n <div style=\\\"font-style: italic; font-size:0.8em; padding-left:15px;\\\">\\n {{'articlecollection.currentBehaviourDescription1' | translate}}<br>\\n <ul>\\n <li>{{'articlecollection.currentBehaviourDescription2' | translate}}</li>\\n <li>{{'articlecollection.currentBehaviourDescription3' | translate}}</li>\\n <li>{{'articlecollection.currentBehaviourDescription4' | translate}}</li>\\n </ul>\\n </div>\\n </ca-form-group-row>\\n \\n <ca-form-group-row label=\\\"'base.currencies'\\\" style=\\\"margin-top:30px;\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <th>{{'currency.code' | translate }}:</th>\\n <th>{{'currency.name' | translate }}:</th>\\n <th>{{'currency.currencyRate' | translate }}:</th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"setting in vm.collection.currencySettings\\\">\\n <td>{{setting.currency.code}}</td>\\n <td>{{setting.currency.name}}</td>\\n <td>\\n <span ng-if=\\\"!vm.isEditing\\\">{{setting.currencyRate | number}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" name=\\\"currencyRate\\\" type=\\\"number\\\" step=\\\"0.01\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"setting.currencyRate\\\" enter-as-tab required />\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </ca-form-group-row>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.ordercollections.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.ordercollections.ordercollection', {collectionId: collection.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"collection in vm.collections\\\" ng-class=\\\"{'focus m-l-none': collection.id === vm.selectedCollectionId}\\\">\\n <div class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': collection.id === vm.selectedCollectionId }\\\">\\n <span class=\\\"pull-left text-ellipsis\\\" style=\\\"font-weight: bold;\\\">{{collection.collectionCode}} - {{collection.collectionDescription}}</span>\\n <div style=\\\"clear: both; height: 1px;\\\"> </div>\\n </div>\\n <div>\\n <span class=\\\"pull-left text-ellipsis\\\">\\n {{ vm.getFullDate(collection.fromDate) }} - {{ vm.getFullDate(collection.toDate) }}\\n </span>\\n <span class=\\\"pull-right text-ellipsis\\\" ng-if=\\\"collection.isCurrent\\\">{{'articlecollection.isCurrent' | translate}}</span>\\n <div style=\\\"clear: both; height: 1px;\\\"> </div>\\n </div>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveOrderType()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewOrderType\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'ordertype.orderTypeName'\\\">\\n <div>\\n <label>{{vm.ordertype.orderTypeName | translate}}</label>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'ordertype.printDocumentTemplate'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.ordertype.printDocumentTemplate.description}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.ordertype.printDocumentTemplate\\\" choices=\\\"vm.printDocumentTemplates\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'ordertype.pickingListDocumentTemplate'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.ordertype.pickingListDocumentTemplate.description}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.ordertype.pickingListDocumentTemplate\\\" choices=\\\"vm.printDocumentTemplates\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\"/>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row ng-if=\\\"vm.enableDeliveryPlanning\\\" label=\\\"'ordertype.deliveryPlanningTemplate'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.deliveryPlanningTemplate.deliveryPlanningTemplateName}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.deliveryPlanningTemplate\\\" choices=\\\"vm.getDeliveryPlanningTemplates.deliveryPlanningTemplates\\\" order-by=\\\"'deliveryPlanningTemplateName'\\\" item-renderer=\\\"'deliveryPlanningTemplateName'\\\"/>\\n </div>\\n </ca-form-group-row> \\n \\n <hr>\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>\\n {{ 'common.language' | translate}}\\n </th>\\n <th>\\n {{ 'ordertype.orderTypeName' | translate}}\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"localization in vm.ordertype.localizations | orderBy: 'language.name'\\\">\\n <td style=\\\"width: 150px\\\">\\n {{localization.language.name}}\\n </td>\\n <td>\\n <div ng-if=\\\"!vm.isEditing\\\">{{localization.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"localization.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.ordertypes.ordertype', {ordertypeId: ordertype.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"ordertype in vm.ordertypes\\\" ng-class=\\\"{'focus m-l-none': ordertype.id === vm.selectedOrderTypeId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': ordertype.id === vm.selectedOrderTypeId }\\\">\\n <span class=\\\"sm-label\\\">{{ordertype.orderTypeName | translate}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.savePaymentTerm()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewPaymentTerm\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deletePaymentTerm()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewPaymentTerm\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'paymentterm.code'\\\">\\n <div ng-if=\\\"!vm.isNewPaymentTerm && !vm.isEditing\\\">\\n <label>{{vm.paymentterm.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewPaymentTerm || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isPaymentTermCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.paymentterm.code\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'paymentterm.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.paymentterm.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.paymentterm.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <hr>\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>\\n {{ 'common.language' | translate}}\\n </th>\\n <th>\\n {{ 'paymentterm.name' | translate}}\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"localization in vm.paymentterm.localizations | orderBy: 'language.name'\\\">\\n <td style=\\\"width: 150px\\\">\\n {{localization.language.name}}\\n </td>\\n <td>\\n <div ng-if=\\\"!vm.isEditing\\\">{{localization.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"localization.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.paymentterms.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.paymentterms.paymentterm', {paymenttermId: paymentterm.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"paymentterm in vm.paymentterms\\\" ng-class=\\\"{'focus m-l-none': paymentterm.id === vm.selectedPaymentTermId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': paymentterm.id === vm.selectedPaymentTermId }\\\">\\n <span class=\\\"sm-label\\\">{{paymentterm.code}} {{paymentterm.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.savePaymentType()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewPaymentType\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'paymenttype.paymenttypecode'\\\">\\n <div>\\n <label>{{vm.paymentType.paymentTransactionCode}}</label>\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'paymenttype.paymenttypename'\\\">\\n <div>\\n <label>{{vm.paymentType.paymentTransactionTypeName}}</label>\\n </div> \\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'paymenttype.account'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.paymentType.account.accountNumber}} {{vm.paymentType.account.accountName}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.paymentType.account\\\" choices=\\\"vm.accounts\\\" order-by=\\\"'accountNumber'\\\" item-renderer=\\\"['accountNumber','accountName']\\\" />\\n </div>\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.paymenttypes.paymenttype', {paymentTypeId: paymentType.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"paymentType in vm.paymentTypes\\\" ng-class=\\\"{'focus m-l-none': paymentType.id === vm.selectedPaymentType}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': paymentType.id === vm.selectedPaymentType }\\\">\\n <span class=\\\"text-muted\\\"></span> <span class=\\\"sm-label\\\">{{paymentType.paymentTransactionTypeName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveReturnReason()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewReturnReason\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteReturnReason()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewReturnReason\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'returnreason.code'\\\">\\n <div ng-if=\\\"!vm.isNewReturnReason && !vm.isEditing\\\">\\n <label>{{vm.returnreason.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewReturnReason || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isReturnReasonCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.returnreason.code\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'returnreason.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.returnreason.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.returnreason.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'returnreason.adjustStock'\\\">\\n <input type=\\\"checkbox\\\" name=\\\"adjustStock\\\" ng-model=\\\"vm.returnreason.adjustStock\\\" enter-as-tab ng-disabled=\\\"!vm.isEditing\\\" class=\\\"enterAsTab\\\" />\\n </ca-form-group-row>\\n \\n <ca-form-group-row label=\\\"'returnreason.location'\\\" ng-show=\\\"vm.returnreason.adjustStock\\\" ng-if=\\\"vm.featureStockLocationEnabled\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.location.locationName}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.location\\\" theme=\\\"bootstrap\\\" ng-change=\\\"vm.getStockLocations()\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locations\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n </div>\\n </ca-form-group-row>\\n \\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.returnreasons.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.returnreasons.returnreason', {returnreasonId: returnreason.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"returnreason in vm.returnreasons\\\" ng-class=\\\"{'focus m-l-none': returnreason.id === vm.selectedReturnReasonId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': returnreason.id === vm.selectedReturnReasonId }\\\">\\n <span class=\\\"sm-label\\\">{{returnreason.code}} {{returnreason.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveShippingMethod()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewShippingMethod\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteShippingMethod()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewShippingMethod\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'shippingmethod.code'\\\">\\n <div ng-if=\\\"!vm.isNewShippingMethod && !vm.isEditing\\\">\\n <label>{{vm.shippingmethod.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewShippingMethod || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isShippingMethodCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.shippingmethod.code\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'shippingmethod.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.shippingmethod.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.shippingmethod.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <hr>\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>\\n {{ 'common.language' | translate}}\\n </th>\\n <th>\\n {{ 'shippingmethod.name' | translate}}\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"localization in vm.shippingmethod.localizations | orderBy: 'language.name'\\\">\\n <td style=\\\"width: 150px\\\">\\n {{localization.language.name}}\\n </td>\\n <td>\\n <div ng-if=\\\"!vm.isEditing\\\">{{localization.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"localization.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.shippingmethods.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.shippingmethods.shippingmethod', {shippingmethodId: shippingmethod.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"shippingmethod in vm.shippingmethods\\\" ng-class=\\\"{'focus m-l-none': shippingmethod.id === vm.selectedShippingMethodId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': shippingmethod.id === vm.selectedShippingMethodId }\\\">\\n <span class=\\\"sm-label\\\">{{shippingmethod.code}} {{shippingmethod.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveVat()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewVat\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteVat()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewVat\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'vat.vatCode'\\\">\\n <div ng-if=\\\"!vm.isNewVat && !vm.isEditing\\\">\\n <label>{{vm.vat.vatCode}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewVat || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isVatCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"vatCode\\\" ng-model=\\\"vm.vat.vatCode\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'vat.vatName'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.vat.vatName}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"vatName\\\" ng-model=\\\"vm.vat.vatName\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'vat.vatRate'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.vat.vatRate * 100 | number}} %</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"number\\\" step=\\\"any\\\" class=\\\"form-control enterAsTab\\\" name=\\\"vatRate\\\" ng-model=\\\"vm.vat.vatRate\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'vat.account'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.vat.account.accountNumber}} {{vm.vat.account.accountName}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.vat.account\\\" choices=\\\"vm.accounts\\\" order-by=\\\"'accountNumber'\\\" item-renderer=\\\"['accountNumber','accountName']\\\" />\\n </div>\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('base.vats.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('base.vats.vat', {vatId: vat.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"vat in vm.vats | orderBy: 'vatNumber'\\\" ng-class=\\\"{'focus m-l-none': vat.id === vm.selectedVatId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': vat.id === vm.selectedVatId }\\\">\\n <span class=\\\"text-muted\\\">{{vat.vatCode}}</span> <span class=\\\"sm-label\\\">{{vat.vatName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"invoiceSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\" style=\\\"max-width: 1178px;\\\">\\n \\n <ca-budget-import disabled-by=\\\"\\\" on-budget-imported=\\\"vm.onBudgetImported(budgets)\\\"></ca-budget-import>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\" style=\\\"max-width: 1178px; margin-top:20px;\\\"> \\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm b-b no-bg text-md\\\" ng-model=\\\"vm.filter\\\"\\n ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.loadBudgets()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n\\n\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\"\\n items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadBudgets()\\\"\\n ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-hover\\\">\\n <thead>\\n <th>{{'budget.location' | translate}}</th>\\n <th>{{'budget.collection.description' | translate}}</th>\\n <th>{{'budget.salesAmount' | translate}}</th>\\n <th>{{'budget.quantity' | translate}}</th>\\n <th>{{'budget.startdate' | translate}}</th>\\n <th>{{'budget.enddate' | translate}}</th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"budget in vm.budgets\\\">\\n <td>{{ budget.location.locationNumber }} {{ budget.location.locationName }}</td>\\n <td>{{ budget.collection.collectionCode}}</td>\\n <td>{{ budget.salesAmount }}</td>\\n <td>{{ budget.quantity }}</td>\\n <td style=\\\"min-width: 7em;\\\">{{ budget.startDate.split('T')[0] }}</td>\\n <td style=\\\"min-width: 7em;\\\">{{ budget.endDate.split('T')[0] }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\\n<label class=\\\"btn btn-default btn-file\\\">\\n {{'stock.readfile' | translate}} <input class=\\\"\\\" id=\\\"xlf\\\" type=\\\"file\\\" ng-model=\\\"file\\\" style=\\\"display: none;\\\"> \\n</label> \\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-2\\\">\\n <ui-select ng-model=\\\"vm.dataSourceChoice\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.translationKey | translate}}</ui-select-match>\\n <ui-select-choices repeat=\\\"dataSourceChoice in vm.dataSourceChoices\\\">\\n <span>{{dataSourceChoice.translationKey | translate}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveData()\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-2\\\">\\n <input type=\\\"search\\\" class=\\\"form-control input-sm no-border no-bg text-md b-b b-t b-l b-r\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.selectAll()\\\"> {{'common.all' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.selectNone()\\\"> {{'common.none' | translate}} </button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" is-read-only=\\\"false\\\" class=\\\"orders-flex-grid\\\"\\n initialized=\\\"vm.captureGrid(s)\\\" style=\\\"width: auto\\\" allow-merging=\\\"All\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('contacts.companies.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"search\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"vm.goToCompany(company)\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"company in vm.companies | orderBy:'companyName'\\\" ng-class=\\\"{'focus m-l-none': company.id === vm.selectedCompanyId}\\\">\\n <div class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': company.id === vm.selectedCompanyId }\\\">\\n <div class=\\\"text-ellipsis lg-label\\\">{{company.companyName}}</div>\\n <div ng-if=\\\"company.primaryPurchaser\\\" class=\\\"ca-searchlist-detail\\\"> \\n <span tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{company.primaryPurchaser.firstName + ' ' + company.primaryPurchaser.lastName}}\\\" class=\\\"ca-searchlist-detail-label\\\">{{'company.primaryPurchaser' | translate}} </span>\\n <span >{{company.primaryPurchaser.firstName + ' ' + company.primaryPurchaser.lastName}}</span>\\n </div>\\n <ca-search-list-contact-infos contact-infos=\\\"company.contactInfos\\\"></ca-search-list-contact-infos>\\n </div>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .has-error {\\n border-color: #a94442;\\n }\\n</style>\\n<form name=\\\"companyForm\\\" ng-submit=\\\"vm.save()\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"vm.startEdit()\\\" ng-show=\\\"!vm.isEditing\\\" ng-disabled=\\\"!vm.canAccess('company', 'update')\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.allInformationIsValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.cancelEdit()\\\" ng-show=\\\"!vm.isNewCompany && vm.isEditing\\\"> {{'common.cancel' | translate}} </button>\\n <span style=\\\"margin-left:20px;\\\">{{vm.company.companyName}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div class=\\\"editableForm\\\">\\n <ca-form-group-row label=\\\"'company.companyname'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.companyName }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" name=\\\"companyname\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-class=\\\"{'has-error': !vm.hasCompanyName() }\\\" ng-model=\\\"vm.company.companyName\\\" enter-as-tab>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'company.companytype'\\\">\\n <span ng-show=\\\"!vm.isNewCompany\\\" class=\\\"editable\\\">{{vm.company.companyType.companyTypeName }}</span>\\n <ca-singleselect ng-show=\\\"vm.isNewCompany && vm.isEditing\\\" model=\\\"vm.company.companyType\\\" choices=\\\"vm.companyTypes\\\" mandatory=\\\"true\\\" order-by=\\\"'companyTypeName'\\\" item-renderer=\\\"['companyTypeName']\\\" ></span>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'resellerorder.resellerPriceList'\\\" ng-show=\\\"vm.company.companyType && vm.company.companyType.type === 'reseller'\\\">\\n <span ng-show=\\\"!vm.isNewCompany\\\" class=\\\"editable\\\">{{ vm.company.resellerPriceList.pricelistName }}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.resellerPriceList\\\" choices=\\\"vm.priceLists\\\" mandatory=\\\"true\\\" order-by=\\\"'pricelistName'\\\" item-renderer=\\\"['pricelistName']\\\" ng-class=\\\"{'has-error': !vm.hasResellerPriceList() }\\\" ></span>\\n </ca-form-group-row>\\n <div class=\\\"form-group row\\\" ng-show=\\\"vm.company.companyType && vm.company.companyType.type === 'reseller'\\\">\\n <label class=\\\"col-sm-4 \\\">{{'resellerorder.resellerPriority' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{ vm.company.selectedPriority.displayName }}</span>\\n <ui-select ng-model=\\\"vm.company.selectedPriority\\\" ng-show=\\\"vm.isEditing\\\" theme=\\\"bootstrap\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{ $select.selected.displayName }}</ui-select-match>\\n <ui-select-choices repeat=\\\"prio in vm.resellerPriorities\\\">\\n <span>{{ prio.displayName }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n <ca-form-group-row label=\\\"'company.deliveryTerm'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.deliveryTerm.name}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.deliveryTerm\\\" choices=\\\"vm.deliveryTerms\\\" order-by=\\\"'code'\\\" mandatory=\\\"true\\\" item-renderer=\\\"['name']\\\" ng-class=\\\"{'has-error': !vm.hasDeliveryTerm() }\\\" ></ca-singleselect>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'company.paymentTerm'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.paymentTerm.name}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.paymentTerm\\\" choices=\\\"vm.paymentTerms\\\" order-by=\\\"'code'\\\" mandatory=\\\"true\\\" item-renderer=\\\"['name']\\\" ng-class=\\\"{'has-error': !vm.hasPaymentTerm() }\\\" ></ca-singleselect>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'company.shippingMethod'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.shippingMethod.name}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.shippingMethod\\\" choices=\\\"vm.shippingMethods\\\" order-by=\\\"'name'\\\" mandatory=\\\"true\\\" item-renderer=\\\"['name']\\\" ng-class=\\\"{'has-error': !vm.hasShippingMethod() }\\\" ></ca-singleselect>\\n </ca-form-group-row>\\n\\n <div class=\\\"col-sm-12\\\"> </div>\\n\\n <ca-form-group-row label=\\\"'company.organizationnumber'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.organizationNumber}}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.company.organizationNumber\\\" enter-as-tab>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'company.alternativeCompanyId'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.alternativeCompanyId}}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.company.alternativeCompanyId\\\" enter-as-tab>\\n </ca-form-group-row> \\n \\n <ca-form-group-row label=\\\"'company.primaryPurchaser'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.primaryPurchaser.firstName + ' ' + vm.company.primaryPurchaser.lastName}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.primaryPurchaser\\\" choices=\\\"vm.users\\\" order-by=\\\"'firstName'\\\" item-renderer=\\\"['firstName','lastName']\\\" ></ca-singleselect>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'company.purchasingCurrency'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.purchasingCurrency.code + ' ' + vm.company.purchasingCurrency.name}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.purchasingCurrency\\\" choices=\\\"vm.currencies\\\" order-by=\\\"'code'\\\" item-renderer=\\\"['code']\\\" mandatory=\\\"true\\\"></ca-singleselect>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'company.language'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.language.locale + ' ' + vm.company.language.name}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.company.language\\\" choices=\\\"vm.languages\\\" order-by=\\\"'locale'\\\" item-renderer=\\\"['locale','name']\\\"></ca-singleselect>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'company.leadTime'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.company.leadTime }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"1\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.company.leadTime\\\" enter-as-tab>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'company.priceModel'\\\">\\n <span ng-show=\\\"!vm.isNewCompany && !vm.isEditing\\\" class=\\\"editable\\\">{{vm.priceModelObject.display}}</span>\\n <ca-singleselect ng-show=\\\"vm.isEditing\\\" model=\\\"vm.priceModelObject\\\" choices=\\\"vm.pricingModels\\\" order-by=\\\"'name'\\\" item-renderer=\\\"['display']\\\" mandatory=\\\"true\\\"></ca-singleselect>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'company.commissionPercent'\\\" ng-if=\\\"vm.priceModelObject.name === 'commission'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{ vm.company.commissionPercent }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" name=\\\"commissionPercent\\\" type=\\\"number\\\" step=\\\"0.01\\\" min=\\\"0\\\" max=\\\"100\\\" ng-pattern=\\\"/^[0-9]+(\\\\.[0-9]{1,2})?$/\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.company.commissionPercent\\\" enter-as-tab required>\\n <span class=\\\"help-block\\\" ng-show=\\\"companyForm.commissionPercent.$invalid && companyForm.commissionPercent.$touched\\\">{{'common.required' | translate}}</span>\\n </ca-form-group-row> \\n\\n <div class=\\\"col-sm-12\\\"> </div>\\n\\n <ca-form-group-row label=\\\"address.addressType.typeName\\\" ng-repeat=\\\"address in vm.company.addresses\\\">\\n <ca-address address=\\\"address\\\" is-editing=\\\"vm.isEditing\\\" remove-address=\\\"vm.removeAddress(address)\\\"></ca-address>\\n </ca-form-group-row> \\n <div class=\\\"form-group row new-selection-form\\\" ng-show=\\\"vm.isEditing && vm.availableAddressTypes.length\\\">\\n <label class=\\\"col-sm-10 control-label text-right\\\">\\n <div class=\\\"input-group\\\">\\n <span class=\\\"input-group-addon\\\" id=\\\"basic-addon1\\\"><i class=\\\"fa fa-plus\\\"></i></span>\\n <select class=\\\"form-control\\\" ng-change=\\\"vm.addNewAddress()\\\" ng-model=\\\"vm.newAddress.addressType\\\" ng-options=\\\"type.typeName for type in vm.availableAddressTypes\\\">\\n <option value=\\\"\\\" style=\\\"display: none;\\\">{{'user.newaddress' | translate}}</option>\\n </select>\\n </div>\\n </label>\\n </div>\\n\\n <ca-form-group-row label=\\\"contactInfo.contactInfoType.typeName\\\" ng-repeat=\\\"contactInfo in vm.company.contactInfos\\\">\\n <ca-contact-info contact-info=\\\"contactInfo\\\" is-editing=\\\"vm.isEditing\\\" remove-contact-info=\\\"vm.removeContactInfo(contactInfo)\\\"></ca-contact-info>\\n </ca-form-group-row> \\n <div class=\\\"form-group row new-selection-form\\\" ng-show=\\\"vm.isEditing && vm.availableContactInfoTypes.length\\\">\\n <label class=\\\"col-sm-10 control-label\\\">\\n <div class=\\\"input-group\\\">\\n <span class=\\\"input-group-addon\\\" id=\\\"basic-addon1\\\"><i class=\\\"fa fa-plus\\\"></i></span>\\n <select class=\\\"form-control\\\" ng-change=\\\"vm.addNewContactInfo()\\\" ng-model=\\\"vm.newContactInfo.contactInfoType\\\" ng-options=\\\"type.typeName for type in vm.availableContactInfoTypes\\\">\\n <option value=\\\"\\\" style=\\\"display: none;\\\">{{'user.newcontactinfo' | translate}}</option>\\n </select>\\n </div>\\n </label>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n</form>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<p class=\\\"\\\" ng-hide=\\\"vm.isEditing\\\">{{vm.address.addressLine1 + ' ' + vm.address.addressLine2 + ' ' + vm.address.addressLine3 + ', ' + vm.address.postalCode + ' ' + vm.address.city + ', ' + vm.address.country}}</p>\\n<div class=\\\"custom-edit-input\\\" ng-show=\\\"vm.isEditing\\\">\\n <div class=\\\"inputs\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.addressLine1\\\" placeholder=\\\"{{'address.addressline1' | translate}}\\\" ng-change=\\\"vm.addressUpdated(vm.address)\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.addressLine2\\\" placeholder=\\\"{{'address.addressline2' | translate}}\\\" ng-change=\\\"vm.addressUpdated(vm.address)\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.addressLine3\\\" placeholder=\\\"{{'address.addressline3' | translate}}\\\" ng-change=\\\"vm.addressUpdated(vm.address)\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.postalCode\\\" placeholder=\\\"{{'address.postalCode' | translate}}\\\" ng-change=\\\"vm.addressUpdated(vm.address)\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.city\\\" placeholder=\\\"{{'address.city' | translate}}\\\" ng-change=\\\"vm.addressUpdated(vm.address)\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.country\\\" placeholder=\\\"{{'address.country' | translate}}\\\" ng-change=\\\"vm.addressUpdated(vm.address)\\\">\\n </div>\\n <div class=\\\"tools\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" ng-click=\\\"vm.deleteAddress(vm.address)\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"custom-edit-input\\\" ng-hide=\\\"vm.isEditing\\\">\\n {{vm.contactInfo.value}}\\n</div>\\n<div class=\\\"custom-edit-input\\\" ng-show=\\\"vm.isEditing\\\">\\n <div class=\\\"inputs\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.contactInfo.value\\\" ng-change=\\\"vm.contactInfoUpdated(vm.contactInfo)\\\">\\n </div>\\n <div class=\\\"tools\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" ng-click=\\\"vm.deleteContactInfo(vm.contactInfo)\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"custom-edit-input\\\">\\n <div class=\\\"inputs\\\">\\n <ui-select ng-model=\\\"vm.selectedAddressType\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.addressTypes.length === 0\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.typeName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"addressType in vm.addressTypes | filter:{'typeName': $select.search}\\\">\\n <span>{{addressType.typeName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"tools\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-success\\\" ng-click=\\\"vm.createAddress()\\\" ng-disabled=\\\"vm.selectedAddressType === undefined\\\"><i class=\\\"fa fa-plus\\\"></i></button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"custom-edit-input\\\">\\n <div class=\\\"inputs\\\">\\n <ui-select ng-model=\\\"vm.selectedContactInfoType\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.contactInfoTypes.length === 0\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.typeName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"contactInfoType in vm.contactInfoTypes | filter:{'typeName': $select.search}\\\">\\n <span>{{contactInfoType.typeName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"tools\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-success\\\" ng-click=\\\"vm.createContactInfo()\\\" ng-disabled=\\\"vm.selectedContactInfoType === undefined\\\"><i class=\\\"fa fa-plus\\\"></i></button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div class=\\\"col w-xl lter b-r\\\" ui-view=\\\"contactList\\\" ng-hide=\\\"$state.includes('contacts.timestampingmanagement') || $state.includes('contacts.bulkoperation')\\\"></div>\\n <div class=\\\"col w-xxl bg-white-only\\\" ui-view=\\\"contactView\\\" ng-hide=\\\"$state.includes('contacts.timestampingmanagement') || $state.includes('contacts.bulkoperation')\\\"></div>\\n <div class=\\\"col\\\" ng-hide=\\\"$state.includes('contacts.timestampingmanagement') || $state.includes('contacts.bulkoperation')\\\"></div>\\n\\n <div class=\\\"col\\\" ui-view=\\\"wideColumnView\\\" ng-show=\\\"$state.includes('contacts.timestampingmanagement') || $state.includes('contacts.bulkoperation')\\\"></div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span ng-show=\\\"!vm.isEditing && vm.allowSaveLocation()\\\"> <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.startEditing()\\\"> {{'common.edit' | translate}} </button> </span>\\n <span ng-show=\\\"vm.isEditing && vm.allowSaveLocation()\\\"> <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.save()\\\"> {{'common.save' | translate}} </button> </span>\\n <span ng-show=\\\"vm.isEditing\\\"> <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\"> {{'common.cancel' | translate}} </button> </span>\\n <span> {{vm.selectedLocation.locationName}} </span>\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner panel-body\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <div class=\\\"col-sm-2\\\">\\n \\n </div>\\n <div class=\\\"col-sm-10\\\">\\n\\n <div class=\\\"form-group row\\\" ng-hide=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.name' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.locationName }}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-show=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.name' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span> <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.selectedLocation.locationName\\\" placeholder=\\\"{{'location.locationName' | translate}}\\\"> </span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.locationnumber' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.locationNumber }}</span>\\n </p>\\n </div>\\n </div>\\n \\n <div class=\\\"form-group row\\\" ng-if=\\\"!vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'user.isactive' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ \\\"common.\\\" + vm.selectedLocation.isActive | translate }}</span>\\n </p>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\" ng-if=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'user.isactive' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\"\\n ng-model=\\\"vm.selectedLocation.isActive\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\" ng-if=\\\"!vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.shouldGenerateAutoOrders' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ \\\"common.\\\" + vm.selectedLocation.shouldGenerateAutoOrders | translate }}</span>\\n </p>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\" ng-if=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.shouldGenerateAutoOrders' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input ng-disabled=\\\"!vm.isAllowedToSetAutoOrder\\\" type=\\\"checkbox\\\" namef=\\\"a\\\"\\n ng-model=\\\"vm.selectedLocation.shouldGenerateAutoOrders\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.type' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.locationType.description }}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.category' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.locationCategory.category }}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-if=\\\"vm.selectedLocation.salesChannel\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.saleschannel' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.salesChannel.salesChannelDescription }}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-if=\\\"vm.selectedLocation.resellerCustomer\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.resellerCustomer' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.resellerCustomer.socialSecurityNumber + ' ' + vm.selectedLocation.resellerCustomer.firstName + ' ' + vm.selectedLocation.resellerCustomer.lastName }}</span>\\n </p>\\n </div>\\n </div> \\n <div class=\\\"form-group row\\\" ng-if=\\\"vm.selectedLocation.ResellerCostPriceFactor\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.resellerCostPriceFactor' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.ResellerCostPriceFactor | number }}</span>\\n </p>\\n </div>\\n </div> \\n <br />\\n\\n <div class=\\\"form-group row\\\" ng-hide=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.storemanager' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span ng-if=\\\"vm.selectedLocation.storeManager\\\">{{vm.selectedLocation.storeManager.firstName}} {{vm.selectedLocation.storeManager.lastName}}</span>\\n <span ng-if=\\\"!vm.selectedLocation.storeManager\\\">{{'location.storemanager.none' | translate}}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-show=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.storemanager' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select ng-model=\\\"vm.selectedLocation.storeManager\\\" theme=\\\"bootstrap\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.firstName}} {{$select.selected.lastName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"user in vm.users\\\">\\n <span>{{user.firstName}} {{user.lastName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.squaremeters' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" >{{ vm.selectedLocation.squareMeters }}</span>\\n <span ng-if=\\\"vm.isEditing\\\" ><input ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"any\\\" class=\\\"form-control\\\" ng-model=\\\"vm.selectedLocation.squareMeters\\\" placeholder=\\\"{{'location.squaremeters' | translate}}\\\"></span>\\n </p>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.startdate' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.startDate | date:'yyyy-MM-dd' }}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.organizationnumber' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{ vm.selectedLocation.organizationNumber }}</span>\\n </p>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\" ng-hide=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.resellerPriceList' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\">\\n <span>{{vm.selectedLocation.resellerPriceList.pricelistName}}</span>\\n </p>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-show=\\\"vm.isEditing\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.resellerPriceList' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select ng-model=\\\"vm.selectedLocation.resellerPriceList\\\" theme=\\\"bootstrap\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.pricelistName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"priceList in vm.priceLists\\\">\\n <span>{{priceList.pricelistName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n <br />\\n\\n <div class=\\\"form-group row\\\" ng-repeat=\\\"address in vm.selectedLocation.addresses\\\">\\n <label class=\\\"col-sm-4 \\\">{{address.addressType.typeName}}:</label>\\n <div class=\\\"col-lg-8\\\"> \\n <ca-address-form address=\\\"address\\\" \\n is-editing=\\\"vm.isEditing\\\"\\n on-address-updated=\\\"vm.updateAddress(address)\\\"\\n on-address-deleted=\\\"vm.deleteAddress(address)\\\"> \\n </ca-address-form>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-show=\\\"vm.isEditing\\\">\\n <div class=\\\"col-lg-4\\\"> </div>\\n <div class=\\\"col-lg-8\\\">\\n <ca-new-address-form address-types=\\\"vm.addressTypes\\\"\\n on-address-created=\\\"vm.addNewAddress(address)\\\">\\n </ca-new-address-form>\\n </div>\\n </div>\\n <br />\\n <div class=\\\"form-group row\\\" ng-repeat=\\\"contactInfo in vm.selectedLocation.contactInfos\\\">\\n <label class=\\\"col-lg-4\\\">{{contactInfo.contactInfoType.typeName}}:</label>\\n <div class=\\\"col-lg-8\\\"> \\n <ca-contact-info-form contact-info=\\\"contactInfo\\\" \\n is-editing=\\\"vm.isEditing\\\" \\n on-contact-info-updated=\\\"vm.updateContactInfo(contactInfo)\\\" \\n on-contact-info-deleted=\\\"vm.deleteContactInfo(contactInfo)\\\"> \\n </ca-contact-info-form>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\" ng-show=\\\"vm.isEditing\\\">\\n <div class=\\\"col-lg-4\\\"> </div>\\n <div class=\\\"col-lg-8\\\">\\n <ca-new-contact-info-form contact-info-types=\\\"vm.contactInfoTypes\\\"\\n on-contact-info-created=\\\"vm.addNewContactInfo(contactInfo)\\\">\\n </ca-new-contact-info-form>\\n </div>\\n </div>\\n\\n <br />\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 \\\">{{'location.users' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <p class=\\\"\\\" ng-repeat=\\\"user in vm.selectedLocation.users | filter: {'isActive':true} | orderBy:'name'\\\">{{user.firstName}} {{user.lastName}}</p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .locationListContainer {\\n display: flex;\\n flex-direction: column;\\n height: 90%;\\n align-content: space-between;\\n }\\n .locationListContainerItem.searchBoxItem {\\n }\\n .locationListContainerItem.mainListItem {\\n overflow: auto;\\n flex-shrink: 2; \\n }\\n .locationListContainerItem.paginationItem {\\n text-align: center;\\n }\\n .marginPadding {\\n margin-left: 15px;\\n }\\n</style>\\n<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n\\n <div class=\\\"articleListContainer pos-abs\\\">\\n \\n <!-- Search bar section -->\\n <!-- <div class=\\\"locationListContainerItem searchBoxItem\\\"> -->\\n <!-- <div class=\\\"input-group m-b-xxs list-menu\\\" > -->\\n <div class=\\\"wrapper-xs\\\" style=\\\"padding-top:7px; padding-bottom:0px\\\">\\n <form ng-submit=\\\"vm.searchTermChange()\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <input id=\\\"SearchInput\\\" type=\\\"text\\\" class=\\\"form-control input-sm no-border text-md\\\" style=\\\"background-color:white\\\" ng-model=\\\"vm.filter\\\" ng-model-options=\\\"{debounce: 2500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\"\\n tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.articleList.pressEnter' | translate}}\\\" tooltip-popup-delay=\\\"300\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"submit\\\" class=\\\"btn btn-sm btn-default\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></button></span>\\n <input type=\\\"submit\\\" style=\\\"position: absolute; left:-9999px; width: 1px; height: 1px;\\\"/>\\n </div>\\n </form>\\n </div>\\n <!-- </div> -->\\n <!-- </div> -->\\n <div class=\\\"marginPadding\\\">\\n <ca-form-group-row-other label=\\\"'article.showInactive'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" name=\\\"inactive\\\" ng-model=\\\"vm.inactive\\\" ng-change=\\\"vm.searchTermChange()\\\" ng-checked=\\\"vm.inactive\\\"/>\\n <i></i>\\n </label>\\n </ca-form-group-row-other>\\n </div>\\n \\n <!-- Location list section -->\\n <div class=\\\"locationListContainerItem mainListItem\\\">\\n <div class=\\\"list-group list-group-lg no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"vm.goToLocation(location)\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"location in vm.locations\\\">\\n <div class=\\\"block text-ellipsis m-l-n\\\">\\n <div class=\\\"text-ellipsis lg-label\\\">{{location.locationNumber}} {{location.locationName}}</div>\\n <ca-search-list-contact-infos contact-infos=\\\"location.contactInfos\\\"></ca-search-list-contact-infos>\\n </div>\\n </a>\\n </div>\\n </div>\\n \\n <!-- Pagination navigation -->\\n <div class=\\\"locationListContainerItem paginationItem\\\"> \\n <div\\n uib-pagination\\n boundary-links=\\\"true\\\"\\n total-items=\\\"vm.totalItems\\\"\\n items-per-page=\\\"vm.pageSize\\\"\\n max-size=\\\"5\\\"\\n ng-change=\\\"vm.searchTermChange()\\\"\\n ng-model=\\\"vm.currentPage\\\"\\n class=\\\"pagination-sm\\\"\\n previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\"\\n first-text=\\\"«\\\"\\n last-text=\\\"»\\\">\\n </div>\\n </div>\\n \\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.saveRole()\\\" ng-disabled=\\\"!vm.canAccess('role', 'update')\\\">\\n {{'common.save' | translate}}\\n </button>\\n </span>\\n <span>{{vm.role.roleName}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"form-group row\\\"> \\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.role.isAdminRole\\\" />\\n <i></i>\\n {{'role.isAdminRole' | translate}}\\n </label>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\" ng-hide=\\\"vm.role.isAdminRole\\\">\\n <div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <tr class=\\\"ca-table-grouprow\\\" >\\n <td class=\\\"width: 100%\\\">\\n {{row.rowHeader}}\\n </td>\\n <td ng-repeat=\\\"claimType in vm.claimTypes\\\" style=\\\"width: 75px; text-align: center;\\\">\\n {{ 'role.' + claimType | translate }}\\n </td>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"row in vm.claimsRowData | orderBy:'rowHeaderLabel'\\\">\\n <td>\\n {{row.rowHeaderLabel}}\\n </td>\\n <td ng-repeat=\\\"claimType in vm.claimTypes\\\" style=\\\"text-align: center\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"row[claimType]\\\" />\\n </td>\\n \\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n <ca-form-group-row label=\\\"'role.widgetFilter'\\\">\\n <ca-multiselect model=\\\"vm.role.widgets\\\" choices=\\\"vm.widgets\\\" placeholder=\\\"'role.addWidgetFilter'\\\" order-by=\\\"'title'\\\" item-renderer=\\\"['title']\\\"/>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'role.dataSourcesFilter'\\\">\\n <ca-multiselect model=\\\"vm.role.dataSources\\\" choices=\\\"vm.dataSources\\\" placeholder=\\\"'role.addDataSourceFilter'\\\" order-by=\\\"'description'\\\" item-renderer=\\\"['description']\\\"/>\\n </ca-form-group-row>\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div ng-if=\\\"false\\\" class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\" >\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"button\\\" ng-click=\\\"$state.go('contacts.roles.new')\\\" class=\\\"btn btn-sm btn-default\\\" ng-disabled=\\\"true\\\">{{'common.new' | translate}}</button></span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <!-- <input type=\\\"search\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\" placeholder=\\\"{{'common.search' | translate}}\\\" ng-disabled=\\\"true\\\"> -->\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"vm.selectRole(role)\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"role in vm.roles\\\" ng-class=\\\"{'focus m-l-none': role.id === vm.selectedRoleId}\\\">\\n <span class=\\\"text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': role.id === vm.selectedRoleId }\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">{{role.roleName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.startEdit()\\\" ng-show=\\\"!vm.isEditing\\\" ng-disabled=\\\"!vm.canAccess('user', 'update')\\\">{{'common.edit' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.save()\\\" ng-show=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.canAccess('user', 'update') || !vm.isAllInformationValid()\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.cancelEdit()\\\" ng-show=\\\"vm.isEditing && !vm.isNewUser\\\">{{'common.cancel' | translate}}</button>\\n </span>\\n <span> </span>\\n <span>{{vm.isNewUser ? 'user.new' : vm.selectedUserCopy.firstName + ' ' + vm.selectedUserCopy.lastName | translate}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div class=\\\"editableForm\\\">\\n <div class=\\\"col-sm-12\\\">\\n <ca-form-group-row label=\\\"'user.firstname'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.firstName }}</span>\\n <div ng-class=\\\"{'has-error': !vm.hasFirstName(), 'has-success': vm.hasFirstName()}\\\">\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.firstName\\\" enter-as-tab>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.lastname'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.lastName }}</span>\\n <div ng-class=\\\"{'has-error': !vm.hasLastName(), 'has-success': vm.hasLastName()}\\\">\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.lastName\\\" enter-as-tab>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.username'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.username }}</span>\\n <div ng-class=\\\"{'has-error': !vm.hasUserName(), 'has-success': vm.hasUserName()}\\\">\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.username\\\" enter-as-tab>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.password'\\\">\\n <form autocomplete=\\\"off\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.password }}</span>\\n <div ng-show=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': !vm.hasPassword(), 'has-success': vm.hasPassword()}\\\">\\n <input type=\\\"password\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.password\\\" enter-as-tab>\\n </div>\\n </form>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.usernamepos'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.usernamePos }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.usernamePos\\\" enter-as-tab>\\n </ca-form-group-row>\\n \\n <ca-form-group-row label=\\\"'user.employeenumber'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.employeeNumber }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.employeeNumber\\\" enter-as-tab>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.ssn'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.selectedUserCopy.socialSecurityNumber }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.selectedUserCopy.socialSecurityNumber\\\" enter-as-tab>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.startdate'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.selectedUserCopy.startDate | date:'yyyy-MM-dd' }}</span>\\n <span ng-show=\\\"vm.isEditing\\\">\\n <wj-input-date\\n value=\\\"vm.selectedUserCopy.startDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n class=\\\"form-control\\\">\\n </wj-input-date>\\n </span>\\n </ca-form-group-row> \\n \\n <ca-form-group-row label=\\\"'user.isactive'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.selectedUserCopy.isActive ? ('common.true' | translate) : ('common.false' | translate)}}</span>\\n <span ng-show=\\\"vm.isEditing\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.selectedUserCopy.isActive\\\" />\\n <i></i>\\n </label>\\n </span>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'user.commonreports'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.selectedUserCopy.isAllowedToViewCommonReports ? ('common.true' | translate) : ('common.false' | translate)}}</span>\\n <span ng-show=\\\"vm.isEditing\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.selectedUserCopy.isAllowedToViewCommonReports\\\" />\\n <i></i>\\n </label>\\n </span>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"address.addressType.typeName\\\" ng-repeat=\\\"address in vm.selectedUserCopy.addresses\\\">\\n <ca-address address=\\\"address\\\" is-editing=\\\"vm.isEditing\\\" remove-address=\\\"vm.removeAddress(address)\\\"></ca-address>\\n </ca-form-group-row>\\n <div class=\\\"form-group row new-selection-form\\\" ng-show=\\\"vm.isEditing && vm.availableAddressTypes.length\\\">\\n <label class=\\\"col-sm-12 control-label text-right\\\">\\n <div class=\\\"input-group\\\">\\n <span class=\\\"input-group-addon\\\" id=\\\"basic-addon1\\\"><i class=\\\"fa fa-plus\\\"></i></span>\\n <select class=\\\"form-control\\\" ng-change=\\\"vm.addNewAddress()\\\" ng-model=\\\"vm.newAddress.addressType\\\" ng-options=\\\"type.typeName for type in vm.availableAddressTypes\\\">\\n <option value=\\\"\\\" style=\\\"display: none;\\\">{{'user.newaddress' | translate}}</option>\\n </select>\\n </div>\\n </label>\\n </div>\\n\\n <ca-form-group-row label=\\\"contactInfo.contactInfoType.typeName\\\" ng-repeat=\\\"contactInfo in vm.selectedUserCopy.contactInfos\\\" uib-tooltip=\\\"{{ 'user.entervalidemail' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"right\\\" tooltip-enable=\\\"!vm.isEmailValid && contactInfo.contactInfoType.systemTypeName === 'Email'\\\">\\n <div ng-class=\\\"{'has-error': !vm.isEmailValid && vm.isEditing && contactInfo.contactInfoType.systemTypeName === 'Email', 'has-success' : vm.isEmailValid && vm.isEditing && contactInfo.contactInfoType.systemTypeName === 'Email'}\\\">\\n <ca-contact-info contact-info=\\\"contactInfo\\\" is-editing=\\\"vm.isEditing\\\" remove-contact-info=\\\"vm.removeContactInfo(contactInfo)\\\"></ca-contact-info>\\n </div>\\n </ca-form-group-row>\\n <div ng-class=\\\"{'has-error': !vm.hasEmail()}\\\" uib-tooltip=\\\"{{ 'user.addemailadress' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"right\\\" tooltip-enable=\\\"!vm.hasEmail()\\\" >\\n <div class=\\\"form-group row new-selection-form\\\" ng-show=\\\"vm.isEditing && vm.availableContactInfoTypes.length\\\">\\n <label class=\\\"col-sm-12 control-label\\\">\\n <div class=\\\"input-group\\\">\\n <span class=\\\"input-group-addon\\\" id=\\\"basic-addon1\\\"><i class=\\\"fa fa-plus\\\"></i></span>\\n <select class=\\\"form-control\\\" ng-change=\\\"vm.addNewContactInfo()\\\" ng-model=\\\"vm.newContactInfo.contactInfoType\\\" ng-options=\\\"type.typeName for type in vm.availableContactInfoTypes\\\">\\n <option value=\\\"\\\" style=\\\"display: none;\\\">{{'user.newcontactinfo' | translate}}</option>\\n </select>\\n </div>\\n </label>\\n </div>\\n </div>\\n\\n <ca-form-group-row label=\\\"'user.locations'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n <p ng-repeat=\\\"location in vm.selectedUserCopy.locations | orderBy:'name'\\\">{{location.locationName}}</p>\\n </span>\\n <div ng-show=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.selectedLocations\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" placeholder=\\\"'user.addlocation'\\\" item-renderer=\\\"'locationName'\\\"/>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.brands'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n <p ng-repeat=\\\"brand in vm.selectedUserCopy.brands | orderBy:'name'\\\">{{brand.brandDescription}}</p>\\n </span>\\n <div ng-show=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.selectedBrands\\\" choices=\\\"vm.brands\\\" order-by=\\\"'brandDescription'\\\" placeholder=\\\"'user.addBrand'\\\" item-renderer=\\\"['brandCode','brandDescription']\\\"/>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'user.roles'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.selectedUserCopy.role.roleName}}</span>\\n <div ng-show=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': !vm.hasRole(), 'has-success': vm.hasRole()}\\\">\\n <ca-singleselect model=\\\"vm.selectedUserCopy.role\\\" choices=\\\"vm.roles\\\" order-by=\\\"'roleName'\\\" item-renderer=\\\"'roleName'\\\"/>\\n </div> \\n </ca-form-group-row>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\" >\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"button\\\" ng-click=\\\"$state.go('contacts.users.new')\\\" class=\\\"btn btn-sm btn-default\\\" ng-disabled=\\\"!vm.canAccess('user', 'create')\\\">{{'common.new' | translate}}</button></span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"search\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\" placeholder=\\\"{{'common.search' | translate}}\\\" >\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.showExtraOptions = !vm.showExtraOptions\\\" ng-show=\\\"vm.showExtraOptions\\\"> <i class=\\\"fa fa-fw fa-angle-down\\\"></i> </a>\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.showExtraOptions = !vm.showExtraOptions\\\" ng-hide=\\\"vm.showExtraOptions\\\"> <i class=\\\"fa fa-fw fa-angle-right\\\"></i> </a>\\n </span>\\n </div>\\n </div>\\n <div class=\\\"col-lg-12 b-b\\\" ng-show=\\\"vm.showExtraOptions\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <ca-form-group-row label=\\\"'common.unfiltered'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showInactiveUsers\\\" ng-change=\\\"vm.searchTermChanged()\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"vm.selectUser(user)\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"user in vm.userList\\\" ng-class=\\\"{'focus m-l-none': user.id === vm.selectedUserId}\\\">\\n <div class=\\\"text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': user.id === vm.selectedUserId }\\\">\\n {{user.firstName + ' ' + user.lastName}}\\n <ca-search-list-contact-infos contact-infos=\\\"user.contactInfos\\\"></ca-search-list-contact-infos>\\n </div>\\n \\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\">\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>{{'common.invoice' | translate}}: {{vm.customerInvoice.invoiceNumber}}</h3>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width: 100%;\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.getSelectedInvoiceAsPdf()\\\" ng-hide=\\\"vm.isEditing\\\">{{'customerinvoice.getAsPdf' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.startEdit()\\\" ng-show=\\\"!vm.isEditing\\\" ng-disabled=\\\"!vm.invoiceStatusAllowsEdit() || !vm.canAccess('customerInvoice', 'update')\\\">{{'common.edit' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.saveEdit()\\\" ng-show=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.canAccess('customerInvoice', 'update')\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.cancelEdit()\\\" ng-show=\\\"vm.isEditing\\\">{{'common.cancel' | translate}}</button>\\n <span ng-click=\\\"vm.toggleInvoiceHead()\\\" style=\\\"margin-left:5px\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"vm.showInvoiceHead\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showInvoiceHead\\\"> {{'customerinvoice.hideInvoiceHead' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"!vm.showInvoiceHead\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showInvoiceHead\\\"> {{'customerinvoice.showInvoiceHead' | translate}}</span>\\n </span>\\n </span>\\n </div>\\n </div>\\n\\n <div ng-show=\\\"vm.showInvoiceHead\\\">\\n <!-- Customer invoice head -->\\n <div class=\\\"ca-hover-background\\\" style=\\\"float:left; max-width:50%;\\\" >\\n <div>{{'customerinvoice.invoiceHead' | translate}}:</div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'customerinvoice.invoiceNumber' | translate}}</td>\\n <td>{{vm.customerInvoice.invoiceNumber}}</td>\\n <td>{{'customerinvoice.createdDate' | translate}}</td>\\n <td>{{vm.customerInvoice.createdDate | date:'yyyy-MM-dd'}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerinvoice.invoiceType' | translate}}</td>\\n <td>{{vm.getTypeTranslation(vm.customerInvoice.invoiceType.name)}}</td>\\n <td>{{'customerinvoice.dueDate' | translate}}</td>\\n <td>\\n <span ng-show=\\\"!vm.isEditing\\\">{{vm.customerInvoice.dueDate | date:'yyyy-MM-dd'}}</span>\\n <wj-input-date\\n ng-show=\\\"vm.isEditing\\\"\\n value=\\\"vm.customerInvoice.dueDate\\\"\\n min=\\\"vm.customerInvoice.createdDate\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </td>\\n </tr>\\n <tr>\\n <td>{{'customerinvoice.invoiceStatus' | translate}}</td>\\n <td>{{vm.getStatusTranslation(vm.customerInvoice.invoiceStatus.invoiceStatusName)}}</td>\\n <td>{{'customerinvoice.invoicedDate' | translate}}</td>\\n <td>{{vm.customerInvoice.invoicedDate | date:'yyyy-MM-dd'}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerinvoice.ourReference' | translate}}</td>\\n <td>\\n <span ng-show=\\\"!vm.isEditing\\\">{{vm.customerInvoice.ourReference}}</span>\\n <input ng-show=\\\"vm.isEditing\\\"\\n class=\\\"editable-input form-control\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'customerinvoice.ourReference' | translate}}\\\"\\n ng-model=\\\"vm.customerInvoice.ourReference\\\" />\\n </td>\\n <td>{{'customerinvoice.location' | translate}}</td>\\n <td>{{vm.customerInvoice.location.locationNumber + ' ' + vm.customerInvoice.location.locationName}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <!-- Customer information -->\\n <div class=\\\"ca-hover-background\\\" style=\\\"float:left; max-width:33%; margin-left:30px;\\\">{{'customerinvoice.customer' | translate}}:\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'customerinvoice.customerId' | translate}}:</td>\\n <td>{{ vm.customerInvoice.customer.id }}</td>\\n </tr>\\n <tr>\\n <td>{{'customerinvoice.externalCustomerId' | translate}}:</td>\\n <td>{{vm.customerInvoice.customer.externalCustomerId}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerinvoice.customerName' | translate}}:</td>\\n <td>{{vm.customerInvoice.customer.firstName}} {{vm.customerInvoice.customer.lastName}}</td>\\n </tr>\\n <tr ng-if=\\\"vm.customerInvoice.customer.loyalityNumber > 0\\\">\\n <td>{{'customerinvoice.loyaltyNumber' | translate}}:</td>\\n <td>{{vm.customerInvoice.customer.loyalityNumber}}</td>\\n </tr>\\n <tr ng-repeat=\\\"info in vm.customerInvoice.customer.contactInfo\\\">\\n <td>{{info.contactInfoType.typeName}}</td>\\n <td style=\\\"font-weight: bold;\\\">{{info.value}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div ng-if=\\\"vm.customerInvoice.customer.addresses.length > 0\\\" class=\\\"ca-hover-background\\\" style=\\\"float:left; max-width:33%; margin-left:30px;\\\">{{'address.addresses' | translate}}:\\n <table class=\\\"table table-condensed\\\">\\n <tbody ng-repeat=\\\"addr in vm.customerInvoice.customer.addresses\\\">\\n <tr>\\n <td>{{addr.addressType.typeName}}:</td>\\n <td>{{addr.addressLine1 + ' ' + addr.addressLine2 + ' ' + addr.addressLine3}}<br>{{addr.postalCode + ' ' + addr.city}}<br>{{addr.country}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n\\n <!-- Filtering/search section -->\\n <style>\\n .tabLink a {\\n color: #58666e;\\n font-weight: bold;\\n }\\n </style>\\n <ul class=\\\"nav nav-tabs\\\">\\n <li class=\\\"tabLink\\\"><a ng-click=\\\"vm.changeToInvoiceRowsTab()\\\">{{'customerinvoice.invoiceRows' | translate}}</a></li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\">\\n <!-- Customer invoice rows -->\\n <ca-customer-invoice-rows ng-show=\\\"vm.customerInvoice.invoiceRows.length > 0\\\" customer-invoice=\\\"vm.customerInvoice\\\" is-editing=\\\"vm.isEditing\\\"></ca-customer-invoice-rows>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <style>\\n .ca-test {\\n background-color: rgba(250,215,33,0.5)/*#fad733;*/\\n }\\n .borderTop {\\n border-top:double 3px #eaeff0;\\n }\\n .alignRight {\\n text-align: right;\\n }\\n .greyBackground:hover {\\n background-color:#f3f3f3;\\n }\\n .greyBackground td:hover {\\n background-color: #eaeaea;\\n }\\n </style>\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th>{{ 'customerinvoice.articleVariantNumber' | translate }}</th>\\n <th>{{ 'customerinvoice.articleVariantName' | translate }}</th>\\n <th> </th>\\n <th> </th>\\n <th>{{ 'customerinvoice.rowText' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.quantity' | translate }}</th>\\n <th>{{ 'customerinvoice.intrastat' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.amount' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.totalAmount' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.vat' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.totalVat' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.weight' | translate }} ({{ 'customerinvoice.gramAbbr' | translate }})</th>\\n <th class=\\\"alignRight\\\">{{ 'customerinvoice.totalWeight' | translate }} ({{ 'customerinvoice.gramAbbr' | translate }})</th>\\n <th>{{ 'customerinvoice.currency' | translate }}</th>\\n <th>{{ 'customerinvoice.countryOfOrigin' | translate }}</th>\\n <th>{{ 'customerinvoice.createdDate' | translate }}</th>\\n </thead>\\n <tbody>\\n <tr class=\\\"greyBackground\\\" ng-repeat=\\\"row in vm.customerInvoice.invoiceRows\\\">\\n <td>\\n <span uib-tooltip=\\\"{{ 'customerinvoice.alternativeArticleNumber' | translate }}: {{ row.articleVariant.article.alternativeArticleNumber }}\\\">\\n <a ng-click=\\\"vm.goToArticle(row.articleVariant.article.id)\\\" class=\\\"ca-celllink\\\">{{ row.articleVariant.article.articleNumber }}</a>\\n </span>\\n </td>\\n <td>\\n <span uib-tooltip=\\\"{{ row.articleVariant.article.descriptionLong }}\\\">\\n {{ row.articleVariant.article.articleName }}\\n </span>\\n </td>\\n <td>\\n {{ row.articleVariant.variantDetail1.variantDetailName }}\\n </td>\\n <td>\\n {{ row.articleVariant.variantDetail2.variantDetailName }}\\n </td>\\n <td>\\n <span ng-hide=\\\"vm.isEditing || row.rowText.length > 50\\\" uib-tooltip=\\\"{{ row.rowText }}\\\">\\n {{ vm.getEllipsis(row.rowText, 50) }}\\n </span>\\n <span ng-hide=\\\"vm.isEditing || row.rowText.length <= 50\\\">\\n {{ row.rowText }}\\n </span>\\n <span ng-show=\\\"vm.isEditing\\\"><input type=\\\"text\\\" maxlength=\\\"400\\\" ng-model=\\\"row.rowText\\\"></span>\\n </td>\\n <td class=\\\"alignRight\\\">\\n {{ row.quantity.toFixed(0) }}\\n </td>\\n <td ng-class=\\\"{ true: 'ca-test'}[vm.isTextInvalid(row.intrastatCode)]\\\">\\n <div uib-tooltip=\\\"{{ 'Intrastat mÃ¥ste matas in innan faktura kan skrivas ut' }}\\\" ng-if=\\\"!vm.isEditing && vm.isTextInvalid(row.intrastatCode)\\\" style=\\\"width:100%;\\\">\\n \\n </div>\\n <span ng-hide=\\\"vm.isEditing || vm.isTextInvalid(row.intrastatCode)\\\">{{ row.intrastatCode }}</span>\\n <span ng-show=\\\"vm.isEditing\\\"><input type=\\\"text\\\" maxlength=\\\"12\\\" ng-model=\\\"row.intrastatCode\\\"></span>\\n </td>\\n <td class=\\\"alignRight\\\">{{ row.quantity > 0 ? (row.invoiceAmountExVat / row.quantity).toFixed(2) : (0).toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ row.invoiceAmountExVat.toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">\\n <span uib-tooltip=\\\"{{ row.vat.vatDescription }}\\\">\\n {{ row.quantity > 0 ? (row.vatAmount / row.quantity).toFixed(2) : (0).toFixed(2) }}\\n </span>\\n </td>\\n <td class=\\\"alignRight\\\">\\n <span uib-tooltip=\\\"{{ row.vat.vatDescription }}\\\">\\n {{ row.vatAmount.toFixed(2) }}\\n </span>\\n </td>\\n <td class=\\\"alignRight\\\" ng-class=\\\"{ true: 'ca-test'}[(!row.weight || row.weight <= 0)]\\\">\\n <div uib-tooltip=\\\"{{ 'Vikt mÃ¥ste matas in innan faktura kan skrivas ut' }}\\\" ng-if=\\\"!vm.isEditing && (!row.weight || row.weight <= 0)\\\" style=\\\"width:100%;\\\">\\n \\n </div>\\n <span ng-hide=\\\"vm.isEditing || (!row.weight || row.weight <= 0)\\\">\\n {{ row.quantity > 0 ? (row.weight / row.quantity).toFixed(0) : 0 }}\\n </span>\\n <span ng-show=\\\"vm.isEditing\\\"><input type=\\\"number\\\" ng-model=\\\"row.weight\\\" min=\\\"0\\\" step=\\\"1\\\"></span>\\n </td>\\n <td class=\\\"alignRight\\\">\\n {{ row.weight.toFixed(0) }}\\n </td>\\n <td ng-class=\\\"{ true: 'ca-test'}[vm.isTextInvalid(row.currencyCode)]\\\">\\n <div uib-tooltip=\\\"{{ 'Valutakod mÃ¥ste matas in innan faktura kan skrivas ut' }}\\\" ng-if=\\\"!vm.isEditing && vm.isTextInvalid(row.currencyCode)\\\" style=\\\"width:100%;\\\">\\n \\n </div>\\n <span ng-hide=\\\"vm.isEditing || vm.isTextInvalid(row.currencyCode)\\\">{{ row.currencyCode }}</span>\\n <span ng-show=\\\"vm.isEditing\\\"><input type=\\\"text\\\" maxlength=\\\"3\\\" ng-model=\\\"row.currencyCode\\\"></span>\\n </td>\\n <td ng-class=\\\"{ true: 'ca-test'}[vm.isTextInvalid(row.countryOfOriginCode)]\\\">\\n <div uib-tooltip=\\\"{{ 'Ursprungsland mÃ¥ste matas in innan faktura kan skrivas ut' }}\\\" ng-if=\\\"!vm.isEditing && vm.isTextInvalid(row.countryOfOriginCode)\\\" style=\\\"width:100%;\\\">\\n \\n </div>\\n <span ng-hide=\\\"vm.isEditing || vm.isTextInvalid(row.countryOfOriginCode)\\\">{{ row.countryOfOriginCode }}</span>\\n <span ng-show=\\\"vm.isEditing\\\"><input type=\\\"text\\\" maxlength=\\\"2\\\" ng-model=\\\"row.countryOfOriginCode\\\"></span>\\n </td>\\n <td>{{ row.dateCreated | date:'yyyy-MM-dd' }}</td>\\n </tr>\\n <tr class=\\\"greyBackground borderTop\\\">\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceQuantity().toFixed(0) }}</td>\\n <td> </td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceAmount().toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceTotalAmount().toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceVat().toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceTotalVat().toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceWeight().toFixed(0) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.getTotalCustomerinvoiceTotalWeight().toFixed(0) }}</td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm.term\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n</div>\\n<div class=\\\"input-group m-b-xxs list-menu\\\">\\n <div style=\\\"float: left; max-width:300px;\\\">\\n <div>{{ 'customerinvoice.dateCreated' | translate }}:</div>\\n <div style=\\\"width:49%; float:left;\\\">\\n <wj-input-date\\n value=\\\"vm.searchTerm.createdDateMin\\\"\\n min-date=\\\"vm.createdMinStartDate\\\"\\n max-date=\\\"vm.createdMinEndDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%;\\\"\\n initialized=\\\"vm.captureCreatedDate(s)\\\"\\n valueChanged=\\\"vm.searchTermChange()\\\">\\n </wj-input-date>\\n </div>\\n <div style=\\\"width:49%; float:left;\\\">\\n <wj-input-date\\n value=\\\"vm.searchTerm.createdDateMax\\\"\\n min-date=\\\"vm.createdMaxStartDate\\\"\\n max-date=\\\"vm.createdMaxEndDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%;\\\"\\n initialized=\\\"vm.captureCreatedDate(s)\\\"\\n valueChanged=\\\"vm.searchTermChange()\\\">\\n </wj-input-date>\\n </div>\\n </div>\\n <div style=\\\"float:left; max-width:300px; margin-bottom:10px;\\\">\\n <div> </div>\\n <button ng-click=\\\"vm.resetFilters()\\\" class=\\\"btn btn-default\\\"> {{'common.resetFilters' | translate}} </button>\\n </div>\\n</div>\\n\\n<div class=\\\"col-lg-12\\\"> </div>\\n\\n<div class=\\\"wrapper b-t text-center\\\">\\n <!-- <div style=\\\"float:left;width:200px\\\"><button ng-click=\\\"vm.goToCompleteInvoices()\\\" class=\\\"btn btn-default\\\"> {{'customerinvoice.goToCompleteInvoices' | translate}} </button></div> -->\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadCustomerInvoiceRows()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n</div>\\n\\n<div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th>{{'customerinvoice.invoiceNumber' | translate}}</th>\\n <th>{{'customerinvoice.invoiceType' | translate}}</th>\\n <th>{{'customerinvoice.invoiceStatus' | translate}}</th>\\n <th>{{'customerinvoice.customer' | translate}}</th>\\n <th>{{'customerinvoice.location' | translate}}</th>\\n <th>{{'customerinvoice.invoicedDate' | translate}}</th>\\n <th>{{'customerinvoice.dueDate' | translate}}</th>\\n <th>{{'customerinvoice.createdDate' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"invoice in vm.customerInvoices\\\">\\n <tr ng-class=\\\"{ caRowSelected: invoice.id === vm.selectedInvoice.id }\\\">\\n <td><a ng-click=\\\"vm.selectInvoice(invoice.id)\\\" class=\\\"ca-celllink\\\">{{invoice.invoiceNumber}}</a></td>\\n <td>{{vm.getTypeTranslation(invoice.invoiceType.name)}}</td>\\n <td>{{vm.getStatusTranslation(invoice.invoiceStatus.invoiceStatusName)}}</td>\\n <td>\\n {{invoice.customer.firstName + ' ' + invoice.customer.lastName}}\\n </td>\\n <td>{{invoice.location.locationNumber + ' ' + invoice.location.locationName}}</td>\\n <td>{{invoice.invoicedDate | date:'yyyy-MM-dd'}}</td>\\n <td>{{invoice.dueDate | date:'yyyy-MM-dd'}}</td>\\n <td>{{invoice.createdDate | date:'yyyy-MM-dd'}}</td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"invoiceSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div style=\\\"float:left; max-width: 33%;\\\">\\n <span ng-disabled=\\\"!vm.selectedInvoiceRow || !vm.selectedInvoiceRow.id\\\" ng-click=\\\"vm.toggleSearchFields()\\\" class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showSearchFields\\\"> {{'customerinvoice.showSearchFields' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showSearchFields\\\"> {{'customerinvoice.hideSearchFields' | translate}}</span>\\n </span>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"clear:both; height: 1px;\\\"> </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showSearchFields\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm.term\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <div style=\\\"float: left; max-width:300px;\\\">\\n <div>{{ 'customerinvoice.dateCreated' | translate }}:</div>\\n <div style=\\\"width:49%; float:left;\\\">\\n <wj-input-date\\n value=\\\"vm.searchTerm.createdDateMin\\\"\\n min-date=\\\"vm.createdMinStartDate\\\"\\n max-date=\\\"vm.createdMinEndDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%;\\\"\\n initialized=\\\"vm.captureCreatedDate(s)\\\"\\n valueChanged=\\\"vm.searchTermChange()\\\">\\n </wj-input-date>\\n </div>\\n <div style=\\\"width:49%; float:left;\\\">\\n <wj-input-date\\n value=\\\"vm.searchTerm.createdDateMax\\\"\\n min-date=\\\"vm.createdMaxStartDate\\\"\\n max-date=\\\"vm.createdMaxEndDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%;\\\"\\n initialized=\\\"vm.captureCreatedDate(s)\\\"\\n valueChanged=\\\"vm.searchTermChange()\\\">\\n </wj-input-date>\\n </div>\\n </div>\\n <div style=\\\"float:left; max-width:300px; margin-bottom:10px;\\\">\\n <div> </div>\\n <button ng-click=\\\"vm.resetFilters()\\\" class=\\\"btn btn-default\\\"> {{'common.resetFilters' | translate}} </button>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"wrapper b-t text-center\\\">\\n <div style=\\\"float:left;width:200px\\\"><button ng-click=\\\"vm.goToCompleteInvoices()\\\" class=\\\"btn btn-default\\\"> {{'customerinvoice.goToCompleteInvoices' | translate}} </button></div>\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadCustomerInvoiceRows()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n </div>\\n \\n <div>\\n <div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th>{{'customerinvoice.invoiceNumber' | translate}}</th>\\n <th>{{'customerinvoice.dateCreated' | translate}}</th>\\n <th>{{'customerinvoice.articleVariant' | translate}}</th>\\n <th>{{'customerinvoice.location' | translate}}</th>\\n <th>{{'customerinvoice.quantity' | translate}}</th>\\n <th>{{'customerinvoice.invoiceAmountExVat' | translate}}</th>\\n <th>{{'customerinvoice.vatAmount' | translate}}</th>\\n <th>{{'customerinvoice.weight' | translate}}</th>\\n <th>{{'customerinvoice.countryOfOrigin' | translate}}</th>\\n <th>{{'customerinvoice.intrastat' | translate}}</th>\\n <th>{{'customerinvoice.currency' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"invoiceRow in vm.customerInvoiceRows\\\">\\n <tr ng-class=\\\"{ caRowSelected: invoiceRow.id === vm.selectedInvoiceRow.id }\\\">\\n <td><a ng-click=\\\"vm.selectInvoiceRow(invoiceRow.id)\\\" class=\\\"ca-celllink\\\">{{ invoiceRow.invoice.invoiceNumber }}</a></td>\\n <td>{{ invoiceRow.dateCreated | date: 'yyyy-MM-dd' }}</td>\\n <td>{{ invoiceRow.articleVariant.externalId }} - {{ invoiceRow.rowText }}</td>\\n <td>{{ invoiceRow.location.locationName }}</td>\\n <td>{{ invoiceRow.quantity }}</td>\\n <td>{{ invoiceRow.invoiceAmountExVat.toFixed(2) }} {{ invoiceRow.currencyCode }}</td>\\n <td>{{ invoiceRow.vatAmount.toFixed(2) }} {{ invoiceRow.currencyCode }}</td>\\n <td>{{ invoiceRow.weight.toFixed(2) }}</td>\\n <td>{{ invoiceRow.countryOfOriginCode }}</td>\\n <td>{{ invoiceRow.intrastatCode }}</td>\\n <td>{{ invoiceRow.currencyCode }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"invoiceSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div style=\\\"float:left; max-width: 33%;\\\">\\n <span ng-disabled=\\\"!vm.selectedInvoice || !vm.selectedInvoice.id\\\" ng-click=\\\"vm.toggleSearchFields()\\\" class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showSearchFields\\\"> {{'customerinvoice.showSearchFields' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showSearchFields\\\"> {{'customerinvoice.hideSearchFields' | translate}}</span>\\n </span>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"clear:both; height: 1px;\\\"> </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showSearchFields\\\">\\n <ca-customer-invoice-search search-term=\\\"vm.searchTerm\\\" on-customer-invoice-selected=\\\"vm.transitionToState(invoiceId)\\\"></ca-customer-invoice-search>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <div> </div>\\n <!-- Panel for showing selected invoice goes here -->\\n <ca-customer-invoice\\n ng-if=\\\"vm.selectedInvoice && vm.selectedInvoice.id\\\"\\n invoice-id=\\\"vm.selectedInvoice.id\\\"\\n ></ca-customer-invoice>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\">\\n <style>\\n div.ca-hover-background:hover {\\n background-color: #f6f6f6;\\n }\\n </style>\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>{{'common.order' | translate}}: {{vm.customerOrder.orderNumber}} ({{vm.customerOrder.externalOrderNumber}})</h3>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width: 100%;\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.cancelOrder()\\\" ng-disabled=\\\"!vm.canAccess('customerOrder', 'delete') || !vm.canCancelOrder()\\\">{{'customerorder.cancelOrder' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.printDeliveryNote()\\\">{{'customerorder.deliveryNote' | translate}}</button>\\n <span ng-click=\\\"vm.toggleOrderHead()\\\" style=\\\"margin-left:5px\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"vm.showOrderHead\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showOrderHead\\\"> {{'customerorder.hideOrderHead' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"!vm.showOrderHead\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showOrderHead\\\"> {{'customerorder.showOrderHead' | translate}}</span>\\n </span>\\n </span>\\n </div>\\n </div>\\n\\n <div ng-show=\\\"vm.showOrderHead\\\">\\n <!-- Customer order head -->\\n <div class=\\\"ca-hover-background\\\" style=\\\"float:left; max-width:33%;\\\" >\\n <div>{{'customerorder.orderHead' | translate}}:</div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'customerorder.orderType' | translate}}</td>\\n <td>{{vm.getOrderTypeTranslation(vm.customerOrder.orderType)}}</td>\\n <td>{{'customerorder.orderStatus' | translate}}</td>\\n <td style=\\\"font-weight: bold;\\\">{{vm.getStatusTranslation(vm.customerOrder.status)}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.externalordernumber' | translate}}</td>\\n <td>{{vm.customerOrder.externalOrderNumber}}</td>\\n <td>{{'customerorder.currency' | translate}}</td>\\n <td>{{vm.customerOrder.currency.code}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.fromlocation' | translate}}</td>\\n <td>{{vm.customerOrder.fromLocation.locationNumber + ' ' + vm.customerOrder.fromLocation.locationName}}</td>\\n <td>{{'customerorder.createdDate' | translate}}</td>\\n <td>{{vm.customerOrder.createdDate | date:'yyyy-MM-dd HH:mm:ss'}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.deliveryTerms' | translate}}</td>\\n <td>{{ vm.customerOrder.deliveryTerms }}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.paymentTerms' | translate}}</td>\\n <td>{{ vm.customerOrder.paymentTerms }}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.shippingMethod' | translate}}</td>\\n <td ng-if=\\\"!vm.showDeliveryMethod()\\\">{{ vm.customerOrder.shippingMethod }}</td>\\n <td ng-if=\\\"vm.showDeliveryMethod()\\\">{{ vm.customerOrder.deliveryMethod }}</td>\\n </tr>\\n <!-- <tr> -->\\n <!-- <td>{{'customerorder.warehouse' | translate}}</td> -->\\n <!-- <td>{{vm.customerOrder.warehouse.locationNumber + ' ' + vm.customerOrder.warehouse.locationName}}</td> -->\\n <!-- <td>{{'customerorder.modifiedDate' | translate}}</td> -->\\n <!-- <td>{{vm.customerOrder.modifiedDate | date:'yyyy-MM-dd'}}</td> -->\\n <!-- </tr> -->\\n <tr>\\n <td>{{'customerorder.orderNote' | translate}}</td>\\n <td colspan=\\\"3\\\">\\n <span ng-show=\\\"vm.customerOrder.orderNote.length > 50\\\" tooltip-placement=\\\"right\\\" uib-tooltip=\\\"{{'customerorder.orderNote' | translate}}: {{vm.customerOrder.orderNote}}\\\">\\n {{vm.getEllipsis(vm.customerOrder.orderNote, 50)}}\\n </span>\\n <span ng-show=\\\"vm.customerOrder.orderNote.length <= 50\\\">\\n {{vm.customerOrder.orderNote}}\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <!-- Customer information -->\\n <div class=\\\"ca-hover-background\\\" style=\\\"float:left; min-width:50%; max-width:75%; margin-left:30px;\\\">\\n <div>{{'customerorder.customer' | translate}}:</div>\\n <div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'customerorder.customerId' | translate}}:</td>\\n <td>{{vm.customerOrder.customer.id}}</td>\\n <td rowspan=\\\"4\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"float:left; max-width:49%;\\\">\\n <tr ng-repeat=\\\"info in vm.customerOrder.customer.contactInfo\\\">\\n <td>{{info.contactInfoType}}</td>\\n <td style=\\\"font-weight: bold;\\\">{{info.value}}</td>\\n </tr>\\n </table>\\n </td>\\n <td rowspan=\\\"4\\\" ng-if=\\\"vm.customerOrder.deliveryAddress\\\">\\n <div>{{'customerorder.deliveryAddress' | translate}}:</div>\\n <div style=\\\"margin-left:20px;\\\">\\n {{vm.customerOrder.deliveryAddress.addressLine1}}\\n <span ng-if=\\\"vm.customerOrder.deliveryAddress.addressLine2\\\"><br>{{vm.customerOrder.deliveryAddress.addressLine2}}</span>\\n <span ng-if=\\\"vm.customerOrder.deliveryAddress.addressLine3\\\"><br>{{vm.customerOrder.deliveryAddress.addressLine3}}</span>\\n <br>{{vm.customerOrder.deliveryAddress.zipCode}} {{vm.customerOrder.deliveryAddress.city}}\\n <br>{{vm.customerOrder.deliveryAddress.country}}\\n </div>\\n </td>\\n <td rowspan=\\\"4\\\" ng-if=\\\"vm.customerOrder.invoiceAddress && vm.customerOrder.deliveryAddress.addressLine1 !== vm.customerOrder.invoiceAddress.addressLine1\\\">\\n <div>{{'customerorder.invoiceAddress' | translate}}:</div>\\n <div style=\\\"margin-left:20px;\\\">\\n {{vm.customerOrder.invoiceAddress.addressLine1}}\\n <span ng-if=\\\"vm.customerOrder.invoiceAddress.addressLine2\\\"><br>{{vm.customerOrder.invoiceAddress.addressLine2}}</span>\\n <span ng-if=\\\"vm.customerOrder.invoiceAddress.addressLine3\\\"><br>{{vm.customerOrder.invoiceAddress.addressLine3}}</span>\\n <br>{{vm.customerOrder.invoiceAddress.zipCode}} {{vm.customerOrder.invoiceAddress.city}}\\n <br>{{vm.customerOrder.invoiceAddress.country}}\\n </div>\\n </td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.customerKind' | translate}}:</td>\\n <td>{{vm.customerOrder.customerKind}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.externalCustomerId' | translate}}:</td>\\n <td>{{vm.customerOrder.customerExternalCustomerId}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.customerName' | translate}}:</td>\\n <td>{{vm.customerOrder.customerFirstName}} {{vm.customerOrder.customerLastName}}</td>\\n </tr>\\n <tr>\\n <td>{{'customerorder.customerPhone' | translate}}:</td>\\n <td>{{vm.customerOrder.customerPhone}}</td>\\n </tr>\\n <tr ng-if=\\\"vm.customerOrder.customer.loyalityNumber > 0\\\">\\n <td>{{'customerorder.loyaltyNumber' | translate}}:</td>\\n <td>{{vm.customerOrder.customer.loyalityNumber}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.orderRows}\\\"><a ng-click=\\\"vm.changeToOrderRowsTab()\\\">{{'customerorder.orderRows' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.orderPayments}\\\" ng-if=\\\"vm.customerOrder.payments\\\"><a ng-click=\\\"vm.changeToOrderPaymentsTab()\\\">{{'customerorder.payments' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.orderDeliveries}\\\" ng-if=\\\"vm.customerOrder.deliveries && vm.customerOrder.deliveries.length > 0\\\"><a ng-click=\\\"vm.changeToOrderDeliveriesTab()\\\">{{'customerorder.deliveries' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.orderRefunds}\\\" ng-if=\\\"vm.customerOrder.refunds && vm.customerOrder.refunds.length > 0\\\"><a ng-click=\\\"vm.changeToOrderRefundsTab()\\\">{{'customerorder.refunds' | translate}}</a></li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.orderRows\\\">\\n <!-- Customer order rows -->\\n <ca-customer-order-rows\\n ng-show=\\\"vm.customerOrder.orderRows.length > 0\\\"\\n customer-order=\\\"vm.customerOrder\\\"\\n ></ca-customer-order-rows>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.orderPayments\\\">\\n <!-- Customer order rows -->\\n <ca-customer-order-payments\\n ng-show=\\\"vm.customerOrder.payments.length > 0\\\"\\n customer-order=\\\"vm.customerOrder\\\"\\n ></ca-customer-order-payments>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.orderDeliveries\\\">\\n <!-- Customer order deliveries -->\\n <ca-customer-order-deliveries\\n customer-order=\\\"vm.customerOrder\\\"\\n ></ca-customer-order-deliveries>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.orderRefunds\\\">\\n <!-- Customer order deliveries -->\\n <ca-customer-order-refunds\\n customer-order=\\\"vm.customerOrder\\\"\\n ></ca-customer-order-refunds>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <!-- Delivery head -->\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th style=\\\"width:100px\\\"> </th>\\n <th>{{'customerorder.deliveryNumber' | translate}}</th>\\n <th>{{'customerorder.orderStatus' | translate}}</th>\\n <th>{{'customerorder.warehouse' | translate}}</th>\\n <th>{{'customerorder.plannedDeliveryDate' | translate}}</th>\\n <th>{{'customerorder.actualDeliveryDate' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"delivery in vm.customerOrder.deliveries\\\">\\n <tr>\\n <td ng-click=\\\"delivery.showRows = !delivery.showRows\\\">\\n <span class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!delivery.showRows\\\" uib-tooltip=\\\"{{'customerorder.showDeliveryRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"delivery.showRows\\\" uib-tooltip=\\\"{{'customerorder.hideDeliveryRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>{{delivery.deliveryNumber}}</td>\\n <td>{{vm.getDeliveryStatusTranslation(delivery.status)}}</td>\\n <td>{{delivery.warehouse}}</td>\\n <td>{{delivery.plannedDeliveryDate | date:'yyyy-MM-dd'}}</td>\\n <td>{{delivery.actualDeliveryDate | date:'yyyy-MM-dd'}}</td>\\n </tr>\\n <tr ng-show=\\\"delivery.showRows\\\">\\n <td colspan=\\\"6\\\">\\n <!-- Delivery Rows -->\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th>{{'customerorder.orderRowNumber' | translate}}</th>\\n <th>{{'customerorder.deliveryStatus' | translate}}</th>\\n <th>{{'customerorder.articleVariantNumber' | translate}}</th>\\n <th>{{'customerorder.articleVariantName' | translate}}</th>\\n <th> </th>\\n <th> </th>\\n <th>{{'customerorder.orderedQuantity' | translate}}</th>\\n <th>{{'customerorder.deliveredQuantity' | translate}}</th>\\n <th>{{'customerorder.salesPrice' | translate}}</th>\\n <th>{{'customerorder.discount' | translate}}</th>\\n <th>{{'customerorder.vat' | translate}}</th>\\n <th>{{'customerorder.total' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"deliveryRow in delivery.deliveryRows\\\">\\n <tr>\\n <td>{{deliveryRow.orderRow.orderRowNumber}}</td>\\n <td>{{vm.getDeliveryStatusTranslation(deliveryRow.status)}}\\n <td>\\n <span uib-tooltip=\\\"{{'customerorder.alternativeArticleNumber' | translate}}: {{row.articleVariant.article.alternativeArticleNumber}}\\\">\\n {{deliveryRow.orderRow.articleVariant.article.articleNumber}}\\n </span>\\n </td>\\n <td>\\n <span uib-tooltip=\\\"{{row.articleVariant.article.descriptionLong}}\\\">\\n {{deliveryRow.orderRow.articleVariant.article.articleName}}\\n </span>\\n </td>\\n <td>\\n {{deliveryRow.orderRow.articleVariant.variantDetail1.variantDetailName}}\\n </td>\\n <td>\\n {{deliveryRow.orderRow.articleVariant.variantDetail2.variantDetailName}}\\n </td>\\n <td>{{deliveryRow.orderedQuantity}}</td>\\n <td>{{deliveryRow.deliveredQuantity}}</td>\\n <td>{{deliveryRow.orderRow.salesPrice.toFixed(2)}}</td>\\n <td>{{deliveryRow.orderRow.discount.toFixed(2)}}</td>\\n <td>\\n <span uib-tooltip=\\\"{{row.vat.vatDescription}}\\\">\\n {{(deliveryRow.orderRow.vatAmount).toFixed(2)}}\\n </span>\\n </td>\\n <td>\\n {{ ((deliveryRow.orderRow.salesPrice * deliveryRow.deliveredQuantity) - (deliveryRow.orderRow.discount * deliveryRow.deliveredQuantity)).toFixed(2) }}\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td colspan=\\\"6\\\"> </td>\\n <td>{{ vm.getOrderedQuantitySum(delivery) }}</td>\\n <td>{{ vm.getDeliveredQuantitySum(delivery) }}</td>\\n <td colspan=\\\"3\\\"> </td>\\n <td>{{ vm.getDeliveryTotal(delivery).toFixed(2) }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </td></tr>\\n </tbody>\\n </table>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <!-- Payment head -->\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th style=\\\"width:100px\\\"> </th>\\n <th>{{ 'customerorder.payments.transactionTypeName' | translate }}</th>\\n <th>{{ 'customerorder.payments.transactionCode' | translate }}</th>\\n <th>{{ 'customerorder.payments.paymentReference' | translate }}</th>\\n <th>{{ 'customerorder.currency' | translate }}</th>\\n <th>{{'customerorder.totalPaymentAmount' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"payment in vm.customerOrder.payments\\\">\\n <tr>\\n <td style=\\\"width:100px\\\"> </td>\\n <td>{{payment.paymentTransactionType.paymentTransactionTypeName}}</td>\\n <td>{{payment.paymentTransactionType.paymentTransactionCode}}</td>\\n <td>{{payment.paymentReference}}</td>\\n <td>{{payment.currency.code}}</td>\\n <td>{{payment.receivedAmount}}</td>\\n </tr>\\n </tbody>\\n <tbody ng-if=\\\"vm.customerOrder.payments && vm.customerOrder.payments.length > 0\\\">\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td>{{ vm.customerOrder.totalPaymentAmount }}</td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <!-- Delivery head -->\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th style=\\\"width:100px\\\"> </th>\\n <th>{{'customerorder.refunds.refundDate' | translate}}</th>\\n <th>{{'customerorder.warehouse' | translate}}</th>\\n <th>{{ 'customerorder.refunds.refundTotalQuantity' | translate }}</th>\\n <th>{{ 'customerorder.refunds.refundTotalAmount' | translate }}</th>\\n </thead>\\n <tbody ng-repeat=\\\"refund in vm.customerOrder.refunds\\\">\\n <tr>\\n <td ng-click=\\\"refund.showRows = !refund.showRows\\\">\\n <span class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!refund.showRows\\\"\\n uib-tooltip=\\\"{{'customerorder.showRerundRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"refund.showRows\\\"\\n uib-tooltip=\\\"{{'customerorder.hideRefundRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>{{refund.date | date:'yyyy-MM-dd HH:mm:ss'}}</td>\\n <td>{{refund.warehouse}}</td>\\n <td>{{ vm.getTotalRefundQuantity(refund) }}</td>\\n <td>{{ vm.getTotalRefundAmount(refund).toFixed(2) }}</td>\\n </tr>\\n <tr ng-show=\\\"refund.showRows\\\">\\n <td colspan=\\\"5\\\">\\n <!-- Refund Rows -->\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th>{{'customerorder.articleVariantNumber' | translate}}</th>\\n <th>{{'customerorder.articleVariantName' | translate}}</th>\\n <th> </th>\\n <th> </th>\\n <th>{{'customerorder.quantity' | translate}}</th>\\n <th>{{'customerorder.total' | translate}}</th>\\n <th>{{'customerorder.refunds.affectsStock' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"refundRow in refund.rows\\\">\\n <tr>\\n <td>{{refundRow.articleNumber}}</td>\\n <td>{{refundRow.name}}</td>\\n <td>{{refundRow.attribute1}}</td>\\n <td>{{refundRow.attribute2}}</td>\\n <td>{{refundRow.quantity}}</td>\\n <td>{{refundRow.amount.toFixed(2)}}</td>\\n <td><input type=\\\"checkbox\\\" ng-model=\\\"refundRow.restock\\\" ng-disabled=\\\"true\\\" /></td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n \\n </tbody>\\n <tbody ng-if=\\\"vm.customerOrder.refunds && vm.customerOrder.refunds.length > 0\\\">\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td>{{ vm.getTotalQuantityOfAllRefunds() }}</td>\\n <td>{{ vm.getTotalAmountOfAllRefunds().toFixed(2) }}</td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <th>{{'customerorder.orderRowNumber' | translate}}</th>\\n <th>{{'customerorder.articleVariantNumber' | translate}}</th>\\n <th>{{'customerorder.articleVariantName' | translate}}</th>\\n <th ng-if=\\\"vm.customerOrder.shouldShowRowNote\\\">{{'customerorder.orderNote' | translate}}</th>\\n <th> </th>\\n <th> </th>\\n <th>{{'customerorder.quantity' | translate}}</th>\\n <th>{{'customerorder.salesPrice' | translate}}</th>\\n <th ng-show=\\\"vm.showResellerPrice()\\\">{{'customerorder.resellerSalesPrice' | translate}} </th>\\n <th>{{'customerorder.discount' | translate}}</th>\\n <th>{{'customerorder.vat' | translate}}</th>\\n <th ng-show=\\\"vm.showResellerPrice()\\\">{{'customerorder.resellerVatAmount' | translate}}</th>\\n <th>{{'customerorder.total' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"row in vm.customerOrder.orderRows\\\">\\n <tr>\\n <td>{{row.orderRowNumber}}</td>\\n <td>\\n <span uib-tooltip=\\\"{{'customerorder.alternativeArticleNumber' | translate}}: {{row.articleVariant.article.alternativeArticleNumber}}\\\">\\n {{row.articleVariant.externalId}}\\n </span>\\n </td>\\n <td>\\n <span uib-tooltip=\\\"{{row.articleVariant.article.descriptionLong}}\\\">\\n {{row.articleVariant.article.articleName}}\\n </span>\\n </td>\\n <td ng-if=\\\"vm.customerOrder.shouldShowRowNote\\\">{{row.note}}</td>\\n <td>{{row.articleVariant.variantDetail1.variantDetailName}}</td>\\n <td>{{row.articleVariant.variantDetail2.variantDetailName}}</td>\\n <td>{{row.quantity}}</td>\\n <td>{{row.salesPrice.toFixed(2)}}</td>\\n <td ng-show=\\\"vm.showResellerPrice()\\\">{{row.resellerSalesPrice.toFixed(2)}}</td>\\n <td>{{row.discount.toFixed(2)}}</td>\\n <td>\\n <span uib-tooltip=\\\"{{row.vat.vatDescription}}\\\">\\n {{(row.vatAmount).toFixed(2)}}\\n </span>\\n </td>\\n <td ng-show=\\\"vm.showResellerPrice()\\\">{{row.resellerVatAmount.toFixed(2)}}</td>\\n <td>\\n {{ (row.salesPrice * row.quantity).toFixed(2) }}\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td colspan=\\\"5\\\"> </td>\\n <td>{{ vm.getOrderRowQuantitySum(vm.customerOrder.orderRows) }}</td>\\n <td colspan=\\\"3\\\"> </td>\\n <td>{{ vm.getOrderRowTotalSum(vm.customerOrder.orderRows).toFixed(2) }}</td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\"> </div>\\n<div class=\\\"col-lg-12 m-t b-r b-b b-l b-t\\\" style=\\\"background-color: whitesmoke; padding-top:12px; padding-bottom:12px;\\\">\\n <table class=\\\"col-lg-3 m-r\\\">\\n <tr class=\\\"b-b\\\">\\n <th>{{'common.search' | translate}}</th>\\n </tr>\\n <tr class=\\\"b-b\\\">\\n <td>\\n <div class=\\\"input-group m-b-xxs list-menu\\\" style=\\\"float: left; background-color: white;\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input \\n ng-hide=\\\"vm.searchTerm.onlyOrderNumber\\\"\\n type=\\\"text\\\" \\n class=\\\"form-control input-sm no-border no-bg text-md\\\" \\n ng-model=\\\"vm.searchTerm.term\\\" \\n ng-change=\\\"vm.searchTermChangeDebounced()\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\"\\n ng-keydown=\\\"vm.flushDebouncedIfEnterKey($event.keyCode)\\\">\\n <input \\n ng-show=\\\"vm.searchTerm.onlyOrderNumber\\\"\\n type=\\\"text\\\" \\n class=\\\"form-control input-sm no-border no-bg text-md\\\" \\n ng-model=\\\"vm.searchTerm.term\\\" \\n ng-change=\\\"vm.searchTermChangeDebounced()\\\"\\n placeholder=\\\"{{'common.search' | translate}} {{'customerorder.externalordernumber' | translate}}\\\"\\n ng-keydown=\\\"vm.flushDebouncedIfEnterKey($event.keyCode)\\\">\\n </div>\\n </td>\\n </tr>\\n <tr>\\n <th>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.searchTerm.onlyOrderNumber\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.onlyexternalordernumber' | translate}}\\n </div>\\n </th>\\n </tr>\\n </table>\\n <table class=\\\"col-lg-3 m-l m-r\\\">\\n <tr class=\\\"b-b\\\">\\n <th colspan=\\\"3\\\">{{'common.filter' | translate}} {{'customerorder.orderStatus' | translate}}</th>\\n </tr>\\n <tr class=\\\"b-b\\\">\\n <td colspan=\\\"3\\\">\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterAll\\\" ng-change=\\\"vm.filterAllChanged()\\\" checked> {{'common.all' | translate}}\\n </div>\\n </td>\\n </tr>\\n <tr>\\n <td>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterCreated\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.createdDate' | translate}}\\n </div>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterPending\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.statusPending' | translate}}\\n </div>\\n </td>\\n <td>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterDelivered\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.delivered' | translate}}\\n </div>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterRested\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.rested' | translate}}\\n </div>\\n </td>\\n <td>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterPayed\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.payed' | translate}}\\n </div>\\n <div style=\\\"font-size:12px; margin-right:6px\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterCancelled\\\" ng-change=\\\"vm.searchTermChange()\\\" checked> {{'customerorder.cancelledPlural' | translate}}\\n </div>\\n </td>\\n </tr>\\n </table>\\n <table class=\\\"col-lg-1 m-l\\\">\\n <tr class=\\\"b-b\\\">\\n <th>{{'common.filter' | translate}} {{'customerorder.fromlocation' | translate}}</th>\\n </tr>\\n <tr>\\n <td><ca-singleselect model=\\\"vm.searchTerm.selectedFromLocation\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" item-renderer=\\\"['locationName']\\\" class=\\\"btn\\\" /></td>\\n </tr>\\n </table>\\n</div>\\n\\n<div class=\\\"col-lg-12 b-b\\\">\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadCustomerOrders()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <tr class=\\\"cstmrordr-th\\\">\\n <th style=\\\"width:14%\\\">{{'customerorder.externalordernumber' | translate}}</th>\\n <th style=\\\"width:9%\\\">{{'customerorder.orderType' | translate}}</th>\\n <th style=\\\"width:12%\\\">{{'customerorder.customer' | translate}}</th>\\n <th style=\\\"width:11%\\\">{{'customerorder.fromlocation' | translate}}</th>\\n <th style=\\\"width:7%\\\">{{'customerorder.totalPaymentAmount' | translate}}</th>\\n <th style=\\\"width:7%\\\">{{'customerorder.totalquantity' | translate}}</th>\\n <th style=\\\"width:12%\\\">{{'customerorder.createdDate' | translate}}</th>\\n <!-- <th>{{'customerorder.modifiedDate' | translate}}</th> -->\\n <th style=\\\"width:9%\\\">{{'customerorder.orderStatus' | translate}}</th>\\n <th style=\\\"width:9%\\\">{{'customerorder.deliveries' | translate}}</th>\\n <th style=\\\"width:9%\\\">{{'customerorder.refunds' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"order in vm.customerOrders\\\">\\n <tr class=\\\"cstmrordr-td\\\" ng-class=\\\"{ caRowSelected: order.id === vm.selectedOrder.id }\\\">\\n <td><a ng-click=\\\"vm.selectOrder(order.id)\\\" class=\\\"ca-celllink\\\">{{ order.externalOrderNumber }}</a></td>\\n <td>{{ 'customerorder.type' + order.orderTypeText | translate }}</td>\\n <td>\\n <span uib-tooltip=\\\"{{'user.ssn' | translate}}: {{order.customerSSN}} {{'customerorder.loyaltyNumber' | translate}}: {{order.customerLoyaltyNumber}}\\\">\\n {{order.customerFirstName + ' ' + order.customerLastName}}\\n </span>\\n </td>\\n <td>{{ order.locationNumber }} - {{ order.locationName }}</td>\\n <td>{{order.totalOrderedAmount.toFixed(2)}}</td>\\n <td>{{order.totalQuantity}}</td>\\n <td>{{order.createdDate | date:'yyyy-MM-dd HH:mm:ss'}}</td>\\n <!-- <td>{{order.modifiedDate | date:'yyyy-MM-dd'}}</td> -->\\n <td>{{ 'customerorder.status' + order.statusText | translate }}</td>\\n <td>{{ order.totalDeliveries }}</td>\\n <td>{{ order.totalRefunds }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n tr.cstmrordr-th > th{\\n font-size: 12px;\\n }\\n tr.cstmrordr-td > td{\\n font-size: 12px;\\n }\\n</style>\\n<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div style=\\\"float:left; max-width: 33%;\\\">\\n <span ng-if=\\\"vm.showSearchToggle()\\\" ng-disabled=\\\"!vm.selectedOrder || !vm.selectedOrder.id\\\" ng-click=\\\"vm.toggleSearchFields()\\\" class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showSearchFields\\\"> {{'customerorder.showSearchFields' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showSearchFields\\\"> {{'customerorder.hideSearchFields' | translate}}</span>\\n </span>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"clear:both; height: 1px;\\\"> </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showSearchFields\\\">\\n <ca-customer-order-search search-term=\\\"vm.searchTerm\\\" on-customer-order-selected=\\\"vm.transitionToState(orderId)\\\"></ca-customer-order-search>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-if=\\\"vm.selectedOrder && vm.selectedOrder.id\\\">\\n <div> </div>\\n <!-- Panel for showing selected order goes here -->\\n <ca-customer-order order-id=\\\"vm.selectedOrder.id\\\"></ca-customer-order>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\\n<style>\\n .selectitem {\\n font-size:smaller;\\n padding-top: 4px;\\n padding-bottom: 2px;\\n padding-left: 30px;\\n margin-top:0px;\\n margin-bottom:0px;\\n }\\n .selectitem:hover {\\n background-color:rgb(211, 231, 248);\\n }\\n\\n .choiceitem {\\n font-size:smaller;\\n padding-top: 4px;\\n padding-bottom: 2px;\\n padding-left: 30px;\\n margin-top:0px;\\n margin-bottom:0px;\\n }\\n \\n .choiceitem:hover {\\n background-color:whitesmoke;\\n }\\n</style>\\n<div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\" \\n style=\\\"width:60%; display:inline-block\\\"\\n ng-model=\\\"vm.filter\\\" \\n ng-change=\\\"vm.filterChanged()\\\" \\n ng-show=\\\"vm.areThereItems()\\\"\\n placeholder=\\\"{{ 'common.filter' | translate }} {{ vm.placeholder | translate }}\\\"/>\\n <input type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\" \\n style=\\\"width:100%; display:inline-block\\\"\\n ng-disabled=\\\"!vm.areThereItems()\\\"\\n ng-hide=\\\"vm.areThereItems()\\\"\\n placeholder=\\\"{{ 'discountmltsel.noitems' | translate }} {{ vm.placeholder | translate }} {{ 'discountmltsel.toselect' | translate }}\\\"/>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:19%; display:inline-block;\\\" ng-show=\\\"vm.filter.length === 0 && vm.model.length > 0 && vm.filteredChoices.length > 0\\\" ng-click=\\\"vm.deselectSelection()\\\">{{ 'discountmltsel.clearselected' | translate }}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:19%; display:inline-block;\\\" ng-show=\\\"vm.filter.length === 0 && vm.model.length > 0 && vm.filteredChoices.length > 0\\\" ng-click=\\\"vm.selectFilterSelection()\\\">{{ 'discountmltsel.selectall' | translate }}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.filteredChoices.length === 0 && vm.filter.length === 0 && vm.model.length > 0\\\" ng-click=\\\"vm.deselectSelection()\\\">{{ 'discountmltsel.clearselected' | translate }}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.filter.length === 0 && vm.model.length === 0 && vm.filteredChoices.length > 0\\\" ng-click=\\\"vm.selectFilterSelection()\\\">{{ 'discountmltsel.selectall' | translate }}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.filter.length > 0\\\" ng-disabled=\\\"vm.filteredChoices.length === 0\\\" ng-click=\\\"vm.selectFilterSelection()\\\">{{ 'discountmltsel.selectfiltered' | translate }}</button>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.areThereItems()\\\">\\n <label style=\\\"font-size:smaller; display:flex;\\\">\\n <input type=\\\"checkbox\\\" style=\\\"margin:0px;\\\" ng-model=\\\"vm.hideSelected\\\">\\n <span style=\\\"padding-left:6px;\\\">\\n - {{ 'discountmltsel.hideselected' | translate }}\\n </span>\\n </label>\\n </div>\\n <div class=\\\"b-r b-l b-b b-t\\\" ng-show=\\\"vm.areThereItems()\\\" style=\\\"overflow-y:scroll; height:500px; padding-left:4px\\\">\\n <div style=\\\"height:25px; background-color:aliceblue;\\\" ng-hide=\\\"vm.hideSelected\\\" ng-repeat=\\\"item in vm.model | orderBy: vm.orderBy\\\">\\n <label class=\\\"i-checks col-lg-12 selectitem\\\">\\n <input style=\\\"position:fixed\\\" type=\\\"checkbox\\\" href=\\\"javascript:void();\\\" ng-click=\\\"vm.deselectItem(item)\\\" checked=\\\"checked\\\"/>\\n <i></i>\\n {{ vm.formatRenderer(item) }}\\n </label>\\n </div>\\n <div style=\\\"height:25px; background-color:aliceblue; font-size:smaller;\\\" class=\\\"selectitem\\\" ng-show=\\\"vm.hideSelected\\\">\\n {{ vm.model.length }} - {{ vm.placeholder | translate }} {{ 'discountmltsel.selected' | translate }}.\\n </div>\\n <div class=\\\"b-b m-t-xs m-b-xs\\\"></div>\\n <div style=\\\"height:25px; background-color:white;\\\" ng-repeat=\\\"choice in vm.filteredChoices | orderBy: vm.orderBy\\\">\\n <label class=\\\"i-checks col-lg-12 choiceitem\\\">\\n <input style=\\\"position:fixed\\\" type=\\\"checkbox\\\" ng-click=\\\"vm.selectItem(choice)\\\"/>\\n <i></i>\\n {{ vm.formatRenderer(choice) }}\\n </label>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div class=\\\"col w-xl lter b-r\\\" ui-view=\\\"discountList\\\"></div>\\n \\n <div class=\\\"col w-xxl bg-white-only\\\" ui-view=\\\"discountView\\\"></div>\\n \\n <div class=\\\"col\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<form name=\\\"discountsForm\\\" ng-submit=\\\"vm.save()\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\"> \\n <button class=\\\"btn btn-danger\\\" type=\\\"button\\\" ng-click=\\\"vm.delete()\\\" ng-if=\\\"!vm.isEditing && vm.canDelete()\\\" ng-disabled=\\\"!vm.claimCanDelete()\\\">{{'common.delete' |translate}}</button> \\n <button class=\\\"btn btn-danger\\\" type=\\\"button\\\" ng-click=\\\"vm.cancel()\\\" ng-if=\\\"!vm.isEditing && vm.canCancel()\\\" ng-disabled=\\\"!vm.claimCanUpdate()\\\">{{'discount.cancel' |translate}}</button>\\n <button class=\\\"btn btn-success\\\" type=\\\"button\\\" ng-click=\\\"vm.approve()\\\" ng-if=\\\"!vm.isEditing && vm.canApprove()\\\" ng-disabled=\\\"!vm.claimCanUpdate()\\\">{{'discount.approve' |translate}}</button> \\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing && vm.canEdit()\\\" ng-disabled=\\\"!vm.claimCanUpdate()\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.enableEditingFromCopy()\\\" ng-if=\\\"!vm.isEditing && !vm.isNew\\\" ng-disabled=\\\"!vm.claimCanCreate()\\\"> {{'discount.copyDiscount' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"discountsForm.$invalid || vm.step < vm.maxSteps\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNew\\\"> {{'common.cancel' | translate}} </button>\\n <span> {{ vm.discount.name }} | {{ vm.discount.salesChannel.code }}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div ng-if=\\\"vm.isEditing\\\">\\n <div class=\\\"col-sm-12\\\">\\n <center><h3 style=\\\"display: inline; text-align:center; color: skyblue; padding:0px;\\\">{{ 'discount.step'+ vm.step | translate }}</h3></center>\\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <h5 ng-hide=\\\"vm.step === 1\\\" style=\\\"display: inline; text-align:left; float:left; margin:0px; margin-bottom:-20px; color: rgba(135, 206, 235, 0.3); padding:0px; width:50%\\\">{{ 'discount.step'+ (vm.step - 1) | translate }}</h5>\\n <h5 ng-hide=\\\"vm.step === vm.maxSteps\\\" style=\\\"display: inline; text-align:right; float:right; margin:0px; margin-bottom:-20px; color: rgba(135, 206, 235, 0.3); padding:0px; width:50%\\\">{{ 'discount.step'+ (vm.step + 1) | translate }}</h5>\\n </div>\\n <div class=\\\"col-sm-12\\\" style=\\\"color: skyblue; padding:0px;\\\">\\n <div style=\\\"display:inline-block; width:46.5%; margin-bottom:10px; border-width: 2px; border-color:skyblue\\\" class=\\\"b-b\\\"></div>\\n <div style=\\\"display:inline-block; text-align: center; font-size: 30px; height:64px\\\">\\n <i class=\\\"fa fa-circle-o-notch\\\" ng-style=\\\"vm.setStepRotation()\\\" aria-hidden=\\\"true\\\"></i>\\n </div>\\n <span style=\\\"position: absolute; font-size:20px; margin-left:-22.5px; margin-top: 6px; z-index: 10\\\">{{ vm.step }}</span>\\n <div style=\\\"display:inline-block; width:46.5%; margin-bottom:10px; border-width: 2px; border-color:skyblue\\\" class=\\\"b-b\\\"></div>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.step === 1\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <div class=\\\"b\\\" style=\\\"border-radius:12px;color:green; border-color:darkgreen; background-color:rgba(0,255,0,0.15); padding:8px;\\\" ng-if=\\\"vm.discount.status === 'discount.Approved'\\\">\\n <i class=\\\"fa fa-check-circle\\\" aria-hidden=\\\"true\\\"></i>\\n <i class=\\\"fa fa-lock\\\" aria-hidden=\\\"true\\\"></i>\\n {{ 'discount.isapproved' | translate}} \\n </div> \\n <div class=\\\"b\\\" style=\\\"border-radius:12px;color:gray; border-color:grey; background-color:whitesmoke; padding:8px;\\\" ng-if=\\\"vm.discount.status === 'discount.Cancelled'\\\">\\n <i class=\\\"fa fa-times-circle\\\" aria-hidden=\\\"true\\\"></i>\\n {{ 'discount.iscancelled' | translate}} \\n </div>\\n <br>\\n </div> \\n <ca-form-group-row label=\\\"'discount.name'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.name }}</span>\\n <div ng-class=\\\"{'has-error': discountsForm.discountName.$invalid && discountsForm.discountName.$touched}\\\">\\n <input name=\\\"discountName\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.name\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountName.$invalid && discountsForm.discountName.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.code'\\\" ng-show=\\\"vm.isNew === false\\\">\\n <span><b>{{ vm.discount.code }}</b></span><i style=\\\"padding-left:24px; color: lightgrey;\\\">{{ 'discount.autogenerated' | translate }}</i>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.description'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\"><textarea style=\\\"resize:none\\\" rows = \\\"5\\\" cols=\\\"60\\\" disabled=\\\"true\\\" ng-model=\\\"vm.discount.description\\\"></textarea></div>\\n <div>\\n <textarea style=\\\"resize:none\\\" rows = \\\"5\\\" cols=\\\"60\\\" name=\\\"discountDescription\\\" ng-change=\\\"vm.descriptionMaxLength(1000)\\\" ng-if=\\\"vm.isEditing\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.description\\\" enter-as-tab >\\n </textarea>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.salesChannel'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.salesChannel.code }} - {{ vm.discount.salesChannel.name }}</span>\\n <div ng-class=\\\"{'has-error': !vm.isSalesChannelSelected() && discountsForm.discountSalesChannel.$touched}\\\" ng-if=\\\"vm.isEditing\\\">\\n <select name=\\\"discountSalesChannel\\\" ng-model=\\\"vm.discount.salesChannel\\\" ng-options=\\\"salesChannel.code + ' ' + salesChannel.name for salesChannel in vm.salesChannels\\\" class=\\\"form-control enterAsTab\\\" enter-as-tab required >\\n <option value=\\\"\\\" selected></option>\\n </select>\\n <span class=\\\"help-block\\\" ng-show=\\\"!vm.isSalesChannelSelected() && discountsForm.discountSalesChannel.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.startDate'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.formatDate(vm.discount.startDate) }}</span>\\n <div ng-class=\\\"{'has-error': (discountsForm.discountStartDate.$invalid || vm.discount.startDate >= vm.discount.endDate) && discountsForm.discountStartDate.$touched}\\\">\\n <input name=\\\"discountStartDate\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"date\\\" format=\\\"yyyy-MM-dd\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.startDate\\\" enter-as-tab required/>\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountStartDate.$invalid && discountsForm.discountStartDate.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'discount.endDate'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.formatDate(vm.discount.endDate) }}</span>\\n <div ng-class=\\\"{'has-error': (discountsForm.discountEndDate.$invalid || vm.discount.endDate <= vm.discount.startDate) && discountsForm.discountEndDate.$touched}\\\">\\n <input name=\\\"discountEndDate\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"date\\\" format=\\\"yyyy-MM-dd\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.endDate\\\" enter-as-tab required/> \\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountEndDate.$invalid && discountsForm.discountEndDate.$touched\\\">{{ 'discount.required' | translate }}</span>\\n <span class=\\\"help-block\\\" ng-show=\\\"((!discountsForm.discountStartDate.$invalid && vm.discount.startDate >= vm.discount.endDate) || (!discountsForm.discountEndDate.$invalid && vm.discount.endDate < vm.discount.startDate)) && discountsForm.discountStartDate.$touched && discountsForm.discountEndDate.$touched\\\">\\n {{ 'discount.endDate' | translate }} {{ 'flexmonster.toolbar.lessOrEqual' | translate }} {{ 'discount.startDate' | translate }}.\\n </span> \\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.discountTypes'\\\">\\n <span ng-if=\\\"!vm.isEditing || !vm.isNew\\\">{{ vm.discount.discriminator.name | translate }}</span>\\n <div ng-if=\\\"vm.isEditing && vm.isNew\\\">\\n <ca-singleselect model=\\\"vm.discount.discriminator\\\" choices=\\\"vm.discountTypes\\\" order-by=\\\"'id'\\\" item-renderer=\\\"['name']\\\" />\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.parameters'\\\">\\n <div ng-if=\\\"vm.discount.discriminator.value === 'BuyXgetYDiscount'\\\">\\n <span class=\\\"col-md-1\\\"> {{ 'discount.valueX' | translate }}: </span>\\n <span class=\\\"col-md-2\\\" ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.valueX }}</span>\\n <div class=\\\"col-md-3\\\" ng-if=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': (discountsForm.discountX.$invalid && discountsForm.discountX.$touched) || !vm.valueXandYValid()}\\\">\\n <input style=\\\"width: 70px; height: 25px; margin:0px;\\\" name=\\\"discountX\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.valueX\\\" enter-as-tab required/>\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountX.$invalid && discountsForm.discountX.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n <span class=\\\"col-md-1\\\">{{ 'discount.valueY' | translate }}: </span>\\n <span class=\\\"col-md-2\\\" ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.valueY }}</span>\\n <div class=\\\"col-md-3\\\" ng-if=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': (discountsForm.discountY.$invalid && discountsForm.discountY.$touched) || !vm.valueXandYValid()}\\\">\\n <input style=\\\"width: 70px; height: 25px; margin:0px;\\\" name=\\\"discountY\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.valueY\\\" enter-as-tab required/>\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountY.$invalid && discountsForm.discountY.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.discount.discriminator.value === 'BuyXgetCheapestDiscount'\\\">\\n <span class=\\\"col-md-1\\\">{{ 'discount.valueX' | translate }}: </span>\\n <span class=\\\"col-md-2\\\" ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.valueX }}</span>\\n <div class=\\\"col-md-3\\\" ng-if=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': (discountsForm.discountX.$invalid && discountsForm.discountX.$touched) || !vm.valueXandYValid()}\\\">\\n <input style=\\\"width: 70px; height: 25px; margin:0px;\\\" name=\\\"discountX\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.valueX\\\" enter-as-tab required/>\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountX.$invalid && discountsForm.discountX.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.discount.discriminator.value === 'StandardDiscountAmount'\\\">\\n <span class=\\\"col-md-4\\\">{{ 'discount.amount' | translate }}: </span>\\n <span class=\\\"col-md-2\\\" ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.discountAmount }}</span>\\n <div class=\\\"col-md-4\\\" ng-if=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': discountsForm.discountAmount.$invalid && discountsForm.discountAmount.$touched}\\\">\\n <input style=\\\"width: 70px; height: 25px; margin:0px;\\\" name=\\\"discountAmount\\\" type=\\\"number\\\" min=\\\"0\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.discountAmount\\\" enter-as-tab required/>\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountAmount.$invalid && discountsForm.discountAmount.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.discount.discriminator.value === 'StandardDiscountPercent'\\\">\\n <span class=\\\"col-md-4\\\">{{ 'discount.percent' | translate }}: </span>\\n <span class=\\\"col-md-2\\\" ng-if=\\\"!vm.isEditing\\\">{{ vm.discount.discountPercent }}%</span>\\n <div class=\\\"col-md-4\\\" ng-if=\\\"vm.isEditing\\\" ng-class=\\\"{'has-error': discountsForm.discountPercent.$invalid && discountsForm.discountPercent.$touched}\\\">\\n <span style=\\\"display: inline-flex;\\\">\\n <input style=\\\"display:inline-flex; width: 76px; height: 25px; margin:0px;\\\" name=\\\"discountPercent\\\" type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.discountPercent\\\" ng-change=\\\"vm.validatePercentRange(0, 100)\\\" enter-as-tab required>\\n <span style=\\\"font-size:smaller; position:relative; top:6px; right:40px; display:inline-flex;\\\">\\n %\\n </span> \\n </span>\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountPercent.$invalid && discountsForm.discountPercent.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.itemGroups'\\\" ng-show=\\\"!vm.isEditing\\\">\\n <div ng-repeat=\\\"itemGroup in vm.discount.itemGroups | orderBy:'name'\\\" ng-show=\\\"!vm.itemGroupsEmpty()\\\">{{ itemGroup.code + \\\" \\\" + itemGroup.name }}</div>\\n <div ng-show=\\\"vm.itemGroupsEmpty()\\\"><i style=\\\"color: lightgrey;\\\">{{ 'discount.noItemGroups' | translate }}</i></div>\\n </ca-form-group-row>\\n </div>\\n <div ng-if=\\\"vm.step === 2\\\">\\n <ca-discount-multiselect model=\\\"vm.discount.mainGroups\\\" choices=\\\"vm.mainGroups\\\" filter-by=\\\"['name', 'code']\\\" order-by=\\\"'code'\\\" placeholder=\\\"'discount.mainGroups'\\\" item-renderer=\\\"['code', 'name']\\\"></ca-discount-multiselect>\\n </div>\\n <div ng-if=\\\"vm.step === 3\\\">\\n <ca-discount-multiselect model=\\\"vm.discount.brands\\\" choices=\\\"vm.brands\\\" filter-by=\\\"['name', 'code']\\\" order-by=\\\"'code'\\\" placeholder=\\\"'discount.brands'\\\" item-renderer=\\\"['code', 'name']\\\"></ca-discount-multiselect>\\n </div>\\n <div ng-if=\\\"vm.step === 4\\\">\\n <ca-discount-multiselect model=\\\"vm.discount.itemGroups\\\" choices=\\\"vm.itemGroups\\\" filter-by=\\\"['name', 'code']\\\" order-by=\\\"'code'\\\" placeholder=\\\"'discount.itemGroups'\\\" item-renderer=\\\"['code', 'name']\\\"></ca-discount-multiselect> \\n </div>\\n <div ng-if=\\\"vm.step === 5\\\">\\n <ca-form-group-row label=\\\"'discount.name'\\\">\\n <span>{{ vm.discount.name }}</span>\\n <!--\\n <div ng-class=\\\"{'has-error': discountsForm.discountName.$invalid && discountsForm.discountName.$touched}\\\">\\n <input name=\\\"discountName\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.name\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"discountsForm.discountName.$invalid && discountsForm.discountName.$touched\\\">{{ 'discount.required' | translate }}</span>\\n </div>\\n -->\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.description'\\\">\\n <div><textarea style=\\\"resize:none\\\" rows = \\\"5\\\" cols=\\\"60\\\" disabled=\\\"true\\\" ng-model=\\\"vm.discount.description\\\"></textarea></div>\\n <!--\\n <div>\\n <textarea style=\\\"resize:none\\\" rows = \\\"5\\\" cols=\\\"60\\\" name=\\\"discountDescription\\\" ng-change=\\\"vm.descriptionMaxLength(1000)\\\" ng-if=\\\"vm.isEditing\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.discount.description\\\" enter-as-tab >\\n </textarea>\\n </div>\\n -->\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.salesChannel'\\\">\\n <span>{{ vm.discount.salesChannel.code }} - {{ vm.discount.salesChannel.name }}</span>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.date'\\\">\\n <span>{{ vm.formatDate(vm.discount.startDate) }} - {{ vm.formatDate(vm.discount.endDate) }}</span>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.discountTypes'\\\">\\n <span>{{ vm.discount.discriminator.name | translate }}</span>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.parameters'\\\">\\n <div ng-if=\\\"vm.discount.discriminator.value === 'BuyXgetYDiscount'\\\">\\n <span class=\\\"col-md-1\\\">{{ 'discount.valueX' | translate }}: </span>\\n <span class=\\\"col-md-2\\\">{{ vm.discount.valueX }}</span>\\n <span class=\\\"col-md-1\\\">{{ 'discount.valueY' | translate }}: </span>\\n <span class=\\\"col-md-2\\\">{{ vm.discount.valueY }}</span>\\n </div>\\n <div ng-if=\\\"vm.discount.discriminator.value === 'BuyXgetCheapestDiscount'\\\">\\n <span class=\\\"col-md-1\\\">{{ 'discount.valueX' | translate }}: </span>\\n <span class=\\\"col-md-2\\\">{{ vm.discount.valueX }}</span>\\n </div>\\n <div ng-if=\\\"vm.discount.discriminator.value === 'StandardDiscountAmount'\\\">\\n <span class=\\\"col-md-4\\\">{{ 'discount.amount' | translate }}: </span>\\n <span class=\\\"col-md-2\\\">{{ vm.discount.discountAmount }}</span>\\n </div>\\n <div ng-if=\\\"vm.discount.discriminator.value === 'StandardDiscountPercent'\\\">\\n <span class=\\\"col-md-4\\\">{{ 'discount.percent' | translate }}: </span>\\n <span class=\\\"col-md-2\\\">{{ vm.discount.discountPercent }}%</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.itemGroups'\\\">\\n <div ng-repeat=\\\"itemGroup in vm.discount.itemGroups | orderBy:'name'\\\" ng-show=\\\"!vm.itemGroupsEmpty()\\\">{{ itemGroup.code + \\\" \\\" + itemGroup.name }}</div>\\n <div ng-show=\\\"vm.itemGroupsEmpty()\\\"><i style=\\\"color: lightgrey;\\\">{{ 'discount.noItemGroups' | translate }}</i></div>\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"col-md-12 m-t-xs m-b-xs\\\" ng-if=\\\"vm.isEditing && vm.itemGroupValidationErrors.length > 0\\\">\\n <div class=\\\"b\\\" style=\\\"color:red; border-color:darkred; background-color:mistyrose; padding:8px;\\\">\\n <div> {{ 'discount.itemgroupexists' | translate }} </div>\\n <br>\\n <div ng-repeat=\\\"error in vm.itemGroupValidationErrors\\\">\\n {{ error.message }}\\n <i>({{ 'discount.ondiscount' | translate }}: <span ng-repeat=\\\"discountName in error.onDiscounts\\\">\\\"{{discountName}}\\\" </span>)</i>\\n </div>\\n <br>\\n <button class=\\\"btn btn-sm btn-danger\\\" type=\\\"button\\\" ng-click=\\\"vm.removeErrorItemGroups()\\\"> {{ 'discount.itemgroupclearthese' | translate }} </button>\\n <div>\\n {{ 'discount.itemgroupfix' | translate }}\\n </div>\\n </div>\\n </div> \\n <div class=\\\"col-sm-12 b-t\\\" style=\\\"padding-top: 8px\\\" ng-show=\\\"vm.isEditing\\\">\\n <button style=\\\"display:inline-block;\\\" class=\\\"btn btn-sm btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"!vm.isNew && vm.step === 1\\\"> {{'common.cancel' | translate}} </button>\\n <button style=\\\"display:inline-block;\\\" class=\\\"btn btn-sm btn-default\\\" type=\\\"button\\\" ng-show=\\\"vm.step > 1\\\" ng-click=\\\"vm.changeStep(false)\\\"> {{ 'common.back' | translate }}</button>\\n <button style=\\\"float:right;\\\" class=\\\"btn btn-sm btn-primary\\\" type=\\\"button\\\" ng-show=\\\"vm.step < vm.maxSteps\\\" ng-click=\\\"vm.changeStep(true)\\\" ng-disabled=\\\"discountsForm.$invalid || (vm.itemGroupValidationErrors.length > 0 && vm.step === 4) || vm.endDateLessThanStartDate() || !vm.valueXandYValid()\\\">{{ 'common.next' | translate }}</button>\\n <button style=\\\"float:right;\\\" class=\\\"btn btn-sm btn-success\\\" type=\\\"submit\\\" ng-click=\\\"vm.approveDiscount = true\\\" ng-show=\\\"!discountsForm.$invalid && vm.step === vm.maxSteps\\\" ng-disabled=\\\"!vm.isApproveDiscountEnabled()\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'discount.saveandapprovetooltip' | translate}}\\\" tooltip-popup-delay=\\\"50\\\"> {{'common.save' | translate}} & {{'common.approve' | translate}}</button>\\n </div>\\n <div class=\\\"col-sm-12\\\" style=\\\"padding-top: 8px\\\" ng-show=\\\"vm.isEditing\\\">\\n <button style=\\\"display:inline-block;\\\" class=\\\"btn btn-sm btn-default\\\" type=\\\"button\\\" ng-show=\\\"vm.step === vm.maxSteps\\\" ng-click=\\\"vm.setStep(1)\\\">{{ 'discount.beginning' | translate }}</button>\\n <button style=\\\"float:right;\\\" class=\\\"btn btn-sm btn-primary\\\" type=\\\"button\\\" ng-show=\\\"vm.step === 1\\\" ng-click=\\\"vm.setStep(vm.maxSteps)\\\" ng-disabled=\\\"discountsForm.$invalid || vm.itemGroupValidationErrors.length > 0 || vm.endDateLessThanStartDate() || !vm.valueXandYValid()\\\">{{ 'discount.complete' | translate }}</button> \\n <button style=\\\"float:right;\\\" class=\\\"btn btn-sm btn-primary\\\" type=\\\"submit\\\" ng-show=\\\"!discountsForm.$invalid && vm.step === vm.maxSteps\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'discount.savetooltip' | translate}}\\\" tooltip-popup-delay=\\\"50\\\"> {{'common.save' | translate}}</button>\\n </div> \\n </div>\\n </div>\\n</form>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-disabled=\\\"!vm.claimCanCreate()\\\" ng-click=\\\"$state.go('discountManagement.discounts.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.filter\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged(true)\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\"> \\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" >\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.flipDropDownFilter()\\\" ng-show=\\\"vm.filterDropdownIsVisisble\\\"> <i class=\\\"fa fa-fw fa-angle-down\\\"></i> </a>\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.flipDropDownFilter()\\\" ng-hide=\\\"vm.filterDropdownIsVisisble\\\"> <i class=\\\"fa fa-fw fa-angle-right\\\"></i> </a>\\n </span>\\n </div>\\n </div>\\n <div class=\\\"col-lg-12 b-b\\\" style=\\\"font-size:small;text-align:left; margin:8px\\\" ng-show=\\\"vm.filterDropdownIsVisisble\\\">\\n <b style=\\\"font-size:small;\\\"> {{'discount.filterOn' | translate }}:</b>\\n <ca-form-group-row label=\\\"'discount.filterCancelled'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" name=\\\"showCancelled\\\" ng-click=\\\"vm.flipCancelled()\\\" ng-checked=\\\"vm.showCancelled\\\"/>\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.filterApproved'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" name=\\\"showApproved\\\" ng-click=\\\"vm.flipApproved()\\\" ng-checked=\\\"vm.showApproved\\\"/>\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'discount.filterCompleted'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" name=\\\"showCompleted\\\" ng-click=\\\"vm.flipCompleted()\\\" ng-checked=\\\"vm.showCompleted\\\"/>\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"''\\\"> \\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.monthsBackOption\\\" ng-change=\\\"vm.searchTermChanged(true)\\\" style=\\\"display: inline-block\\\">\\n <ui-select-match placeholder=\\\"\\\" style=\\\"height:20px\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"months in vm.monthsOptions\\\">\\n <span>{{months}} {{ 'purchaseorderanalysis.monthsBack' | translate }}</span>\\n </ui-select-choices>\\n </ui-select>\\n <span>{{ 'purchaseorderanalysis.monthsBack' | translate }}</span>\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <div ng-repeat=\\\"discount in vm.discounts\\\" ng-style=\\\"vm.listBackgroundStyle(discount)\\\">\\n <div style=\\\"font-size:small;background-color:rgba(80,80,80, 0.7); color: white; border-top-left-radius: 10px; border-bottom-right-radius: 10px; margin:6px; padding-left:4px\\\" \\n ng-show=\\\"discount.displayToday\\\">{{'common.currentDate' | translate}}: {{vm.currentDate | date: 'yyyy-MM-dd'}}</div>\\n <a ng-click=\\\"vm.selectDiscount(discount)\\\" class=\\\"list-group-item m-l\\\" ng-class=\\\"{'focus m-l-none': discount.id === vm.selectedDiscountId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': discount.id === vm.selectedDiscountId }\\\">\\n <b><span class=\\\"pull-left text-ellipsis lg-label\\\">{{discount.name}} | {{discount.salesChannelCode}}</span></b> \\n <span style=\\\"float: right; font-size:medium\\\" ng-show=\\\"discount.status === 'discount.Created'\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'discount.status.created' | translate}}\\\" tooltip-popup-delay=\\\"50\\\">\\n <i class=\\\"fa fa-circle-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <span style=\\\"float: right; font-size:medium\\\" ng-show=\\\"discount.status === 'discount.Approved'\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'discount.status.approved' | translate}}\\\" tooltip-popup-delay=\\\"50\\\">\\n <i class=\\\"fa fa-check-circle\\\" aria-hidden=\\\"true\\\"></i>\\n <i class=\\\"fa fa-lock\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <span style=\\\"float: right; font-size:medium\\\" ng-show=\\\"discount.status === 'discount.Cancelled'\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'discount.status.cancelled' | translate}}\\\" tooltip-popup-delay=\\\"50\\\">\\n <i class=\\\"fa fa-times-circle\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <span class=\\\"pull-left text-ellipsis lg-label\\\" style=\\\"font-size:smaller;\\\">\\n {{ discount.type | translate }}\\n </span>\\n <span class=\\\"pull-left text-ellipsis lg-label\\\" style=\\\"font-size:smaller;\\\">\\n <span ng-hide=\\\"discount.status === 'discount.Cancelled'\\\">\\n {{discount.startDate.toString().substring(0,10)}} - {{discount.endDate.toString().substring(0,10)}}\\n </span>\\n <span ng-show=\\\"discount.status === 'discount.Cancelled'\\\">\\n <s>{{discount.startDate.toString().substring(0,10)}} - {{discount.endDate.toString().substring(0,10)}}</s>\\n </span>\\n </span>\\n <span class=\\\"pull-left text-ellipsis lg-label\\\" style=\\\"font-size:smaller;\\\">\\n <span ng-show=\\\"discount.daysAgo > 0 && discount.daysAgo !== undefined && discount.status !== 'discount.Cancelled'\\\">\\n ({{discount.daysAgo}} \\n <span ng-show=\\\"discount.daysAgo === 1\\\">{{'discount.day' | translate }}</span> \\n <span ng-show=\\\"discount.daysAgo > 1\\\">{{'discount.days' | translate }}</span> {{'discount.ago' | translate }})\\n </span>\\n <span ng-show=\\\"discount.daysUntil > 0 && discount.daysUntil !== undefined && discount.status !== 'discount.Cancelled'\\\">\\n ({{'discount.in' | translate }} {{discount.daysUntil}} \\n <span ng-show=\\\"discount.daysUntil === 1\\\">{{'discount.day' | translate }}</span> \\n <span ng-show=\\\"discount.daysUntil > 1\\\">{{'discount.days' | translate }}</span>) \\n </span>\\n </span>\\n <span class=\\\"text-ellipsis lg-label\\\" style=\\\"font-size:smaller;\\\" ng-hide=\\\"discount.status === 'discount.Cancelled'\\\"><b>{{'discount.description' | translate}}: </b>{{discount.descriptionShort}}</span>\\n <span class=\\\"text-ellipsis lg-label\\\" style=\\\"font-size:smaller;\\\" ng-show=\\\"discount.status === 'discount.Cancelled'\\\"><s><b>{{'discount.description' | translate}}: </b>{{discount.descriptionShort}}</s></span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <center>\\n <div\\n uib-pagination\\n boundary-links=\\\"true\\\"\\n total-items=\\\"vm.totalDiscounts\\\"\\n items-per-page=\\\"vm.pageSize\\\"\\n max-size=\\\"5\\\"\\n ng-change=\\\"vm.searchTermChanged(true)\\\"\\n ng-model=\\\"vm.currentPage\\\"\\n class=\\\"pagination-sm \\\"\\n previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\"\\n first-text=\\\"«\\\"\\n last-text=\\\"»\\\"\\n style=\\\"text-align: center;\\\"></div>\\n </div>\\n </center>\\n</div>\\n\\n<!--\\n\\n<style>\\n div.scrollmenu {\\n background-color: lightslategrey;\\n overflow: auto;\\n white-space: nowrap;\\n margin:8px;\\n }\\n\\n div.flipped {\\n transform:rotateX(180deg);\\n -ms-transform:rotateX(180deg); /* IE 9 */\\n -webkit-transform:rotateX(180deg); /* Safari and Chrome */\\n }\\n\\n div.scrollmenu a {\\n display: inline-block;\\n color: white;\\n text-align: center;\\n padding: 4px;\\n width: 124px;\\n text-decoration: none;\\n }\\n\\n div.scrollmenu a.flipped {\\n transform:rotateX(180deg);\\n -ms-transform:rotateX(180deg); /* IE 9 */\\n -webkit-transform:rotateX(180deg); /* Safari and Chrome */\\n }\\n\\n div.scrollmenu a:hover {\\n background-color: #acc2d8;\\n }\\n\\n div.scrollmeny a.flipped b {\\n color: white;\\n margin: 7px;\\n }\\n\\n table.discounttable {\\n width: 100%;\\n display: table;\\n table-layout: fixed;\\n border-collapse: collapse;\\n background-color: whitesmoke;\\n max-width: 1460px;\\n margin-top: 10px;\\n }\\n\\n table.discounttable thead tr td {\\n background-color: steelblue;\\n display: table-cell;\\n text-align: center;\\n vertical-align: middle;\\n word-wrap: break-word;\\n }\\n\\n table.discounttable thead tr td:hover {\\n background-color: lightskyblue;\\n }\\n\\n table.discounttable thead tr td.weekdayindex {\\n color: white;\\n border: 1px solid white;\\n height: 12px;\\n }\\n\\n table.discounttable thead tr td.weekdayname {\\n color: white;\\n border: 1px solid white;\\n height: 16px;\\n }\\n\\n table.discounttable thead tr th {\\n font-size: 24px;\\n }\\n\\n table.discounttable tbody tr td {\\n height: 108px;\\n border-left: 1px dashed grey;\\n border-right: 1px dashed grey;\\n border-bottom: 1px solid grey;\\n background-color: whitesmoke;\\n }\\n\\n table.discounttable tbody tr td div {\\n height: 100px;\\n border: 1px solid grey;\\n background-color: lightsalmon;\\n margin:4px;\\n border-radius: 15px;\\n }\\n\\n table.discounttable tbody tr td div:hover {\\n background-color: rgb(255, 200, 175);\\n }\\n\\n table.discounttable tbody tr td div a {\\n font-size:16px;\\n padding: 8px;\\n overflow: hidden;\\n text-overflow:clip;\\n }\\n\\n</style>\\n--><!--\\n<div class=\\\"col-lg-12\\\" style=\\\"padding:20px\\\">\\n <table class=\\\"discounttable\\\">\\n <thead>\\n <tr>\\n <th colspan=\\\"{{ vm.months[vm.selectedMonth].days.length }}\\\" style=\\\"text-align: center\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-click=\\\"vm.decreaseMonth()\\\"><i class=\\\"fa fa-angle-double-left\\\" aria-hidden=\\\"true\\\"></i></button>\\n {{ vm.months[vm.selectedMonth].name.toUpperCase() }} - {{ vm.selectedYear }}\\n <button class=\\\"btn btn-xs btn-default\\\" ng-click=\\\"vm.increaseMonth()\\\"><i class=\\\"fa fa-angle-double-right\\\" aria-hidden=\\\"true\\\"></i></button>\\n </th>\\n </tr>\\n <tr>\\n <td class=\\\"weekdayname\\\" ng-repeat=\\\"day in vm.months[vm.selectedMonth].days\\\">{{ day.name.substring(0, 3) }}</td>\\n </tr>\\n <tr>\\n <td class=\\\"weekdayindex\\\" ng-repeat=\\\"day in vm.months[vm.selectedMonth].days\\\">{{ day.index }}</td>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"discount in vm.discounts\\\">\\n <td ng-repeat=\\\"day in vm.months[vm.selectedMonth].days\\\" colspan=\\\"{{ vm.getColspanForDiscount(discount, day) }}\\\" ng-if=\\\"!vm.shouldSkipRepeat(discount, day)\\\">\\n <div ng-show=\\\"vm.shouldDisplayDiscount(discount, day)\\\">\\n <a ng-show=\\\"day.index === discount.startDate.getDate()\\\" href = \\\"https://www.w3schools.com/tags/tag_a.asp\\\">\\n <b>{{ discount.name }}</b>\\n <br>\\n </a>\\n <span>\\n {{ discount.description.substring(0, 50) }} [...].\\n </span>\\n </div>\\n </td>\\n </tr>\\n <!--<tr> \\n <td ng-repeat=\\\"day in vm.months[vm.selectedMonth].days\\\"></td>\\n </tr>--><!--\\n </tbody>\\n </table>\\n</div>\\n\\n<br>\\n\\n<div class=\\\"scrollmenu flipped\\\">\\n <a class=\\\"flipped b-r\\\" ng-repeat=\\\"date in vm.dates\\\">\\n <b class=\\\"b-r\\\">   </b>\\n <b class=\\\"b-r\\\">     </b>\\n <b class=\\\"b-r\\\">     </b>\\n <b class=\\\"b-r\\\">     </b>\\n <b class=\\\"b-r\\\">     </b>\\n <b class=\\\"b-r\\\">     </b>\\n <b>   </b>\\n </a>\\n <br>\\n <a class=\\\"flipped b-r\\\" ng-repeat=\\\"date in vm.dates\\\">\\n v.{{ date }}\\n </a>\\n</div>\\n-->\\n<!--\\n<div class=\\\"hbox\\\">\\n <div class=\\\"m-t-xxs col-lg-12\\\" style=\\\"height:36px\\\">\\n <div style=\\\"overflow: scroll; display:inline\\\">\\n <span ng-repeat=\\\"date in vm.dates\\\">\\n <span style=\\\"width:20px;\\\">{{ date }}</span>\\n </span>\\n </div>\\n <table class=\\\"table\\\" style=\\\"table-layout:fixed;\\\">\\n </table>\\n </div>\\n</div>\\n-->\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.accountMessages.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"message in vm.accountMessages\\\">{{message}}</li>\\n </ul>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-sm-2 control-label\\\"> {{'analysis.fromdate' | translate}} </label>\\n <div class=\\\"col-sm-3\\\">\\n <wj-input-date\\n value=\\\"vm.fromDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-sm-2 control-label\\\"> {{'analysis.todate' | translate}} </label>\\n <div class=\\\"col-sm-3\\\">\\n <wj-input-date\\n value=\\\"vm.toDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-sm-2 control-label\\\"> {{'location.organizationnumber' | translate}} </label>\\n <div class=\\\"col-sm-3\\\">\\n <ui-select ng-model=\\\"vm.organizationNumber\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"orgNum in vm.organizationNumbers\\\">\\n <span>{{orgNum}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.fetchSieFile()\\\" ng-disabled=\\\"vm.accountMessages.length > 0\\\"> {{'common.ok' | translate}} </button>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .transist-width {\\n transition: all ease-in-out 0.195s;\\n }\\n</style>\\n<!-- navbar header -->\\n<div class=\\\"navbar-header bg-black\\\">\\n <button\\n class=\\\"pull-right visible-xs dk\\\"\\n ui-toggle-class=\\\"show\\\"\\n data-target=\\\".navbar-collapse\\\"\\n >\\n <i class=\\\"fa fa-cog\\\"></i>\\n </button>\\n <button\\n class=\\\"pull-right visible-xs\\\"\\n ui-toggle-class=\\\"off-screen\\\"\\n data-target=\\\".app-aside\\\"\\n ui-scroll-to=\\\"app\\\"\\n >\\n <i class=\\\"fa fa-bars\\\"></i>\\n </button>\\n <!-- brand -->\\n <a href=\\\"#/\\\" class=\\\"navbar-brand text-lt\\\">\\n <!--<i class=\\\"fa fa-circle\\\"></i>-->\\n <span class=\\\"hidden-folded m-l-xs\\\">\\n <img\\n src=\\\"./assets/images/CleverApps_FullLogo.png\\\"\\n style=\\\"max-height: 28px\\\"\\n class=\\\"img-full\\\"\\n alt=\\\"{{'main.title' | translate}}\\\"\\n />\\n </span>\\n\\n <span class=\\\"clearfix app-aside-folded visible-folded\\\">\\n <span class=\\\"thumb-sm\\\">\\n <img\\n src=\\\"./assets/images/CleverAppsLogo.png\\\"\\n style=\\\"max-height: 28px; max-width: 28px\\\"\\n class=\\\"img-full\\\"\\n alt=\\\"...\\\"\\n />\\n </span>\\n </span>\\n </a>\\n <!-- / brand -->\\n\\n <!-- navbar refresh needed -->\\n <div\\n class=\\\"ca-refreshclientbutton\\\"\\n ng-click=\\\"vm.reload()\\\"\\n ng-if=\\\"vm.hasVersionChanged && !vm.isReloading\\\"\\n ng-hide=\\\"true\\\"\\n >\\n <div class=\\\"text-lg font-bold\\\">\\n {{'common.updateneeded' | translate}}\\n </div>\\n <div class=\\\"text-xs text-u-c\\\">\\n <i class=\\\"fa fa-refresh fa-spin fa-fw\\\"></i>\\n {{'common.clicktorefresh' | translate}}\\n </div>\\n </div>\\n</div>\\n<!-- / navbar header -->\\n\\n<!-- navbar collapse -->\\n<div\\n class=\\\"collapse pos-rlt navbar-collapse box-shadow bg-white-only\\\"\\n ng-if=\\\"!vm.isReloading\\\"\\n>\\n <!-- buttons -->\\n <div class=\\\"nav navbar-nav hidden-xs\\\">\\n <a\\n href=\\\"#\\\"\\n class=\\\"btn no-shadow navbar-btn\\\"\\n ui-toggle=\\\"app-aside-folded\\\"\\n target=\\\".app\\\"\\n >\\n <i class=\\\"fa fa-dedent fa-fw text hidden-folded\\\"></i>\\n <i class=\\\"fa fa-indent fa-fw text-active visible-folded\\\"></i>\\n </a>\\n\\n <!-- currentpage info -->\\n <span class=\\\"text-muted\\\">{{$state.current.name | translate}}</span>\\n <!-- / currentpage info -->\\n\\n <a\\n ng-show=\\\"false\\\"\\n href=\\\"#\\\"\\n class=\\\"btn no-shadow navbar-btn\\\"\\n ui-toggle=\\\"show\\\"\\n target=\\\"#aside-user\\\"\\n >\\n <i class=\\\"icon-user fa-fw\\\"></i>\\n </a>\\n <button\\n class=\\\"btn btn-danger\\\"\\n ng-click=\\\"vm.openTimeStampingModal()\\\"\\n ng-hide=\\\"(vm.latestTimeStamp.timeStampType.timeStampSystemType === 'in' || !vm.latestTimeStamp.id) || !vm.currentUser.usesTimeStamping\\\"\\n >\\n <i class=\\\"fa fa-clock-o\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-default\\\"\\n ng-click=\\\"vm.openTimeStampingModal()\\\"\\n ng-hide=\\\"(vm.latestTimeStamp.timeStampType.timeStampSystemType === 'out') || !vm.currentUser.usesTimeStamping\\\"\\n >\\n <i class=\\\"fa fa-clock-o\\\"></i>\\n </button>\\n </div>\\n <!-- / buttons -->\\n\\n <!-- navbar right -->\\n <ul class=\\\"nav navbar-nav navbar-right\\\">\\n <li class=\\\"dropdown\\\" uib-dropdown>\\n <a\\n href\\n class=\\\"dropdown-toggle clear\\\"\\n uib-dropdown-toggle\\n style=\\\"flex-wrap: wrap\\\"\\n >\\n <span\\n class=\\\"thumb-sm avatar pull-right m-t-n-sm m-b-n-sm m-l-sm\\\"\\n >\\n <img src=\\\"./assets/images/CleverAppsLogo.png\\\" alt=\\\"...\\\" />\\n <i class=\\\"on md b-white bottom\\\"></i>\\n </span>\\n <span class=\\\"hidden-sm hidden-md\\\"\\n >{{currentUser.firstName + ' ' + currentUser.lastName}}\\n </span>\\n <b class=\\\"caret\\\"></b>\\n\\n <div\\n style=\\\"\\n width: 100%;\\n height: 0;\\n position: relative;\\n top: -0.7rem;\\n \\\"\\n >\\n <span style=\\\"font-size: x-small\\\" class=\\\"hidden-sm hidden-md\\\"\\n >{{vm.tenant.tenantName}}</span\\n >\\n </div>\\n </a>\\n <!-- dropdown -->\\n <ul class=\\\"dropdown-menu animated fadeInRight w\\\" uib-dropdown-menu>\\n <li>\\n <a ng-click=\\\"vm.logOut()\\\" href=\\\"\\\"\\n >{{'common.logout' | translate}}</a\\n >\\n </li>\\n <li ng-if=\\\"vm.supportViewOptionEnabled\\\">\\n <a ng-click=\\\"$state.go('support.supportcases')\\\" href=\\\"\\\"\\n >Support Vyn</a\\n >\\n </li>\\n </ul>\\n <!-- / dropdown -->\\n </li>\\n </ul>\\n <!-- / navbar right -->\\n</div>\\n<!-- / navbar collapse -->\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .transist-width{\\n transition: all ease-in-out .195s;\\n }\\n</style>\\n<div class=\\\"aside-wrap\\\" ng-hide=\\\"vm.isReloading\\\">\\n <div class=\\\"navi-wrap\\\">\\n <!-- user -->\\n <div class=\\\"clearfix hidden-xs text-center hide\\\" id=\\\"aside-user\\\">\\n <div class=\\\"dropdown wrapper\\\" dropdown>\\n <a href=\\\"\\\">\\n <span class=\\\"thumb-lg w-auto-folded avatar m-t-sm\\\">\\n <img src=\\\"./assets/images/a0.jpg\\\" class=\\\"img-full\\\" alt=\\\"...\\\">\\n </span>\\n </a>\\n <a href class=\\\"dropdown-toggle hidden-folded\\\" dropdown-toggle>\\n <span class=\\\"clear\\\">\\n <span class=\\\"block m-t-sm\\\">\\n <strong class=\\\"font-bold text-lt\\\">Thomas Sverker</strong>\\n <b class=\\\"caret\\\"></b>\\n </span>\\n <span class=\\\"text-muted text-xs block\\\">VD</span>\\n </span>\\n </a>\\n <!-- dropdown -->\\n <ul class=\\\"dropdown-menu animated fadeInRight w hidden-folded\\\">\\n <li class=\\\"wrapper b-b m-b-sm bg-info m-t-n-xs\\\">\\n <span class=\\\"arrow top hidden-folded arrow-info\\\"></span>\\n\\n <div>\\n <p>300mb of 500mb used</p>\\n </div>\\n <progressbar value=\\\"60\\\" type=\\\"white\\\" class=\\\"progress-xs m-b-none dker\\\"></progressbar>\\n </li>\\n <li>\\n <a href=\\\"\\\">{{'common.settings' | translate}}</a>\\n </li>\\n <li>\\n <a href=\\\"\\\">{{'common.profile' | translate}}</a>\\n </li>\\n <li>\\n <a href>\\n <span class=\\\"badge bg-danger pull-right\\\">3</span>\\n {{'common.notifications' | translate}}\\n </a>\\n </li>\\n <li class=\\\"divider\\\"></li>\\n <li>\\n <a href=\\\"\\\">{{'common.logout' | translate}}</a>\\n </li>\\n </ul>\\n <!-- / dropdown -->\\n </div>\\n <div class=\\\"line dk hidden-folded\\\"></div>\\n </div>\\n <!-- / user -->\\n\\n <!-- nav -->\\n <div style=\\\"height:94vh; width:100%; display:table;\\\">\\n <nav ui-nav class=\\\"navi clearfix\\\" style=\\\"margin-bottom:10px\\\">\\n <ul class=\\\"nav\\\">\\n <navigation-node class=\\\"parent\\\" ng-repeat=\\\"node in vm.menuNodes.nodes\\\" level=\\\"0\\\" node = \\\"node\\\" claims=\\\"vm.currentUserClaims\\\" license-modules=\\\"vm.currentLicense\\\" root=\\\"vm.menuNodes\\\" branch=\\\"node\\\"></navigation-node>\\n </ul>\\n </nav>\\n <div class=\\\"hidden-folded m-l-xs navbar-brand text-lt\\\" style=\\\"display: table-row; height: 65px;\\\">\\n <img src=\\\"{{vm.currentTenantLogoPath}}\\\" style=\\\"max-width:175px; max-height: 175px; vertical-align: bottom;\\\" class=\\\"img-full\\\" alt=\\\"\\\">\\n </div>\\n </div>\\n <!-- nav -->\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<!-- navbar -->\\n<div class=\\\"app-header navbar\\\" ng-include=\\\"'main/main-header.tpl.html'\\\"></div>\\n<!-- / navbar -->\\n\\n<!-- menu -->\\n<aside class=\\\"app-aside hidden-xs bg-black\\\" ng-include=\\\"'main/main-menu.tpl.html'\\\"></aside>\\n<!-- / menu -->\\n\\n<!-- content -->\\n<div class=\\\"app-content h-full\\\" ng-if=\\\"!vm.isReloading\\\">\\n\\n <!-- Check for the problematic states -->\\n\\n <div style=\\\"overflow-x:auto; width: 100%\\\">\\n <div ng-class=\\\"{'app-content-body app-content-full h-full fade-in-up': (\\n !$state.includes('stock.scannerinventorying') &&\\n !$state.includes('order.ordersearch') &&\\n !$state.includes('order.orderdelivery') &&\\n !$state.includes('contacts.bulkoperation')\\n )}\\\"\\n ui-view=\\\"\\\"></div>\\n </div>\\n\\n</div>\\n<!-- /content -->\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> \\n <div>{{ 'inventory.row' | translate }} {{ 'order.deliveryplanning.comment' | translate }}</div> \\n <div>{{ vm.orderArticle.article.alternativeArticleNumber}} {{ vm.orderArticle.article.articleName }}</div> \\n </div>\\n <div class=\\\"body bg-gray\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"comment\\\" maxlength=\\\"250\\\" ng-model=\\\"vm.comment\\\" required/>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" style=\\\"text-align-last: center;\\\">\\n <div>\\n <button class=\\\"btn btn-md btn-success\\\" ng-disabled=\\\"vm.comment.length == 0\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.apply' | translate}}</button>\\n \\n <button class=\\\"btn btn-md btn-danger\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-sm-12\\\">\\n <div class=\\\"col-sm-12\\\">\\n <input id=\\\"xlf\\\" type=\\\"file\\\" name=\\\"xlfile\\\"> </input>\\n </div>\\n <label class=\\\"col-sm-1 control-label\\\">{{'order.barcodes' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <textarea ng-model=\\\"vm.scannedBarcodes\\\" style=\\\"width: 100%;\\\" rows=\\\"4\\\"></textarea>\\n </div>\\n <div> \\n <button ng-click=\\\"vm.getArticlesAndQuantites()\\\" class=\\\"btn btn-default\\\" ng-disabled=\\\"!vm.order.company.id && !vm.order.fromLocation.id\\\"> + </button> \\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n tr.no-b-border td{\\n border-bottom: 0px !important;\\n }\\n</style>\\n<div class=\\\"col-lg-12\\\">\\n <!-- OrderArticles grid that can display both variant and non-variant articles -->\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.hiddenDeliveredRows\\\" ng-change=\\\"vm.hideDeliveredRows()\\\" />\\n <i></i> {{'order.hideDeliveredRows' | translate}}\\n </label>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.displayPrices\\\" ng-disabled=\\\"!vm.canDeliverIn()\\\" />\\n <i></i> {{'order.displayPrices' | translate}}\\n </label><br/>\\n <table style=\\\"width: 100%;\\\">\\n <!-- <thead>\\n <th style=\\\"width:7%\\\">1</th>\\n <th style=\\\"width:19%\\\">2</th>\\n <th style=\\\"width:9%\\\">3</th>\\n <th style=\\\"width:9%\\\">4</th>\\n <th style=\\\"width:9%\\\">5</th>\\n <th style=\\\"width:9%\\\">6</th>\\n <th style=\\\"width:9%\\\">7</th>\\n <th style=\\\"width:9%\\\">8</th>\\n <th style=\\\"width:9%\\\">9</th>\\n <th>10</th>\\n <th>11</th>\\n </thead> -->\\n <tbody>\\n <tr>\\n <td colspan=\\\"10\\\" style=\\\"vertical-align: top;\\\">\\n <table class=\\\"ca-flexgrid row-borders\\\">\\n <thead>\\n <!-- AlternativeArticleNumber (\\\"Leverantörens Produktnummer\\\") -->\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.alternativearticlenumber'\\\" \\n value-name=\\\"'article.alternativeArticleNumber'\\\"/>\\n </th>\\n <!-- ArticleName (\\\"Benämning\\\")-->\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.articlename'\\\" \\n value-name=\\\"'article.articleName'\\\"/>\\n </th>\\n <!-- AveragePurchaseCost (\\\"Inpris\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.purchasecost'\\\" \\n value-name=\\\"'averageOrderRowPurchaseCost'\\\"/>\\n </th>\\n <!-- SalesPrice (\\\"Utpris\\\")-->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.salesprice'\\\" \\n value-name=\\\"'averageArticleVariantSalesPrice'\\\"/>\\n </th>\\n <!-- SummarizedPurchaseCost (\\\"Kostpris\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.totalpurchasecost'\\\" \\n value-name=\\\"'summarizedPurchaseCost'\\\"/>\\n </th>\\n <!-- SummarizedSalesPrice (\\\"Försäljningspris\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.totalsalesprice'\\\" \\n value-name=\\\"'summarizedSalesPrice'\\\"/>\\n </th>\\n <!-- Variant1/Colour (\\\"Variant1/färg\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.anyNonVariantArticles()\\\"> \\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'reports.transit.articlevariant.variant1'\\\" \\n value-name=\\\"'nonVariantVariantDetail1Name'\\\"/>\\n </th>\\n <!-- Variant2/Size (\\\"Variant2/storlek\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.anyNonVariantArticles()\\\"> \\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'reports.transit.articlevariant.variant2'\\\" \\n value-name=\\\"'nonVariantVariantDetail2Name'\\\"/>\\n </th>\\n <!-- SummarizedQuantity (\\\"Kvantitet\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.isModifying\\\"> \\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.totalquantity'\\\" \\n value-name=\\\"'summarizedQuantity'\\\"/>\\n </th>\\n <!-- Beställt Antal -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"!vm.isModifying\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'resellerorder.totalfulfillablequantity'\\\" \\n value-name=\\\"'summarizedQuantity'\\\"/>\\n </th>\\n <!-- QuantityToDeliver (\\\"Att Leverera/antal\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"!vm.isModifying\\\" ng-if=\\\"vm.anyNonVariantArticles()\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'common.quantity'\\\" \\n value-name=\\\"'nonVariantQuantityToDeliver'\\\"/>\\n </th>\\n <!-- SummarizedDeliveredQuantity (\\\"Levererat Antal\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'order.deliveredquantity'\\\" \\n value-name=\\\"'summarizedDeliveredQuantity'\\\"/>\\n </th>\\n <!-- DeliveredPurchaseCost (\\\"Levererad Kostnad\\\")-->\\n <th class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'reports.salesthroughput.deliveredquantitypurchasecost'\\\" \\n value-name=\\\"'summarizedDeliveredCost'\\\"/>\\n </th>\\n <!-- AggregatedRowStatus (\\\"Status\\\")-->\\n <th class=\\\"ca-flexgridcell-align-right\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'order.status'\\\" \\n value-name=\\\"'lowestStatusName'\\\"/>\\n </th>\\n <!-- Deliver (\\\"Leverera\\\") -->\\n <!-- Rest (\\\"Resta leverans\\\") -->\\n <!-- Delivery date (\\\"Leveransdatum\\\") -->\\n <th class=\\\"ca-flexgridcell-align-right\\\" colspan=\\\"3\\\" ng-if=\\\"vm.anyNonVariantArticles()\\\" ng-show=\\\"!vm.isModifying\\\">\\n </th>\\n <th></th>\\n </thead>\\n <tbody ng-repeat=\\\"orderArticle in vm.filteredOrderArticles | orderBy: vm.sortContentBy : vm.sortContentReverse\\\">\\n <tr ng-class=\\\"{'no-b-border': orderArticle.orderRows[0].comment}\\\">\\n <!-- AlternativeArticleNumber (\\\"Leverantörens Produktnummer\\\") -->\\n <!-- isVariant -->\\n <td ng-if=\\\"vm.shouldBeTreatedAsVariant(orderArticle)\\\"\\n ng-class=\\\"{'ca-flexgrid-celllink' : !vm.isRowDelivered(orderArticle.lowestSystemStatusAmongRows)}\\\"\\n uib-tooltip=\\\"{{'article.articlenumber' | translate}}: {{orderArticle.article.articleNumber}}\\\"\\n tooltip-popup-delay=\\\"300\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n ng-click=\\\"vm.viewOrderArticle(orderArticle.article, orderArticle.lowestSystemStatusAmongRows)\\\"\\n style=\\\"width:7%\\\">\\n {{\\n orderArticle.article.alternativeArticleNumber\\n && orderArticle.article.alternativeArticleNumber.length > 0\\n ? orderArticle.article.alternativeArticleNumber\\n : orderArticle.article.articleNumber\\n }}\\n </td>\\n <!-- IsNotVariant -->\\n <td ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle)\\\"\\n uib-tooltip=\\\"{{'article.articlenumber' | translate}}: {{orderArticle.article.articleNumber}}\\\"\\n tooltip-popup-delay=\\\"300\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n style=\\\"width:7%\\\">\\n {{\\n orderArticle.article.alternativeArticleNumber\\n && orderArticle.article.alternativeArticleNumber.length > 0\\n ? orderArticle.article.alternativeArticleNumber\\n : orderArticle.article.articleNumber\\n }}\\n </td>\\n <!-- ArticleName (\\\"Benämning\\\")-->\\n <td style=\\\"width:19%\\\">\\n {{orderArticle.article.articleName}}\\n </td>\\n <!-- AveragePurchaseCost (\\\"Inpris\\\") -->\\n <td style=\\\"width:9%\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.haveOrderArticlePurchaseCostClaim\\\" ng-show=\\\"vm.displayPrices\\\">\\n {{orderArticle.averageOrderRowPurchaseCost.toFixed(2)}}\\n </td>\\n <!-- SalesPrice (\\\"Utpris\\\")-->\\n <td style=\\\"width:9%\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\">\\n {{orderArticle.article.salesPrice.toFixed(2)}}\\n </td>\\n <!-- SummarizedPurchaseCost (\\\"Kostpris\\\") -->\\n <td style=\\\"width:9%\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.haveOrderArticlePurchaseCostClaim && vm.displayPrices\\\">\\n {{orderArticle.summarizedPurchaseCost.toFixed(2)}}\\n </td>\\n <!-- SummarizedSalesPrice (\\\"Försäljningspris\\\") -->\\n <td style=\\\"width:9%\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.displayPrices\\\"> \\n {{orderArticle.summarizedSalesPrice.toFixed(2)}}\\n </td>\\n\\n <!-- Variant1/Colour (\\\"Variant1/färg\\\") -->\\n <td class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.anyNonVariantArticles()\\\">\\n <span ng-if=\\\"orderArticle.nonVariantVariantDetail1Name\\\"> {{orderArticle.nonVariantVariantDetail1Name}} </span>\\n </td>\\n <!-- Variant2/Size (\\\"Variant2/storlek\\\") -->\\n <td class=\\\"ca-flexgridcell-align-right\\\" ng-show=\\\"vm.anyNonVariantArticles()\\\">\\n <span ng-if=\\\"orderArticle.nonVariantVariantDetail2Name\\\"> {{orderArticle.nonVariantVariantDetail2Name}} </span>\\n </td>\\n\\n <!-- ---------------------------------------------------- -->\\n <!-- SummarizedQuantity (\\\"Kvantitet\\\" / \\\"Beställt Antal\\\") -->\\n <!-- ---------------------------------------------------- -->\\n <td class=\\\"ca-flexgridcell-align-right\\\" style=\\\"width: 50px;\\\">\\n <!-- IsVariant -->\\n <div ng-if=\\\"vm.shouldBeTreatedAsVariant(orderArticle)\\\" style=\\\"width: 50px;\\\">\\n {{orderArticle.summarizedQuantity}}\\n </div>\\n <!-- IsNotVariant -->\\n <div ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle) && vm.isModifying\\\" style=\\\"border: 1px; border-color: #2c2c2c; ; width: 50px;\\\">\\n <input type=\\\"number\\\"\\n style=\\\"width: 50px\\\"\\n onclick=\\\"this.select()\\\"\\n ng-focus=\\\"vm.viewOrderArticle(orderArticle.article, orderArticle.lowestSystemStatusAmongRows)\\\"\\n class=\\\"ca-flexgridcell-number-input\\\"\\n ng-model=\\\"orderArticle.orderRows[0].quantity\\\"\\n ng-change=\\\"vm.updatedQuantity()\\\"\\n enter-as-tab\\n ng-if=\\\"(vm.isRowCreated(orderArticle.lowestSystemStatusAmongRows) || orderArticle.lowestSystemStatusAmongRows === undefined) && vm.isAllowedToChangeQuantity()\\\">\\n <span ng-if=\\\"(!vm.isRowCreated(orderArticle.lowestSystemStatusAmongRows) && orderArticle.lowestSystemStatusAmongRows !== undefined) || !vm.isAllowedToChangeQuantity()\\\" style=\\\"width: 50px;\\\"> {{orderArticle.orderRows[0].quantity}} </span>\\n </div>\\n <div ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle) && !vm.isModifying\\\" style=\\\"border: 1px; border-color: #2c2c2c; width: 50px;\\\">\\n {{orderArticle.orderRows[0].quantity}}\\n </div>\\n </td>\\n\\n <!-- ---------------------------------------------------- -->\\n <!-- QuantityToDeliver (\\\"Att Leverera/antal\\\") -->\\n <!-- ---------------------------------------------------- -->\\n <td ng-show=\\\"!vm.isModifying\\\" style=\\\"width: 50px;\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.anyNonVariantArticles()\\\">\\n <!-- IsVariant (only non-variant prooducts are delivered in this section) -->\\n <div ng-if=\\\"vm.shouldBeTreatedAsVariant(orderArticle) || vm.isDelivered(orderArticle)\\\" style=\\\"width: 50px;\\\">\\n 0\\n </div>\\n <!-- IsNotVariant -->\\n <div ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle) && !vm.isDelivered(orderArticle)\\\" style=\\\"border: 1px; border-color: #2c2c2c; width: 50px;\\\">\\n <input type=\\\"number\\\"\\n style=\\\"width: 50px;\\\"\\n onclick=\\\"this.select()\\\"\\n class=\\\"ca-flexgridcell-number-input\\\"\\n ng-model=\\\"orderArticle.orderRows[0].quantityToDeliver\\\"\\n ng-change=\\\"vm.updatedQuantityToDeliver()\\\"\\n enter-as-tab>\\n </div>\\n </td>\\n\\n <!-- SummarizedDeliveredQuantity (\\\"Levererat Antal\\\") -->\\n <td style=\\\"width:5%; min-width: 20px;\\\" class=\\\"ca-flexgridcell-align-right\\\">\\n {{orderArticle.summarizedDeliveredQuantity}}\\n </td>\\n <!-- DeliveredPurchaseCost (\\\"Levererad Kostnad\\\")-->\\n <td style=\\\"width:5%; min-width: 20px;\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.haveOrderArticlePurchaseCostClaim && vm.displayPrices\\\">\\n {{ orderArticle.summarizedDeliveredCost.toFixed(2) }}\\n </td>\\n <!-- AggregatedRowStatus (\\\"Status\\\")-->\\n <td class=\\\"ca-flexgridcell-align-right\\\">\\n {{ orderArticle.lowestStatusName | translate }}\\n </td>\\n <!-- Deliver (\\\"Leverera\\\") -->\\n <td class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle) && !vm.isDelivered(orderArticle)\\\" ng-show=\\\"!vm.isModifying\\\">\\n <button\\n class=\\\"btn btn-xs btn-primary\\\"\\n ng-click=\\\"vm.deliver(orderArticle)\\\"\\n ng-disabled=\\\"vm.ongoingRequest || !vm.canDeliverIn() || orderArticle.orderRows[0].quantityToDeliver < 0\\\"\\n ng-hide=\\\"vm.noMoreOrderArticlesToDeliver()\\\"> \\n {{'common.deliver' | translate}}\\n </button>\\n </td>\\n <!-- Rest (\\\"Resta leverans\\\") -->\\n <td class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle) && !vm.isDelivered(orderArticle)\\\" ng-show=\\\"!vm.isModifying\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" \\n namef=\\\"a\\\" \\n ng-model=\\\"orderArticle.restOrderArticle\\\" \\n ng-disabled=\\\"!vm.canDeliverIn() || (orderArticle.orderRows[0].quantityToDeliver + orderArticle.summarizedDeliveredQuantity) >= orderArticle.orderRows[0].quantity\\\" />\\n <i></i>\\n {{'order.rest' | translate}}\\n </label>\\n </td>\\n <!-- Delivery date (\\\"Leveransdatum\\\") -->\\n <td style=\\\"width: 130px\\\" class=\\\"ca-flexgridcell-align-right\\\" ng-if=\\\"vm.shouldBeTreatedAsNonVariant(orderArticle) && !vm.isDelivered(orderArticle)\\\" ng-show=\\\"!vm.isModifying\\\">\\n <wj-input-date\\n style=\\\"width: 130px\\\"\\n value=\\\"orderArticle.deliveredDate\\\"\\n initialized=\\\"vm.setWijmoInputDateLimits(s)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-disabled=\\\"!vm.canDeliverIn()\\\">\\n </wj-input-date>\\n </td>\\n <td colspan=\\\"100\\\" class=\\\"ca-flexgridcell-align-right\\\" \\n uib-tooltip=\\\"{{ orderArticle.orderRows[0].comment ? 'stock.changeinventory' : 'common.add' | translate}} {{ 'order.deliveryplanning.comment' | translate }}\\\"\\n tooltip-popup-delay=\\\"300\\\"\\n tooltip-placement=\\\"top\\\"\\n tooltip-append-to-body=\\\"true\\\">\\n <button class=\\\"btn btn-link btn-xs\\\" ng-click=\\\"vm.openOrderRowCommentDialog(orderArticle);\\\">\\n <i class=\\\"fa fa-comment-o\\\" ng-class=\\\"orderArticle.orderRows[0].comment ? 'fa-commenting-o' : 'fa-comment-o'\\\" style=\\\"font-size:medium;\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n <tr ng-if=\\\"orderArticle.orderRows[0].comment\\\">\\n <td ng-click=\\\"vm.openOrderRowCommentDialog(orderArticle);\\\" colspan=\\\"100\\\" \\n uib-tooltip=\\\"{{ 'stock.changeinventory' | translate}} {{ 'order.deliveryplanning.comment' | translate }}\\\"\\n tooltip-popup-delay=\\\"300\\\"\\n tooltip-placement=\\\"bottom-left\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n style=\\\"padding:0px; background-color:cornsilk; border-bottom-width: 1px;\\\">\\n <div style=\\\"height:14px; padding-left:6px; color: grey;font-size:x-small; vertical-align: top;\\\">\\n <u>{{ 'inventory.row' | translate }} {{ 'order.deliveryplanning.comment' | translate }}:</u> {{orderArticle.orderRows[0].comment}}\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n\\n <!--\\n <td style=\\\"padding-left: 20px; vertical-align: top; width: 200px;\\\" black; ng-show=\\\"!vm.isModifying\\\" ng-if=\\\"vm.anyNonVariantArticles()\\\">\\n <table class=\\\"ca-flexgrid row-borders\\\">\\n <thead>\\n <th> </th>\\n <th> </th>\\n </thead>\\n <tbody>\\n <tr>\\n <td>\\n <button\\n class=\\\"btn btn-xs btn-primary\\\"\\n ng-click=\\\"vm.deliver()\\\"\\n ng-disabled=\\\"vm.ongoingRequest || !vm.canDeliverIn()\\\"\\n ng-hide=\\\"vm.noMoreOrderArticlesToDeliver()\\\"> {{'common.deliver' | translate}} {{vm.calculateTotal}}\\n </button>\\n </td>\\n <td>\\n {{vm.getCurrentDeliveryQuantity()}} {{'common.outOf' | translate}} {{vm.getTotalQuantityLeftToDeliver()}}\\n </td>\\n </tr>\\n <tr>\\n <td colspan=\\\"2\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.restCurrentOrderArticle\\\" ng-disabled=\\\"!vm.canDeliverIn()\\\" />\\n <i></i>\\n {{'order.rest' | translate}}\\n </label>\\n </td>\\n </tr>\\n <tr>\\n <td colspan=\\\"2\\\">\\n {{'order.deliverydate' | translate}}:\\n </td>\\n </tr>\\n <tr>\\n <td colspan=\\\"2\\\">\\n <wj-input-date\\n value=\\\"vm.order.deliveredDate\\\"\\n initialized=\\\"vm.setWijmoInputDateLimits(s)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-disabled=\\\"!vm.canDeliverIn()\\\">\\n </wj-input-date>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td> \\n -->\\n\\n </tr>\\n <!-- <tr>\\n <td colspan=\\\"6\\\"> </td>\\n <td style=\\\"border: 1px solid black;\\\" align=\\\"center\\\" ng-show=\\\"!vm.isModifying\\\">\\n ↑<br/>\\n <button\\n class=\\\"btn btn-xs btn-primary\\\"\\n ng-click=\\\"vm.deliverNonVariantArticles()\\\"\\n ng-disabled=\\\"vm.ongoingRequest || !vm.canDeliverIn()\\\"\\n ng-hide=\\\"vm.noMoreOrderArticlesToDeliver()\\\"> {{'common.deliver' | translate}}\\n </button> <br/>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.restCurrentOrderArticle\\\" ng-disabled=\\\"!vm.canDeliverIn()\\\" />\\n <i></i>\\n {{'order.rest' | translate}}\\n </label><br/>\\n\\n {{'order.deliverydate' | translate}}:\\n <wj-input-date\\n value=\\\"vm.order.deliveredDate\\\"\\n initialized=\\\"vm.setWijmoInputDateLimits(s)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-disabled=\\\"!vm.canDeliverIn()\\\">\\n </wj-input-date>\\n </td>\\n <td colspan=\\\"3\\\"> </td>\\n </tr> -->\\n </tbody>\\n </table>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\" ng-hide=\\\"vm.isHidden\\\">\\n <div class=\\\"col-sm-12\\\"> </div>\\n <!-- Row 1 -->\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.ordertype' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\" ng-style=\\\"vm.getOrderTypeRowStyle()\\\">\\n\\n <ui-select ng-model=\\\"vm.order.orderType\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"(vm.order.orderArticles.length > 0 || vm.order.approved) && !vm.isCopying\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.orderTypeName | translate}}</ui-select-match>\\n <ui-select-choices repeat=\\\"orderType in vm.orderTypes | filter:{'orderTypeName': $select.search}\\\">\\n <span>{{orderType.orderTypeName | translate}}</span>\\n </ui-select-choices>\\n </ui-select>\\n\\n </div>\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.externalordernumber' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'order.externalordernumber' | translate}}\\\"\\n ng-model=\\\"vm.order.orderNumberExternal\\\"\\n ng-disabled=\\\"vm.order.approved\\\" />\\n </div>\\n </div>\\n\\n <!-- Row 2 -->\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-2 control-label\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() === 'store' || vm.order.orderType.orderSystemType.toLowerCase() === 'return'\\\">\\n {{'order.company' | translate}}:\\n </label>\\n <div class=\\\"col-lg-4\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() === 'store' || vm.order.orderType.orderSystemType.toLowerCase() === 'return'\\\" ng-style=\\\"vm.getCompanyRowStyle()\\\">\\n <ui-select ng-model=\\\"vm.order.company\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"!vm.canChangeCompany()\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.companyName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"company in vm.companies | filter:{'companyName': $select.search}\\\">\\n <span>{{company.companyName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <label class=\\\"col-sm-2 control-label\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() === 'internal' || vm.order.orderType.orderSystemType.toLowerCase() === 'return'\\\">\\n {{'order.fromlocation' | translate}}:\\n </label>\\n <div class=\\\"col-lg-4\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() === 'internal' || vm.order.orderType.orderSystemType.toLowerCase() === 'return'\\\" ng-style=\\\"vm.getFromLocationRowStyle()\\\">\\n <ui-select ng-model=\\\"vm.order.fromLocation\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"!vm.canChangeFromLocation()\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locations | filter:{'locationName': $select.search}\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-6\\\"> </div>\\n </div>\\n\\n <!-- Row 3 -->\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-2 control-label\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() !== 'undefined' && vm.order.orderType.orderSystemType.toLowerCase() !== 'return'\\\">{{'order.destination' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\" ng-style=\\\"vm.getDestinationRowStyle()\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() !== 'undefined' && vm.order.orderType.orderSystemType.toLowerCase() !== 'return'\\\">\\n\\n <ui-select ng-model=\\\"vm.order.destination\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"!vm.canChangeDestination()\\\" ng-endable=\\\"vm.allRowsAreUndelivered()\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{ $select.selected.locationName }}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.destinations | filter:{'locationName': $select.search}\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n\\n <div class=\\\"alert alert-warning\\\" style=\\\"padding:3px 15px; margin-bottom:3px;\\\" ng-if=\\\"vm.order.destination && vm.order.destination.resellerPriceList\\\">{{ 'order.destinationUsesResellerPriceList' | translate }}</div>\\n </div>\\n \\n <div class=\\\"col-sm-6\\\" ng-show=\\\"vm.order.orderType.orderSystemType.toLowerCase() === 'undefined' || vm.order.orderType.orderSystemType.toLowerCase() === 'return'\\\">\\n \\n </div>\\n\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.planneddeliverydate' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n <span ng-if=\\\"true\\\">\\n <!--<span ng-if=\\\"(!vm.enableDeliveryPlanning || vm.isDeliveryPlanningDisabled())\\\">-->\\n <wj-input-date\\n value=\\\"vm.order.plannedDeliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%; display:inline-block\\\"\\n ng-disabled=\\\"vm.order.approved || !vm.isCreatedOrNew\\\">\\n </wj-input-date>\\n </span>\\n <span ng-if=\\\"false\\\">\\n <!--<span ng-if=\\\"(vm.enableDeliveryPlanning && !vm.isDeliveryPlanningDisabled())\\\">-->\\n <wj-input-date\\n value=\\\"vm.order.plannedDeliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:45%; display:inline-block\\\"\\n ng-disabled=\\\"vm.order.approved\\\"\\n text-changed=\\\"vm.dateChangeDeliveryPlanningDialog()\\\"\\n ng-show=\\\"vm.deliveryPlanningTemplate.length === 0\\\">\\n </wj-input-date>\\n <wj-input-date\\n tooltip-placement=\\\"top\\\" \\n tooltip-append-to-body=\\\"true\\\" \\n uib-tooltip=\\\"Datum lÃ¥st pÃ¥ grund av skapad leveransbevakning. Radera ändringarna för att justera.\\\" \\n tooltip-popup-delay=\\\"100\\\"\\n value=\\\"vm.order.plannedDeliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:35%; display:inline-block\\\"\\n ng-disabled=\\\"vm.order.approved || vm.deliveryPlanningTemplate.length !== 0\\\"\\n text-changed=\\\"vm.dateChangeDeliveryPlanningDialog()\\\"\\n ng-show=\\\"vm.deliveryPlanningTemplate.length !== 0\\\">\\n </wj-input-date>\\n <button \\n tooltip-placement=\\\"top\\\" \\n tooltip-append-to-body=\\\"true\\\" \\n uib-tooltip=\\\"Radera ändringar pÃ¥ leveransbevakning.\\\" \\n tooltip-popup-delay=\\\"100\\\"\\n tooltip-enable=\\\"vm.deliveryPlanningTemplate.length !== 0\\\"\\n style=\\\"padding:6px; width:34px; display:inline-block\\\"\\n class=\\\"btn btn-danger\\\" \\n ng-show=\\\"vm.deliveryPlanningTemplate.length !== 0\\\" \\n ng-click=\\\"vm.resetDeliveryPlanningTemplate()\\\">\\n <i class=\\\"fa fa-ban\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n <button \\n tooltip-placement=\\\"top\\\" \\n tooltip-append-to-body=\\\"true\\\" \\n uib-tooltip=\\\"{{'order.deliveryplanning.createafterplanneddate' | translate}}\\\" \\n tooltip-popup-delay=\\\"100\\\"\\n tooltip-enable=\\\"vm.deliveryPlanningTemplate.length === 0\\\"\\n style=\\\"width:54%; display:inline-block\\\"\\n class=\\\"btn btn-primary\\\" \\n ng-disabled=\\\"vm.isDeliveryPlanningDisabled()\\\" \\n ng-click=\\\"vm.openEditDeliveryPlanning()\\\">\\n <span ng-if=\\\"vm.deliveryPlanningTemplate.length === 0\\\">{{'role.create' | translate}}</span>\\n <span ng-if=\\\"vm.deliveryPlanningTemplate.length !== 0\\\">{{'common.correct' | translate}}</span> \\n {{'order.deliveryPlanning' | translate}}\\n </button>\\n </span>\\n </div>\\n </div>\\n\\n <!-- Row 4 -->\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'article.collection' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\" ng-style=\\\"vm.getCollectionRowStyle()\\\">\\n <ca-singleselect model=\\\"vm.order.collection\\\" choices=\\\"vm.collections\\\" order-by=\\\"'collectionDescription'\\\" item-renderer=\\\"'collectionDescription'\\\" filter-by=\\\"['collectionDescription']\\\" disabled-by=\\\"!vm.canChangeCollection()\\\" />\\n </div>\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.termsofdelivery' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n\\n <ui-select ng-model=\\\"vm.order.deliveryTerms\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.order.approved || !vm.isCreatedOrNew\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.code}} {{$select.selected.name}}</ui-select-match>\\n <ui-select-choices repeat=\\\"term in vm.deliveryTerms | filter:{'name': $select.search}\\\">\\n <span>{{term.code}} {{term.name}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n <!-- Row 5 -->\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.ourreference' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'order.ourreference' | translate}}\\\"\\n ng-model=\\\"vm.order.ourReference\\\"\\n ng-disabled=\\\"vm.order.approved || !vm.isCreatedOrNew\\\"/>\\n </div>\\n\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.purchaser' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n <ui-select ng-model=\\\"vm.order.purchaser\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.order.approved || !vm.isCreatedOrNew\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.firstName}} {{$select.selected.lastName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"user in vm.users | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['firstName', 'lastName']}\\\">\\n <span>{{user.firstName}} {{user.lastName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n <!-- Row 6 -->\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.currency' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\" ng-style=\\\"vm.getCurrencyStyle()\\\">\\n <ui-select ng-model=\\\"vm.order.currency\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"!vm.canChangeCurrency()\\\" class=\\\"enterAsTab\\\" enter-as-tab on-select=\\\"vm.setCurrencyRate()\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.code}} {{$select.selected.name}}</ui-select-match>\\n <ui-select-choices repeat=\\\"currency in vm.currencies | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['code', 'name']}\\\">\\n <span>{{currency.code}} {{currency.name}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.currencyrate' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"number\\\" \\n step=\\\"any\\\" \\n placeholder=\\\"{{'order.currencyrate' | translate}}\\\"\\n ng-model=\\\"vm.order.currencyRate\\\"\\n ng-disabled=\\\"vm.order.approved || !vm.isCreatedOrNew\\\" />\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" style=\\\"height:12px\\\"> </div>\\n\\n <!-- Row 7 -->\\n <div class=\\\"form-group row\\\">\\n\\n <label class=\\\"col-sm-2 control-label\\\">{{'order.note' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n maxlength=\\\"290\\\"\\n placeholder=\\\"{{'order.note' | translate}}\\\"\\n ng-model=\\\"vm.order.orderNote\\\"\\n ng-disabled=\\\"vm.order.approved\\\"/>\\n </div>\\n \\n <label class=\\\"col-sm-2 control-label\\\">{{'base.country' | translate}}:</label>\\n <div class=\\\"col-lg-4\\\" ng-style=\\\"vm.getCountryStyle()\\\">\\n <ui-select ng-model=\\\"vm.order.countryOfOrigin\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.order.approved || !vm.isCreatedOrNew\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.code}} {{$select.selected.name}}</ui-select-match>\\n <ui-select-choices repeat=\\\"country in vm.countries | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['code', 'name']}\\\">\\n <span>{{country.code}} {{country.name}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<label class=\\\"col-sm-12\\\" tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'article.articlenumber' | translate}}: {{ vm.currentOrderArticle.article.articleNumber + (vm.currentOrderArticle.article.articleName != undefined && vm.currentOrderArticle.article.articleName.length > 0 ? ' - ' + vm.currentOrderArticle.article.articleName : '') }}\\\" tooltip-popup-delay=\\\"300\\\">\\n {{ vm.currentOrderArticle.article.alternativeArticleNumber !== undefined && vm.currentOrderArticle.article.alternativeArticleNumber.length > 0 ? vm.currentOrderArticle.article.alternativeArticleNumber : vm.currentOrderArticle.article.articleNumber }}\\n {{ vm.currentOrderArticle.article.articleName != undefined && vm.currentOrderArticle.article.articleName.length > 0 ? ' - ' + vm.currentOrderArticle.article.articleName : '' }}\\n</label>\\n\\n<div class=\\\"col-lg-12 m-b\\\">\\n <div class=\\\"col-lg-1\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.deliverOrderSection()\\\" ng-disabled=\\\"vm.ongoingRequest || !vm.canDeliverIn()\\\" ng-hide=\\\"vm.orderArticleIsDelivered()\\\"> {{'common.deliver' | translate}} </button>\\n </div>\\n <div class=\\\"col-lg-1\\\"ng-hide=\\\"vm.orderArticleIsDelivered()\\\">\\n \\n </div>\\n <div class=\\\"col-lg-2\\\" ng-hide=\\\"vm.orderArticleIsDelivered()\\\">\\n <div class=\\\"m-b-none m-t-none\\\" ng-hide=\\\"vm.order.orderType.orderSystemType === 'return'\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.restCurrentOrderArticle\\\" ng-disabled=\\\"!vm.canDeliverIn()\\\" />\\n <i></i>\\n {{'order.rest' | translate}}\\n </label>\\n </div>\\n </div>\\n <label class=\\\"col-lg-1 m-t-xs\\\" ng-hide=\\\"vm.orderArticleIsDelivered()\\\"> {{'order.deliverydate' | translate}}: </label>\\n <div class=\\\"col-lg-2\\\" ng-hide=\\\"vm.orderArticleIsDelivered()\\\">\\n <wj-input-date\\n value=\\\"vm.order.deliveredDate\\\"\\n initialized=\\\"vm.setWijmoInputDateLimits(s)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-disabled=\\\"!vm.canDeliverIn()\\\">\\n </wj-input-date>\\n </div>\\n <div class=\\\"col-lg-5\\\" ng-hide=\\\"vm.orderArticleIsDelivered()\\\">\\n \\n </div>\\n <div class=\\\"col-sm-12\\\">\\n <wj-flex-grid style=\\\"width: auto; max-width:100%\\\"\\n id=\\\"orderRowsFlexGrid\\\"\\n headers-visibility=\\\"Column\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-multi\\\"\\n auto-generate-columns=\\\"False\\\"\\n initialized=\\\"vm.captureRowsGrid(s)\\\"\\n beginning-edit=\\\"vm.handleNonexistingArticleVariants(s, e)\\\"\\n cell-edit-ended=\\\"vm.transferQuantityDataToOrder();vm.recalculateGridTotals();\\\">\\n </wj-flex-grid>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"editableForm\\\">\\n <div class=\\\"col-sm-12\\\" style=\\\"margin-bottom:5px;\\\" ng-show=\\\"!vm.isSingleVariantArticle(vm.currentOrderArticle.article)\\\">\\n <label tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'article.articlenumber' | translate}}: {{ vm.currentOrderArticle.article.articleNumber + (vm.currentOrderArticle.article.articleName != undefined && vm.currentOrderArticle.article.articleName.length > 0 ? ' - ' + vm.currentOrderArticle.article.articleName : '') }}\\\" tooltip-popup-delay=\\\"300\\\">\\n {{ vm.currentOrderArticle.article.alternativeArticleNumber !== undefined && vm.currentOrderArticle.article.alternativeArticleNumber.length > 0 ? vm.orderArticle.article.alternativeArticleNumber : vm.currentOrderArticle.article.articleNumber }}\\n {{ vm.currentOrderArticle.article.articleName != undefined && vm.currentOrderArticle.article.articleName.length > 0 ? ' - ' + vm.currentOrderArticle.article.articleName : '' }}\\n </label>\\n <span style=\\\"margin-left:30px;\\\" ng-if=\\\"vm.order.orderType && vm.order.orderType.orderSystemType === 'internal'\\\">\\n <button ng-click=\\\"vm.getStockQuantitiesForCurrentArticle()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{ vm.hasRetrievedStocks(vm.currentOrderArticle.article) ? 'order.updateStockQuantities' : 'order.showStockQuantities' | translate }} {{ '(' + vm.order.fromLocation.locationName + ')' }}\\n </button>\\n </span>\\n </div>\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.isAllowedToAddProduct && !vm.isSingleVariantArticle(vm.currentOrderArticle.article)\\\">\\n <wj-flex-grid style=\\\"width:auto; max-width:100%;\\\" class=\\\"orders-flex-grid orders-flex-grid-multi\\\"\\n id=\\\"orderRowsFlexGrid\\\"\\n headers-visibility=\\\"Column\\\"\\n auto-generate-columns=\\\"False\\\"\\n initialized=\\\"vm.captureRowsGrid(s)\\\"\\n beginning-edit=\\\"vm.beginEditingOrderRow(s, e)\\\"\\n cell-edit-ended=\\\"vm.orderRowEditEnded(s, e)\\\"\\n ng-disabled=\\\"vm.order.approved\\\">\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\">\\n \\n </div>\\n\\n <!-- <label class=\\\"col-sm-12\\\" ng-show=\\\"vm.hasQuantities\\\"> -->\\n <label class=\\\"col-sm-12\\\">\\n {{ vm.currentOrderArticle.article.alternativeArticleNumber !== undefined && vm.currentOrderArticle.article.alternativeArticleNumber.length > 0 ? vm.currentOrderArticle.article.alternativeArticleNumber : vm.currentOrderArticle.article.articleNumber }}\\n {{ vm.currentOrderArticle.article.articleName != undefined && vm.currentOrderArticle.article.articleName.length > 0 ? ' - ' + vm.currentOrderArticle.article.articleName : '' }}\\n <span class=\\\"alert alert-warning\\\" style=\\\"float:none; clear:both; padding:3px 15px; margin-bottom:3px; margin-left:30px;\\\" ng-if=\\\"vm.order.destination && vm.order.destination.resellerPriceList\\\">{{ 'order.pricesFromResellerPriceList' | translate }}</div>\\n </label>\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.hasGridQuantities() && vm.currentOrderArticle.hasDifferentVariantPrices\\\">\\n <wj-flex-grid style=\\\"width: auto\\\"\\n headers-visibility=\\\"Column\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-multi\\\"\\n initialized=\\\"vm.captureVariantPricesGrid(s)\\\"\\n cell-edit-ended=\\\"vm.recalculateVariantGridTotals(); vm.transferVariantPurchaseCostDataToOrder()\\\"\\n ng-disabled=\\\"vm.order.approved\\\">\\n <wj-flex-grid-column header=\\\"{{'order.status' | translate}}\\\" binding=\\\"statusName\\\" width=\\\"75\\\" align=\\\"left\\\" is-read-only=\\\"true\\\" > {{$item.statusName | translate}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.variant' | translate}}\\\" binding=\\\"color\\\" width=\\\"150\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.size' | translate}}\\\" binding=\\\"size\\\" width=\\\"150\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.purchaseprice' | translate}} {{ vm.getCurrencyCodeString() }}\\\" binding=\\\"originalPurchasePrice\\\" width=\\\"150\\\" align=\\\"right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.discountPercent' | translate}}\\\" binding=\\\"discountPercent\\\" width=\\\"75\\\" is-read-only=\\\"false\\\" align=\\\"right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'order.newpurchaseprice' | translate}} {{ vm.getCurrencyCodeString() }}\\\" binding=\\\"effectivePurchasePrice\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'order.newpurchaseprice' | translate}} ({{ vm.defaultCurrency.code }})\\\" binding=\\\"\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> {{ ($item.effectivePurchasePrice * vm.order.currencyRate).toFixed(2) }} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.currencyrate' | translate}}\\\" binding=\\\"\\\" width=\\\"75\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> {{vm.order.currencyRate}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.shippingCost' | translate}} ({{ vm.defaultCurrency.code }})\\\" binding=\\\"shippingCost\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.customsPercent' | translate}} %\\\" binding=\\\"customsPercent\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.otherCosts' | translate}} ({{ vm.defaultCurrency.code }})\\\" binding=\\\"otherCosts\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.standardCostAddPercent' | translate}}\\\" binding=\\\"standardCostAddPercent\\\" width=\\\"75\\\" is-read-only=\\\"false\\\" align=\\\"right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.purchasecost' | translate}}\\\" binding=\\\"purchaseCost\\\" width=\\\"150\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.totalquantity' | translate}}\\\" width=\\\"150\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> {{$item.quantity}} </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"=\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> {{($item.purchaseCost * $item.quantity).toFixed(2)}} </wj-flex-grid-column>\\n <!-- <wj-flex-grid-column header=\\\"{{'order.currencyrate' | translate}}\\\" binding=\\\"\\\" width=\\\"75\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> {{vm.order.currencyRate}} </wj-flex-grid-column> -->\\n\\n <!-- <wj-flex-grid-column header=\\\"=\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> {{ vm.getTotalRowSum($item) }} </wj-flex-grid-column> -->\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.hasGridQuantities() && !vm.currentOrderArticle.hasDifferentVariantPrices\\\">\\n <wj-flex-grid style=\\\"width: auto\\\"\\n headers-visibility=\\\"Column\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-multi\\\"\\n initialized=\\\"vm.capturePricesGrid(s)\\\"\\n cell-edit-ended=\\\"vm.recalculateGridTotals(); vm.transferPurchaseCostDataToOrder()\\\"\\n ng-disabled=\\\"vm.order.approved\\\">\\n <wj-flex-grid-column header=\\\"{{'order.status' | translate}}\\\" binding=\\\"statusName\\\" width=\\\"50\\\" align=\\\"left\\\" is-read-only=\\\"true\\\" > {{$item.statusName | translate}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.variant' | translate}}\\\" binding=\\\"color\\\" width=\\\"150\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.purchaseprice' | translate}} {{ vm.getCurrencyCodeString() }}\\\" binding=\\\"originalPurchasePrice\\\" width=\\\"150\\\" is-read-only=\\\"false\\\" align=\\\"right\\\"> {{$item.originalPurchasePrice.toFixed(2)}}</wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.discountPercent' | translate}}\\\" binding=\\\"discountPercent\\\" width=\\\"75\\\" is-read-only=\\\"false\\\" align=\\\"right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'order.newpurchaseprice' | translate}} {{ vm.getCurrencyCodeString() }}\\\" width=\\\"150\\\" is-read-only=\\\"true\\\" align=\\\"right\\\" is-read-only=\\\"true\\\">{{$item.effectivePurchasePrice.toFixed(2)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.currencyrate' | translate}}\\\" binding=\\\"\\\" width=\\\"50\\\" is-read-only=\\\"true\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> {{vm.order.currencyRate}} </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'order.newpurchaseprice' | translate}} ({{ vm.defaultCurrency.code }})\\\" binding=\\\"\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> {{ ($item.effectivePurchasePrice * vm.order.currencyRate).toFixed(2) }} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.shippingCost' | translate}} ({{vm.defaultCurrency.code}})\\\" binding=\\\"shippingCost\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.customsPercent' | translate}} %\\\" binding=\\\"customsPercent\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.otherCosts' | translate}} ({{ vm.defaultCurrency.code }})\\\" binding=\\\"otherCosts\\\" width=\\\"150\\\" align=\\\"right\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.standardCostAddPercent' | translate}}\\\" binding=\\\"standardCostAddPercent\\\" width=\\\"75\\\" is-read-only=\\\"false\\\" align=\\\"right\\\"> </wj-flex-grid-column>\\n <!-- <wj-flex-grid-column header=\\\"{{'order.currencyrate' | translate}}\\\" binding=\\\"\\\" width=\\\"75\\\" is-read-only=\\\"true\\\" align=\\\"right\\\" is-read-only=\\\"true\\\"> {{vm.order.currencyRate}} </wj-flex-grid-column> -->\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.purchasecost' | translate}}\\\" width=\\\"150\\\" is-read-only=\\\"true\\\" align=\\\"right\\\">{{$item.purchaseCost.toFixed(2)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.totalquantity' | translate}}\\\" width=\\\"150\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> {{$item.sumQuantity}} </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"=\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> {{($item.purchaseCost * $item.sumQuantity).toFixed(2)}} </wj-flex-grid-column>\\n <!-- <wj-flex-grid-column header=\\\"=\\\" is-read-only=\\\"true\\\" align=\\\"right\\\"> {{ vm.getTotalRowSum($item) }} </wj-flex-grid-column> -->\\n </wj-flex-grid>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-sm-12\\\">\\n <input id=\\\"navScanInput\\\" type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md b-t b-r b-l b-b\\\" ng-model=\\\"vm.navigationScannerInput\\\" placeholder=\\\"{{'order.scan' | translate}}\\\" ng-keypress=\\\"vm.scanInputKeyPress($event)\\\">\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n table.orderHead {\\n border-top: 1px solid #c6c6c6;\\n border-left: 1px solid #c6c6c6;\\n }\\n table.orderHead thead tr th {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n padding: 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n outline: none;\\n background-color: #edf1f2;\\n color: #000000;\\n font-weight: bold;\\n border-right: solid 1px #c1c5c6;\\n border-bottom: solid 1px #c1c5c6;\\n }\\n table.orderHead tbody tr td {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n padding: 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n outline: none;\\n }\\n alignRight {\\n text-align: right;\\n }\\n</style>\\n<div class=\\\"col-lg-12\\\">\\n <table class=\\\"orderHead orders-flex-grid\\\" style=\\\"max-width:1178px;\\\">\\n <thead>\\n <th>{{ 'order.ordernumber' | translate }}</th>\\n <th>{{ 'order.externalordernumber' | translate }}</th>\\n <th>{{ 'order.ordertype' | translate }}</th>\\n <th>{{ 'order.collection' | translate }}</th>\\n \\n <th ng-if=\\\"vm.shouldShowFromLocation()\\\">{{'order.fromlocation' | translate}}</th>\\n <th ng-if=\\\"vm.shouldShowSupplier()\\\">{{'order.companyname' | translate}}</th>\\n <th ng-if=\\\"vm.shouldShowDestination()\\\">{{'order.destination' | translate}}</th>\\n \\n <th ng-if=\\\"vm.haveOrderArticlePurchaseCostClaim\\\" class=\\\"alignRight\\\">{{ 'order.totalpurchasecost' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'order.totalsalesprice' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'order.totalquantity' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'order.deliveredquantity' | translate }}</th>\\n <th class=\\\"alignRight\\\">{{ 'order.deliveredcost' | translate }}</th>\\n <th>{{ 'order.planneddeliverydate' | translate }}</th>\\n <th>{{ 'order.status' | translate }}</th>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ vm.order.orderNumber }}</td>\\n <td>{{ vm.order.orderNumberExternal }}</td>\\n <td>{{ vm.order.orderType.orderTypeName | translate }}</td>\\n <td>{{ vm.order.collection.collectionDescription }}</td>\\n\\n <td ng-if=\\\"vm.shouldShowFromLocation()\\\">{{ vm.order.fromLocation.locationName }}</td>\\n <td ng-if=\\\"vm.shouldShowSupplier()\\\">{{ vm.order.company.companyName }}</td>\\n <td ng-if=\\\"vm.shouldShowDestination()\\\">{{ vm.order.destination.locationName }}</td>\\n\\n <td ng-if=\\\"vm.haveOrderArticlePurchaseCostClaim\\\" class=\\\"alignRight\\\">{{ vm.order.summarizedPurchaseCost.toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.order.summarizedSalesPrice.toFixed(2) }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.order.summarizedQuantity }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.order.summarizedDeliveredQuantity }}</td>\\n <td class=\\\"alignRight\\\">{{ vm.order.deliveredValue.toFixed(2) }}</td>\\n <td>{{ vm.order.plannedDeliveryDate | date:'yyyy-MM-dd' }}</td>\\n <td>{{ vm.order.statusName | translate }}</td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <!-- \\n Panel header section \\n -->\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.returnToState()\\\">\\n {{'common.return' | translate}}\\n </button>\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.outDeliverOrder()\\\"\\n ng-if=\\\"vm.isModifying && vm.isAllowedtoOutDeliverOrder()\\\">\\n {{'common.outdeliver' | translate}}\\n </button>\\n\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.deliverOrder()\\\"\\n ng-if=\\\"!vm.isModifying\\\" ng-disabled=\\\"!vm.canDeliverEntireOrder()\\\">\\n {{'common.deliverEntireOrder' | translate}}\\n </button>\\n\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.saveOrder()\\\" ng-if=\\\"vm.isModifying && !vm.order.approved\\\" ng-disabled=\\\"(!vm.order.orderArticles || vm.order.orderArticles.length === 0) || !vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.approveOrder()\\\" ng-if=\\\"vm.isModifying && vm.showApproveButton() && !vm.order.approved\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.approve' | translate}} </button>\\n <button class=\\\"btn btn-sm btn-success\\\" ng-if=\\\"vm.isModifying && vm.showApproveButton() && vm.order.approved\\\" ng-disabled=\\\"true\\\"> {{'common.approved' | translate}} </button>\\n\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.downloadOrderLabels()\\\"\\n ng-if=\\\"!vm.isModifying\\\">\\n {{'order.printlabel' | translate}}\\n </button>\\n\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.getOrderPrintout()\\\"\\n ng-if=\\\"vm.order.id && vm.order.orderType.orderSystemType.toLowerCase() != 'return'\\\">\\n {{'order.getaspdf' | translate}}\\n </button>\\n \\n <span style=\\\"padding-left: 20px;\\\">\\n <span ng-if=\\\"vm.order.id === 0\\\">{{'order.order' | translate}}: {{'common.new' | translate}}</span>\\n <span ng-if=\\\"vm.order.id !== 0\\\">{{'order.order' | translate}}: {{vm.order.orderNumber}} - {{vm.order.orderNumberExternal}} - {{vm.order.destination.locationName}}</span>\\n </span>\\n\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" style=\\\"float:right; margin-right:10%\\\" ng-click=\\\"vm.finalizeDelivery()\\\"\\n ng-if=\\\"!vm.isModifying && vm.order.systemStatus !== 'delivered'\\\"\\n ng-disabled=\\\"!vm.canDeliverIn()\\\">\\n {{'order.finalizeDelivery' | translate}}\\n </button>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"vm.order.orderNote && !vm.isModifying\\\">\\n <div class=\\\"col-lg-12\\\">\\n <label> {{'order.note' | translate}}: </label>\\n <label> {{vm.order.orderNote}} </label>\\n </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-if=\\\"vm.order.orderNote && !vm.isModifying\\\">\\n \\n </div>\\n\\n <!--\\n Metadata and order summary section\\n -->\\n <div class=\\\"col-lg-12\\\" ng-click=\\\"vm.toggleMetadataPanelVisibility()\\\" ng-hide=\\\"vm.showOrderMetadataPanel\\\" ng-if=\\\"vm.isModifying\\\">\\n <a class=\\\"auto\\\" href=\\\"\\\">\\n <div class=\\\"col-lg-12\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\"> </i> <span class=\\\"ca-font\\\"> {{'order.showOrderHead' | translate}}</span>\\n </div>\\n </a>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-click=\\\"vm.toggleMetadataPanelVisibility()\\\" ng-show=\\\"vm.showOrderMetadataPanel\\\" ng-if=\\\"vm.isModifying\\\">\\n <a class=\\\"auto\\\" href=\\\"\\\">\\n <div class=\\\"col-lg-12 b-b\\\" ng-click=\\\"vm.toggleExtraOptionsVisibility()\\\">\\n <i class=\\\"fa fa-fw fa-angle-down\\\"> </i> <span class=\\\"ca-font\\\"> {{'order.hideOrderHead' | translate}}</span>\\n </div>\\n </a>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showOrderMetadataPanel\\\">\\n <ca-order-meta-data order=\\\"vm.order\\\" delivery-planning-template=\\\"vm.deliveryPlanningTemplate\\\" disabled=\\\"False\\\" is-hidden=\\\"False\\\" is-copying=\\\"vm.isCopying\\\" order-change-count=\\\"vm.orderChangeCount\\\" init-order-type=\\\"vm.inputOrderSystemType\\\" init-company=\\\"vm.inputSupplierId\\\" set-collection-automatically=\\\"!vm.isCopying\\\" set-currency-rate-automatically=\\\"!vm.isModifying\\\"></ca-order-meta-data>\\n </div>\\n\\n <div class=\\\"panel-body b-b\\\">\\n <ca-order-totals order=\\\"vm.order\\\" order-change-count=\\\"vm.orderChangeCount\\\"> </ca-order-totals>\\n </div>\\n\\n <!--\\n Article summary section (\\\"ArticlesGrid\\\")\\n -->\\n <div class=\\\"col-lg-12\\\" ng-if=\\\"vm.usingScannerNavigation\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <ca-order-scanner-navigation order-change-count=\\\"vm.orderChangeCount\\\" order=\\\"vm.order\\\" on-article-selected=\\\"vm.viewOrderArticle(article)\\\" deliver-order=\\\"vm.deliverOrder()\\\" disabled=\\\"!vm.usingScannerNavigation\\\"> </ca-order-scanner-navigation>\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-hide=\\\"vm.visibility.orderArticlesAddForm || vm.order.approved\\\">\\n\\n <div class=\\\"col-sm-12\\\"> </div>\\n\\n <!-- \\n Barcode list input\\n -->\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.isShowingScanningForm\\\">\\n <div class=\\\"col-sm-1\\\">\\n <div class=\\\"col-sm-12\\\">\\n <button class=\\\"btn btn-dark\\\" ng-click=\\\"vm.toggleScanningForm()\\\">{{'order.scan' | translate}}</button>\\n </div>\\n </div>\\n <div class=\\\"col-sm-9\\\">\\n <ca-barcode-scanning-input on-order-articles-retrieved=\\\"vm.receiveOrderArticles(orderArticles)\\\" order=\\\"vm.order\\\"> </ca-barcode-scanning-input>\\n </div>\\n </div>\\n\\n <!--\\n Standard article search input\\n -->\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"!vm.isShowingScanningForm && vm.isAllowedToAddProduct\\\">\\n <div class=\\\"col-sm-1\\\" ng-if=\\\"!vm.isNewOrder\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.toggleScanningForm()\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\">{{'order.scan' | translate}}</button>\\n </div>\\n\\n <label class=\\\"col-sm-1 control-label\\\">{{'article.articlenumber' | translate}}:</label>\\n <div class=\\\"col-sm-4\\\">\\n <ca-article-search-multi-select company=\\\"vm.order.company\\\" articles-to-exclude=\\\"vm.order.orderArticles\\\" select-same-twice-allowed=\\\"false\\\" on-articles-retrieved=\\\"vm.receiveArticles(articles)\\\" page-size=\\\"20\\\" disabled=\\\"!vm.isAllowedToSave()\\\" />\\n </div>\\n <div class=\\\"col-sm-3\\\"> </div>\\n </div>\\n <div class=\\\"col-sm-12\\\"> </div>\\n\\n </div>\\n\\n <div class=\\\"panel-body b-b\\\">\\n <div class=\\\"editableForm\\\">\\n <ca-order-articles \\n order-change-count=\\\"vm.orderChangeCount\\\" \\n is-modifying=\\\"vm.isModifying\\\"\\n order=\\\"vm.order\\\" \\n disabled=\\\"false\\\" \\n on-article-selected=\\\"vm.viewOrderArticle(article)\\\"\\n links=\\\"vm.links\\\"> \\n </ca-order-articles>\\n </div>\\n </div>\\n\\n <!-- Shown if any article has been selected -->\\n <div ng-show=\\\"vm.currentOrderArticle.id !== undefined\\\">\\n\\n <!-- Is shown during deliver mode --> \\n <div class=\\\"panel-body b-b\\\" ng-if=\\\"!vm.isModifying\\\">\\n <ca-order-rows-delivery order=\\\"vm.order\\\" links=\\\"vm.links\\\" order-change-count=\\\"vm.orderChangeCount\\\" disabled=\\\"False\\\" current-order-article=\\\"vm.currentOrderArticle\\\"> </ca-order-rows-delivery>\\n </div>\\n\\n <!-- Is shown during editing mode -->\\n <div class=\\\"panel-body b-b\\\" ng-show=\\\"vm.isModifying\\\">\\n <ca-order-rows-edit order=\\\"vm.order\\\" order-change-count=\\\"vm.orderChangeCount\\\" disabled=\\\"False\\\" current-order-article=\\\"vm.currentOrderArticle\\\"> </ca-order-rows-edit>\\n </div>\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'common.correct' | translate}} {{'order.deliveryPlanning' | translate}}:</div>\\n <div class=\\\"body bg-gray\\\">\\n <table class=\\\"table\\\" style=\\\"padding-right: 8%;padding-left: 8%;\\\">\\n <thead>\\n <th style=\\\"width:15%\\\">{{'common.delete' | translate}}:</th>\\n <th style=\\\"width:35%\\\">{{'order.deliveryplanning.stage' | translate}}:</th>\\n <th style=\\\"width:35%\\\">{{'order.deliveryplanning.planned' | translate}}:</th>\\n <th style=\\\"width:15%\\\">{{'order.deliveryplanning.leadTime' | translate}}:</th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"plan in vm.deliveryPlanTemplate\\\" ng-if=\\\"!plan.disabled\\\" style=\\\"height: 38px;\\\">\\n <td style=\\\"width:15%;\\\"><input type=\\\"checkbox\\\" ng-change=\\\"vm.recalcLeadTime()\\\" style=\\\"transform: scale(1.25);\\\" ng-model=\\\"plan.disabled\\\"/></td>\\n <td style=\\\"width:35%\\\"><input style=\\\"width:95%;\\\" type=\\\"text\\\" ng-model=\\\"plan.name\\\"></td>\\n <td style=\\\"width:35%\\\">\\n <wj-input-date\\n style=\\\"width:95%;\\\"\\n value=\\\"plan.plannedDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n is-dropped-down-changing=\\\"vm.recalcLeadTime()\\\"\\n id=\\\"date{{plan.id}}\\\">\\n </wj-input-date>\\n </td>\\n <td style=\\\"width:15%\\\"> \\n <div style=\\\"position: absolute; z-index: 40000;\\\">\\n <div style=\\\"white-space: nowrap; padding-top:27px;\\\" ng-if=\\\"plan.nextPlanId !== null\\\">\\n <div ng-style=\\\"vm.errorLeadTime(plan.leadTimeInDays)\\\" style=\\\"background-color: whitesmoke; border:1px; border-style:solid; border-color:lightgray\\\">\\n <i class=\\\"fa fa-exchange\\\" style=\\\"font-size: 18px; transform: rotate(90deg);\\\" aria-hidden=\\\"true\\\"></i>\\n <span style=\\\"padding-left:8px;font-size: 16px;width:50px;padding-right:8px;\\\">{{plan.leadTimeInDays}}</span>\\n <!--<input style=\\\"width:50px\\\" type=\\\"number\\\" step=\\\"1\\\" ng-model=\\\"plan.leadTime\\\" ng-change=\\\"vm.changeDateAfterLeadTime(plan)\\\" ng-disabled=\\\"true\\\">\\n {{plan.leadTime}}<i class=\\\"fa fa-arrows-v\\\" aria-hidden=\\\"true\\\"></i>-->\\n </div>\\n </div>\\n </div>\\n </td>\\n </tr>\\n <tr ng-repeat=\\\"plan in vm.deliveryPlanTemplate\\\" style=\\\"background-color: lightgrey; color:gray;\\\" ng-if=\\\"plan.disabled\\\">\\n <td style=\\\"width:15%;\\\" style=\\\"height:18px; padding-top:0px; padding-bottom:0px\\\"><input style=\\\"margin-top:0px; transform: scale(1.25);\\\" type=\\\"checkbox\\\" ng-change=\\\"vm.recalcLeadTime()\\\" ng-model=\\\"plan.disabled\\\" /></td>\\n <td style=\\\"width:35%\\\" style=\\\"height:18px; padding-top:0px; padding-bottom:0px\\\" colspan=\\\"3\\\">{{plan.name}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" style=\\\"text-align-last: center;\\\">\\n <div>\\n <button class=\\\"btn btn-md btn-danger\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-md btn-success\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.apply' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n td {\\n font-size: 12px;\\n padding-top: 1px;\\n padding-bottom: 1px;\\n }\\n th {\\n padding-top: 1px;\\n padding-bottom: 1px;\\n }\\n</style>\\n\\n<div class=\\\"col-lg-12\\\" style=\\\"background-color: whitesmoke;\\\">\\n <div class=\\\"m-b-sm m-t-sm\\\">\\n <button ng-click=\\\"vm.goBackToOrderView()\\\" class=\\\"btn\\\" ng-class=\\\"'btn-default'\\\">{{'common.back' | translate}}</button>\\n </div>\\n <h3>{{'order.ordernumber' | translate}}: {{vm.order.orderNumber}}</h3>\\n <div style=\\\"display: flex; align-items:center;\\\">\\n <div class=\\\"col-lg-12\\\" style=\\\"max-width: 280px;\\\">\\n <label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\"> {{'order.externalordernumber'| translate}}: </label>\\n <label>{{vm.order.orderNumberExternal}} </label>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"max-width: 840px;\\\">\\n <label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\"> {{ 'order.deliveryplanning.maincomment' | translate }}: </label>\\n <label><input type=\\\"text\\\" ng-blur=\\\"vm.saveMainComment()\\\" class=\\\"form-control input-sm\\\" style=\\\"width: 640px;\\\" ng-model=\\\"vm.comment\\\" placeholder=\\\"{{ 'order.deliveryplanning.maincomment' | translate }}\\\"></label>\\n </div>\\n </div>\\n</div>\\n\\n<div class=\\\"m-t-xxs col-lg-12\\\" style=\\\"background-color: white;\\\">\\n <table class=\\\"table\\\" style=\\\"max-width: 1460px; table-layout:fixed;\\\">\\n <thead>\\n <th class=\\\"b-r\\\" style=\\\"width:20%\\\">{{ 'order.deliveryplanning.stage' | translate }}</th>\\n <th class=\\\"b-r\\\" style=\\\"width:100px;padding-left:5px;\\\" ng-show=\\\"vm.showPlanned\\\">\\n <button class=\\\"btn\\\" style=\\\"padding:0px;height:21px;background-color:transparent;\\\" ng-click=\\\"vm.showPlanned = !vm.showPlanned;\\\">\\n <i class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n <b>{{ 'order.deliveryplanning.planned' | translate }}</b>\\n </button>\\n </th>\\n <th class=\\\"b-r\\\" style=\\\"padding-left:5px;width:23px\\\" ng-show=\\\"!vm.showPlanned\\\">\\n <button class=\\\"btn\\\" style=\\\"padding:0px;height:21px;background-color:transparent;\\\" ng-click=\\\"vm.showPlanned = !vm.showPlanned;\\\">\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </th>\\n <th class=\\\"b-r\\\" style=\\\"width:15%\\\">{{ 'order.deliveryplanning.deliveryforecast' | translate }}</th>\\n <th class=\\\"b-r\\\" style=\\\"width:15%\\\">{{ 'order.deliveryplanning.confirmed' | translate }}</th>\\n <th class=\\\"b-r\\\" style=\\\"width:20%\\\">{{ 'order.deliveryplanning.confirmedBy' | translate }}</th>\\n <th class=\\\"b-r\\\" style=\\\"width:25%\\\">{{ 'order.deliveryplanning.comment' | translate }}</th>\\n <th></th>\\n </thead>\\n <tbody height=\\\"25px\\\" ng-repeat=\\\"plan in vm.deliveryPlansCopy\\\" ng-style=\\\"vm.getBackgroundColor(plan)\\\" ng-disabled=\\\"vm.selectedDeliveryPlanCopy.Id != plan.Id\\\">\\n <!--Completed and not selected-->\\n <tr ng-show=\\\"plan.completed && !vm.isSelected(plan)\\\">\\n <th class=\\\"b-r\\\" style=\\\"overflow: hidden;white-space: nowrap; height:26px; padding:5px\\\">\\n <i class=\\\"fa fa-check\\\" style=\\\"font-size:18px;\\\" aria-hidden=\\\"true\\\"></i>\\n <b>{{ plan.name }}</b>\\n </th>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\" ng-style=\\\"vm.getPredictedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan) && vm.showPlanned\\\">\\n {{ plan.plannedDate.toString().substring(0,10) }}\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\" ng-style=\\\"vm.getPredictedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan) && !vm.showPlanned\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'order.deliveryplanning.planned' | translate }}: {{ plan.plannedDate.toString().substring(0,10) }}.\\\" tooltip-popup-delay=\\\"100\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n </div>\\n <div ng-show=\\\"vm.isLeadTime(plan) && vm.showPlanned\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\" ng-style=\\\"vm.getConfirmedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.canUndoConfirm(plan)\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-disabled=\\\"vm.editingAny()\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n {{ vm.formatDate(plan.confirmedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"!vm.canUndoConfirm(plan)\\\">\\n {{ vm.formatDate(plan.confirmedDate) }}\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">{{ plan.user }}</td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <input style=\\\"height:26px\\\" type=\\\"text\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"plan.comment\\\" ng-focus=\\\"vm.selectRow(plan)\\\"\\n placeholder=\\\"{{ 'order.deliveryplanning.comment' | translate }}\\\" ng-disabled=\\\"vm.editingAny()\\\">\\n </td>\\n </tr>\\n <!--Selected-->\\n <tr ng-show=\\\"vm.isSelected(plan)\\\">\\n <th class=\\\"b-r\\\" style=\\\"overflow: hidden;white-space: nowrap; height:26px; padding:5px\\\">\\n <i class=\\\"fa fa-pencil\\\" style=\\\"font-size:18px;\\\" aria-hidden=\\\"true\\\"></i>\\n <b>{{ plan.name }}</b>\\n </th>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan) && vm.showPlanned\\\">\\n {{ plan.plannedDate.toString().substring(0,10) }}\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan)\\\">\\n <span ng-show=\\\"!vm.isEditingConfirmed\\\">\\n <div ng-show=\\\"!vm.isEditingPredicted\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-show=\\\"!vm.showPlanned\\\" ng-disabled=\\\"vm.isEditingConfirmed || plan.completed\\\" ng-click=\\\"vm.editPredicted(plan)\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'order.deliveryplanning.planned' | translate }}: {{ plan.plannedDate.toString().substring(0,10) }}.\\\" tooltip-popup-delay=\\\"100\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n <button class=\\\"btn btn-xs btn-default\\\" ng-show=\\\"vm.showPlanned\\\" ng-disabled=\\\"vm.isEditingConfirmed || plan.completed\\\" ng-click=\\\"vm.editPredicted(plan)\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"vm.isEditingPredicted\\\">\\n <wj-input-date\\n style=\\\"font-size:12px; width:110px;\\\"\\n value=\\\"plan.predictedDate\\\"\\n is-dropped-down-changing=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </div>\\n </span>\\n <span ng-show=\\\"vm.isEditingConfirmed\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n </span>\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <div ng-show=\\\"!vm.isEditingPredicted\\\">\\n <div ng-show=\\\"!vm.isEditingConfirmed\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-disabled=\\\"vm.isEditingPredicted || (!vm.canUndoConfirm(plan) && !vm.canConfirm(plan))\\\" ng-show=\\\"vm.canConfirm(plan) || plan.completed\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n <span ng-show=\\\"plan.confirmedDate != null\\\">\\n {{ vm.formatDate(plan.confirmedDate) }}\\n </span>\\n <span ng-show=\\\"plan.confirmedDate == null\\\">\\n {{ 'common.approve' | translate }}\\n </span>\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"vm.isEditingConfirmed\\\">\\n <wj-input-date\\n style=\\\"font-size:12px; width:110px;\\\"\\n value=\\\"plan.confirmedDate\\\"\\n is-dropped-down-changing=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n is-required=\\\"false\\\"\\n placeholder=\\\"{{ 'common.approve' | translate }}\\\">\\n </wj-input-date>\\n <button ng-click=\\\"plan.confirmedDate = null\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-warning'\\\" style=\\\"margin-left:6px\\\" ng-show=\\\"vm.canUndoConfirm(plan)\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.clear' | translate }} {{ 'order.deliveryplanning.confirmed' | translate }}.\\\" tooltip-popup-delay=\\\"100\\\">\\n <i class=\\\"fa fa-trash-o\\\"></i>\\n </button>\\n </div>\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\"> \\n <span class=\\\"b-r\\\" style=\\\"padding-right:6px\\\" ng-show=\\\"vm.isLeadTime(plan) && (!vm.isEditingConfirmed && vm.isEditingPredicted)\\\">\\n {{ 'order.deliveryplanning.recalculateshort' | translate}} <input type=\\\"checkbox\\\" ng-model=\\\"vm.recalculate\\\" ng-click=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'order.deliveryplanning.recalculatetooltip' | translate}}\\\" tooltip-popup-delay=\\\"100\\\">\\n </span>\\n <button ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\" style=\\\"margin-left:6px\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <input style=\\\"height:26px\\\" type=\\\"text\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"plan.comment\\\" ng-focus=\\\"vm.selectRow(plan)\\\"\\n placeholder=\\\"{{ 'order.deliveryplanning.comment' | translate }}\\\">\\n </td>\\n </tr>\\n <!--Not selected and not Completed-->\\n <tr ng-show=\\\"!plan.completed && !vm.isSelected(plan)\\\">\\n <th class=\\\"b-r\\\" style=\\\"overflow: hidden;white-space: nowrap; height:26px; padding:5px\\\"><b>{{ plan.name }}</b></th>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\" ng-style=\\\"vm.getPredictedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan) && vm.showPlanned\\\">\\n {{ plan.plannedDate.toString().substring(0,10) }}\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\" ng-style=\\\"vm.getPredictedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan)\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-show=\\\"!vm.editingAny() && !vm.showPlanned\\\" ng-click=\\\"vm.editPredicted(plan)\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'order.deliveryplanning.planned' | translate }}: {{ plan.plannedDate.toString().substring(0,10) }}.\\\" tooltip-popup-delay=\\\"100\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n <button class=\\\"btn btn-xs btn-default\\\" ng-show=\\\"!vm.editingAny() && vm.showPlanned\\\" ng-click=\\\"vm.editPredicted(plan)\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n <span ng-show=\\\"vm.editingAny()\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <span ng-show=\\\"vm.showDifferece(plan)\\\" style=\\\"display: inline-block;\\\">\\n <span ng-show=\\\"vm.isEditingConfirmed\\\">\\n <span ng-show=\\\"vm.recalculatedDifference > 0\\\" style=\\\"color:red ;\\\">\\n +{{ vm.recalculatedDifference }}\\n </span>\\n <span ng-show=\\\"vm.recalculatedDifference < 0\\\" style=\\\"color:green \\\">\\n {{ vm.recalculatedDifference }}\\n </span>\\n </span>\\n <span ng-show=\\\"vm.isEditingPredicted\\\">\\n <span ng-show=\\\"vm.recalculatedDifference > 0\\\" style=\\\"color:red ;\\\">\\n +{{ vm.recalculatedDifference }}\\n </span>\\n <span ng-show=\\\"vm.recalculatedDifference < 0\\\" style=\\\"color:green \\\">\\n {{ vm.recalculatedDifference }}\\n </span>\\n </span>\\n </span>\\n </span>\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <div ng-show=\\\"vm.canConfirm(plan)\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-disabled=\\\"vm.editingAny()\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n {{ 'common.approve' | translate }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n </td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">{{ plan.user }}</td>\\n <td class=\\\"b-r\\\" style=\\\" height:26px; padding:5px\\\">\\n <input style=\\\"height:24px\\\" type=\\\"text\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"plan.comment\\\" ng-focus=\\\"vm.selectRow(plan)\\\"\\n placeholder=\\\"{{ 'order.deliveryplanning.comment' | translate }}\\\" ng-disabled=\\\"vm.editingAny()\\\">\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <div style=\\\"height:200px;\\\"></div>\\n</div>\\n <!--\\n <tr>\\n <td ng-show=\\\"!plan.completed\\\"</td>\\n <td ng-show=\\\"plan.completed\\\" style=\\\"font-size:20px; padding:4px\\\"><i class=\\\"fa fa-check\\\" aria-hidden=\\\"true\\\"></i></td>\\n <td><b>{{ plan.name }}</b></td>\\n <td>\\n <div ng-show=\\\"vm.isLeadTime(plan) && !vm.isSelected(plan)\\\">\\n <b>{{ plan.plannedDate.toString().substring(0,10) }}</b>\\n </div>\\n </td>\\n <td ng-style=\\\"vm.getPredictedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan)\\\">\\n <div ng-show=\\\"(vm.isSelected(plan) && !vm.isEditingPredicted) || (!vm.isSelected(plan) && !vm.editingAny())\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-style=\\\"vm.getPredictedButtonBackgroundColor(plan)\\\" ng-disabled=\\\"vm.isEditingConfirmed\\\" ng-if=\\\"vm.canChangePredicted(plan)\\\" ng-click=\\\"vm.editPredicted(plan)\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"!vm.canChangePredicted(plan) || (vm.editingAny() && !vm.isSelected(plan))\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <div ng-show=\\\"vm.showDifferece(plan)\\\" style=\\\"display: inline-block;\\\">\\n <div ng-show=\\\"vm.recalculatedDifference > 0\\\" style=\\\"color:red ;\\\">\\n +{{ vm.recalculatedDifference }}\\n </div>\\n <div ng-show=\\\"vm.recalculatedDifference < 0\\\" style=\\\"color:green \\\">\\n {{ vm.recalculatedDifference }}\\n </div>\\n </div>\\n </div>\\n </div>\\n <div ng-show=\\\"vm.isSelected(plan) && vm.isEditingPredicted\\\" style=\\\"position: absolute; z-index: 10; width:124px;\\\">\\n <span style=\\\"white-space: nowrap;\\\" >\\n <wj-input-date\\n style=\\\"font-size:12px ;width:124px;\\\"\\n value=\\\"plan.predictedDate\\\"\\n is-dropped-down-changing=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-disabled=\\\"!vm.canChangePredicted(plan)\\\">\\n </wj-input-date>\\n <input style=\\\"display: inline-block; margin-left:-210px; margin-right:250px\\\" type=\\\"checkbox\\\" ng-model=\\\"vm.recalculate\\\" ng-click=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"Beräkna om Leverans Prognos?\\\" tooltip-popup-delay=\\\"100\\\">\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </span>\\n </div>\\n </td>\\n <td ng-style=\\\"vm.getConfirmedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.canConfirm(plan) && !vm.isEditingConfirmed && (vm.isSelected(plan) || !vm.editingAny())\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-disabled=\\\"vm.isEditingPredicted\\\" ng-if=\\\"vm.canConfirm(plan)\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n <span ng-show=\\\"plan.confirmedDate == null\\\">{{ 'common.approve' | translate }}</span> \\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"vm.isSelected(plan) && vm.canUndoConfirm(plan) && !vm.isEditingConfirmed\\\">\\n <button class=\\\"btn btn-xs btn-default\\\" ng-disabled=\\\"vm.isEditingPredicted\\\" ng-if=\\\"vm.canUndoConfirm(plan)\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n <span ng-show=\\\"plan.confirmedDate != null\\\">{{ vm.formatDate(plan.confirmedDate) }}</span> \\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"!vm.canConfirm(plan) && plan.completed\\\">\\n {{ vm.formatDate(plan.confirmedDate) }}\\n </div>\\n <div ng-show=\\\"vm.isSelected(plan) && vm.isEditingConfirmed\\\" style=\\\"position: absolute; z-index: 10;\\\">\\n <span style=\\\"white-space: nowrap;\\\" >\\n <wj-input-date\\n style=\\\"font-size:12px ;width:124px;\\\"\\n value=\\\"plan.confirmedDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n is-required=\\\"false\\\"\\n placeholder=\\\"{{ 'common.approve' | translate }}\\\">\\n </wj-input-date>\\n <input style=\\\"display: inline-block; margin-left:-210px; margin-right:250px\\\" type=\\\"checkbox\\\" ng-model=\\\"vm.recalculate\\\" ng-click=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"Beräkna om Leverans Prognos?\\\" tooltip-popup-delay=\\\"100\\\">\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </span>\\n </div>\\n </td>\\n <td>{{ plan.user }}</td>\\n <td>\\n <input style=\\\"height:26px\\\" type=\\\"text\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"plan.comment\\\" ng-focus=\\\"vm.selectRow(plan)\\\"\\n placeholder=\\\"{{ 'order.deliveryplanning.comment' | translate }}\\\" ng-disabled=\\\"(!vm.isSelected(plan) && vm.editingAny()) || plan.completed\\\">\\n </td>\\n <td>\\n <button ng-click=\\\"vm.editSavedPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-primary'\\\" ng-show=\\\"vm.canUndoConfirm(plan) && !vm.editingAny()\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.edit' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-edit\\\"></i></button>\\n <button ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\" ng-show=\\\"vm.isSelected(plan) && !vm.isEditingConfirmed && !vm.isEditingPredicted\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\" ng-show=\\\"vm.isSelected(plan) && !vm.isEditingConfirmed && !vm.isEditingPredicted\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <div style=\\\"height:200px;\\\"></div>\\n</div>\\n\\n<div class=\\\"m-t-xxs col-lg-12\\\" style=\\\"background-color: white;\\\">\\n <table class=\\\"table\\\" style=\\\"max-width: 1460px;\\\">\\n <thead>\\n <th></th>\\n <th class=\\\"col-lg-2\\\" style=\\\"padding-left:8px;\\\">{{ 'order.deliveryplanning.stage' | translate }}</th>\\n <th class=\\\"col-lg-1\\\">{{ 'order.deliveryplanning.planned' | translate }}</th>\\n <th class=\\\"col-lg-1\\\">{{ 'order.deliveryplanning.deliveryforecast' | translate }}</th>\\n <th class=\\\"col-lg-1\\\">{{ 'order.deliveryplanning.confirmed' | translate }}</th>\\n <th class=\\\"col-lg-1\\\">{{ 'order.deliveryplanning.confirmedBy' | translate }}</th>\\n <th class=\\\"col-lg-3\\\">{{ 'order.deliveryplanning.comment' | translate }}</th>\\n <th class=\\\"col-lg-3\\\"></th>\\n </thead>\\n <tbody ng-repeat=\\\"plan in vm.deliveryPlansCopy\\\" ng-style=\\\"vm.getBackgroundColor(plan)\\\" ng-disabled=\\\"vm.selectedDeliveryPlanCopy.Id != plan.Id\\\">\\n <tr>\\n <td ng-show=\\\"!plan.completed\\\" style=\\\"font-size:20px; padding:4px\\\"></td>\\n <td ng-show=\\\"plan.completed\\\" style=\\\"font-size:20px; padding:4px\\\"><i class=\\\"fa fa-check\\\" aria-hidden=\\\"true\\\"></i></td>\\n <td style=\\\"padding: 8px; padding-bottom:1px\\\"><b style=\\\"overflow: hidden; white-space: nowrap;\\\">{{ plan.name }}</b></td>\\n <td><div ng-show=\\\"vm.isLeadTime(plan)\\\">{{ plan.plannedDate.toString().substring(0,10) }}</div></td>\\n <td style=\\\"padding: 8px; padding-bottom:0px;padding-top:3px\\\" ng-style=\\\"vm.getPredictedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.isLeadTime(plan)\\\">\\n <div ng-show=\\\"(vm.isSelected(plan) && !vm.isEditingPredicted) || (!vm.isSelected(plan) && !vm.editingAny())\\\">\\n <button style=\\\"height: 30px; width:124px\\\" class=\\\"btn btn-default\\\" ng-style=\\\"vm.getPredictedButtonBackgroundColor(plan)\\\" ng-disabled=\\\"vm.isEditingConfirmed\\\" ng-if=\\\"vm.canChangePredicted(plan)\\\" ng-click=\\\"vm.editPredicted(plan)\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'order.deliveryplanning.planned' | translate }}: {{ plan.plannedDate.toString().substring(0,10) }}.\\\" tooltip-popup-delay=\\\"100\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div style=\\\"white-space: nowrap; padding: 8px; padding-bottom:1px; padding-top:5px\\\" \\n ng-show=\\\"!vm.canChangePredicted(plan) || (vm.editingAny() && !vm.isSelected(plan))\\\">\\n {{ vm.formatDate(plan.predictedDate) }}\\n <div ng-show=\\\"vm.showDifferece(plan)\\\" style=\\\"display: inline-block;\\\">\\n <div ng-show=\\\"vm.recalculatedDifference > 0\\\" style=\\\"color:red ;\\\">\\n +{{ vm.recalculatedDifference }}\\n </div>\\n <div ng-show=\\\"vm.recalculatedDifference < 0\\\" style=\\\"color:green \\\">\\n {{ vm.recalculatedDifference }}\\n </div>\\n </div>\\n </div>\\n </div>\\n <div ng-show=\\\"vm.isSelected(plan) && vm.isEditingPredicted\\\" style=\\\"position: absolute; z-index: 10; width:124px;\\\">\\n <span style=\\\"white-space: nowrap;\\\" >\\n <wj-input-date\\n style=\\\"width:124px;\\\"\\n value=\\\"plan.predictedDate\\\"\\n is-dropped-down-changing=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-disabled=\\\"!vm.canChangePredicted(plan)\\\">\\n </wj-input-date>\\n <input style=\\\"display: inline-block; margin-left:10px; margin-right:10px\\\" type=\\\"checkbox\\\" ng-model=\\\"vm.recalculate\\\" ng-click=\\\"vm.doRecalculateDiffrence(plan)\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"Beräkna om Leverans Prognos?\\\" tooltip-popup-delay=\\\"100\\\">\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </span>\\n </div>\\n </td>\\n <td style=\\\"padding: 8px; padding-bottom:0px;padding-top:3px\\\" ng-style=\\\"vm.getConfirmedBackgroundColor(plan)\\\">\\n <div ng-show=\\\"vm.canConfirm(plan) && !vm.isEditingConfirmed && (vm.isSelected(plan) || !vm.editingAny())\\\">\\n <button style=\\\"height: 30px;\\\" class=\\\"btn btn-default\\\" ng-disabled=\\\"vm.isEditingPredicted\\\" ng-if=\\\"vm.canConfirm(plan)\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n <span ng-show=\\\"plan.confirmedDate == null\\\">{{ 'common.approve' | translate }}</span> \\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div ng-show=\\\"vm.isSelected(plan) && vm.canUndoConfirm(plan) && !vm.isEditingConfirmed\\\">\\n <button style=\\\"height: 30px;\\\" class=\\\"btn btn-default\\\" ng-disabled=\\\"vm.isEditingPredicted\\\" ng-if=\\\"vm.canUndoConfirm(plan)\\\" ng-click=\\\"vm.editConfirmed(plan)\\\">\\n <span ng-show=\\\"plan.confirmedDate != null\\\">{{ vm.formatDate(plan.confirmedDate) }}</span> \\n <i class=\\\"fa fa-caret-down\\\" style=\\\"padding-left:6px\\\"></i>\\n </button>\\n </div>\\n <div style=\\\" padding: 8px; padding-bottom:1px; padding-top:5px\\\"\\n ng-show=\\\"!vm.canConfirm(plan) && plan.completed\\\">\\n {{ vm.formatDate(plan.confirmedDate) }}\\n </div>\\n <div ng-show=\\\"vm.isSelected(plan) && vm.isEditingConfirmed\\\" style=\\\"position: absolute; z-index: 10;\\\">\\n <span style=\\\"white-space: nowrap;\\\" >\\n <wj-input-date\\n style=\\\"width:124px;\\\"\\n value=\\\"plan.confirmedDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n is-required=\\\"false\\\"\\n placeholder=\\\"{{ 'common.approve' | translate }}\\\">\\n </wj-input-date>\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button style=\\\"display: inline-block;\\\" ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </span>\\n </div>\\n </td>\\n <td style=\\\"padding: 8px; padding-bottom:1px; padding-left: 4px\\\">{{ plan.user }}</td>\\n <td style=\\\"padding: 8px; padding-bottom:1px\\\">\\n <input style=\\\"height:26px\\\" type=\\\"text\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"plan.comment\\\" ng-focus=\\\"vm.selectRow(plan)\\\"\\n placeholder=\\\"{{ 'order.deliveryplanning.comment' | translate }}\\\" ng-disabled=\\\"(!vm.isSelected(plan) && vm.editingAny()) || plan.completed\\\">\\n </td>\\n <td style=\\\"padding: 8px; padding-bottom:1px\\\">\\n <button ng-click=\\\"vm.editSavedPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-primary'\\\" ng-show=\\\"vm.canUndoConfirm(plan) && !vm.editingAny()\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.edit' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-edit\\\"></i></button>\\n <button ng-click=\\\"vm.savePlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-success'\\\" ng-show=\\\"vm.isSelected(plan) && !vm.isEditingConfirmed && !vm.isEditingPredicted\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.apply' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-check\\\"></i></button>\\n <button ng-click=\\\"vm.undoPlan(plan)\\\" class=\\\"btn-xs\\\" ng-class=\\\"'btn-danger'\\\" ng-show=\\\"vm.isSelected(plan) && !vm.isEditingConfirmed && !vm.isEditingPredicted\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.cancel' | translate }}\\\" tooltip-popup-delay=\\\"100\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <div style=\\\"height:200px;\\\"></div>\\n</div>-->\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\\n<a ng-click=\\\"vm.toggleDisplay()\\\" ng-show=\\\"vm.deliveryRows.length > 0\\\">\\n <label class=\\\"control-label\\\">{{'order.deliveries' | translate}}:</label>\\n <i class=\\\"fa {{vm.displayComponent ? 'fa-chevron-down':'fa-chevron-right'}}\\\"></i>\\n</a>\\n<table class=\\\"table-hover table-condensed table-readable-compact\\\" ng-show=\\\"vm.displayComponent && vm.deliveryRows.length > 0\\\">\\n <thead>\\n <th> {{'stocktransaction.transactionType' | translate}} </th>\\n <th> {{ 'location.location' | translate }} </th>\\n <th> {{'stock.accountingDate' | translate}} </th>\\n <th> {{'order.delivereddate' | translate}} </th>\\n <th> {{'article.variantdetail1' | translate}} </th>\\n <th> {{'article.variantdetail2' | translate}} </th>\\n <th> {{'order.quantity' | translate}} </th>\\n <th> {{'order.deliveringperson' | translate}} </th>\\n </thead>\\n <tr ng-repeat=\\\"deliveryRow in vm.deliveryRows\\\">\\n <td> {{ vm.translateDeliveryRowType(deliveryRow.deliveryRowType) }} </td>\\n <td> {{ deliveryRow.location.locationName }} </td>\\n <td> {{deliveryRow.stockTransaction.accountingDate.split('T')[0]}} {{deliveryRow.stockTransaction.accountingDate.split('T')[1].substring(0, 5)}} </td>\\n <td> {{deliveryRow.stockTransaction.transactionDate.split('T')[0]}} {{deliveryRow.stockTransaction.transactionDate.split('T')[1].substring(0, 5)}} </td>\\n <td> {{deliveryRow.articleVariant.variantDetail1.variantDetailName}} </td>\\n <td> {{deliveryRow.articleVariant.variantDetail2.variantDetailName}} </td>\\n <td> {{deliveryRow.quantity}} </td>\\n <td> {{deliveryRow.deliveringUser.firstName}} {{deliveryRow.deliveringUser.lastName}} </td>\\n </tr>\\n</table>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-sm-12\\\" tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'article.articlenumber' | translate}}: {{ vm.orderArticle.article.articleNumber + (vm.orderArticle.article.articleName != undefined && vm.orderArticle.article.articleName.length > 0 ? ' - ' + vm.orderArticle.article.articleName : '') }}\\\" tooltip-popup-delay=\\\"300\\\">\\n {{ vm.orderArticle.article.alternativeArticleNumber !== undefined && vm.orderArticle.article.alternativeArticleNumber.length > 0 ? vm.orderArticle.article.alternativeArticleNumber : vm.orderArticle.article.articleNumber }}\\n {{ vm.orderArticle.article.articleName != undefined && vm.orderArticle.article.articleName.length > 0 ? ' - ' + vm.orderArticle.article.articleName : '' }}\\n </label>\\n\\n <div ng-repeat=\\\"dest in vm.flexGridData.destinations\\\" style=\\\"max-width:100%;\\\">\\n {{ dest.locationName }}<br />\\n <wj-flex-grid\\n headers-visibility=\\\"Column\\\"\\n selection-mode=\\\"Row\\\"\\n style=\\\"max-width:100%;\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-fixed-width\\\"\\n auto-generate-columns=\\\"False\\\"\\n initialized=\\\"vm.gridPostInitialization(s, e, dest.locationName)\\\">\\n </wj-flex-grid>\\n </div>\\n</div>\\n<div class=\\\"col-lg-12\\\">\\n <ca-order-article-deliveries order-article=\\\"vm.orderArticle\\\"> </ca-order-article-deliveries>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n tr.no-b-border td{\\n border-bottom: 0px !important;\\n }\\n</style>\\n<div class=\\\"col-lg-12\\\">\\n <table class=\\\"ca-flexgrid cell-borders\\\" style=\\\"max-width:1178px;\\\">\\n <thead>\\n <th>{{'order.ordernumber' | translate}}</th>\\n <th>{{'order.externalordernumber' | translate}}</th>\\n <th>{{'order.ordertype' | translate}}</th>\\n \\n <th ng-if=\\\"vm.shouldShowFromLocation()\\\">{{'order.fromlocation' | translate}}</th>\\n <th ng-if=\\\"vm.shouldShowSupplier()\\\">{{'order.companyname' | translate}}</th>\\n <th ng-if=\\\"vm.shouldShowDestination()\\\">{{'order.destination' | translate}}</th>\\n \\n <th>{{'order.collection' | translate}}</th>\\n <th ng-if=\\\"vm.hasClaim\\\" style=\\\"text-align: right;\\\">{{'order.totalpurchasecost' | translate}}</th>\\n <th style=\\\"text-align: right;\\\">{{'order.totalsalesprice' | translate}}</th>\\n <th style=\\\"text-align: right;\\\">{{'order.totalquantity' | translate}}</th>\\n <th style=\\\"text-align: right;\\\">{{'order.deliveredquantity' | translate}}</th>\\n <th>{{'order.planneddeliverydate' | translate}}</th>\\n <th>{{'order.status' | translate}}</th>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ vm.order.orderNumber }}</td>\\n <td>{{ vm.order.orderNumberExternal }}</td>\\n <td>{{ vm.order.orderType.orderTypeName | translate }}</td>\\n \\n <td ng-if=\\\"vm.shouldShowFromLocation()\\\">{{ vm.order.fromLocation.locationName }}</td>\\n <td ng-if=\\\"vm.shouldShowSupplier()\\\">{{ vm.order.company.companyName }}</td>\\n <td ng-if=\\\"vm.shouldShowDestination()\\\">{{ vm.order.destination.locationName }}</td>\\n \\n <td>{{ vm.order.collection.collectionDescription }}</td>\\n <td ng-if=\\\"vm.hasClaim\\\" style=\\\"text-align: right;\\\">{{ vm.order.summarizedPurchaseCost.toFixed(2) }}</td>\\n <td style=\\\"text-align: right;\\\">{{ vm.order.summarizedSalesPrice.toFixed(2) }}</td>\\n <td style=\\\"text-align: right;\\\">{{ vm.order.summarizedQuantity }}</td>\\n <td style=\\\"text-align: right;\\\">{{ vm.abs(vm.order.summarizedDeliveredQuantity) }}</td>\\n <td>{{ vm.order.plannedDeliveryDate.toString().substring(0,10) }}</td>\\n <td>{{ vm.order.statusName | translate }}</td>\\n </tr>\\n </tbody>\\n </table>\\n <div class=\\\"col-lg-12\\\" style=\\\"max-width: 1178px; height:20px; margin-top:-8px;\\\">\\n <label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\"> {{'base.country'| translate}}: </label>\\n <label ng-if=\\\"vm.order.countryOfOrigin\\\">{{vm.order.countryOfOrigin.code}} {{vm.order.countryOfOrigin.name}}</label>\\n </div>\\n</div>\\n<div class=\\\"col-lg-12\\\">\\n <table class=\\\"table\\\" style=\\\"max-width:1178px;\\\">\\n <thead>\\n <th>{{'order.createdby' | translate}}</th>\\n <th>{{'order.purchaser' | translate}}</th>\\n <th style=\\\"text-align: center;\\\">{{'common.approved' | translate}}</th>\\n <th style=\\\"text-align: center;\\\">{{'order.hasbeenprinted' | translate}}</th>\\n <th style=\\\"text-align: center;\\\">{{'order.ispriority' | translate}}</th>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ vm.order.user.firstName }} {{ vm.order.user.lastName }}</td>\\n <td>{{ vm.order.purchaser.firstName }} {{ vm.order.purchaser.lastName }}</td>\\n <td style=\\\"text-align: center;\\\">\\n <i class=\\\"fa fa-check\\\" ng-if=\\\"vm.order.approved\\\"></i>\\n <i class=\\\"fa fa-times\\\" ng-if=\\\"!vm.order.approved\\\"></i>\\n </td>\\n <td style=\\\"text-align: center;\\\">\\n <i class=\\\"fa fa-check\\\" ng-if=\\\"vm.order.hasBeenPrinted\\\"></i>\\n <i class=\\\"fa fa-times\\\" ng-if=\\\"!vm.order.hasBeenPrinted\\\"></i>\\n </td>\\n <td style=\\\"text-align: center;\\\">\\n <i class=\\\"fa fa-flag text-danger\\\" ng-if=\\\"vm.order.isPriority\\\"></i>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n<div class=\\\"col-lg-12\\\" style=\\\"max-width: 1178px;\\\">\\n<label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\"> {{'order.note'| translate}}: </label>\\n<label>{{vm.order.orderNote}} </label>\\n</div>\\n<div class=\\\"col-lg-12\\\" style=\\\"max-width: 1178px;\\\">\\n<label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\"> {{'order.externalordernumber'| translate}}: </label>\\n<label>{{vm.order.orderNumberExternal}} </label>\\n</div>\\n\\n<div class=\\\"col-lg-12\\\">\\n <button ng-click=\\\"vm.goToDeliveryPlanning()\\\" ng-if=\\\"vm.isDeliveryPlanningEnabled()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.deliveryPlan' | translate}}\\n </button>\\n <button ng-click=\\\"vm.goToOrderDelivery()\\\" ng-if=\\\"vm.canDeliverIn()\\\" class=\\\"btn btn-sm btn-default\\\" ng-disabled=\\\"!vm.canAccess('order', 'update')\\\">\\n {{'order.deliver' | translate}}\\n </button>\\n <button ng-click=\\\"vm.goToModifyOrder()\\\" ng-if=\\\"vm.canEditOrder()\\\" class=\\\"btn btn-sm btn-default\\\" ng-disabled=\\\"!vm.canAccess('order', 'update')\\\">\\n {{'order.editorder' | translate}}\\n </button>\\n <button ng-click=\\\"vm.goToCopyOrder()\\\" ng-if=\\\"vm.canCopyOrder()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.copyorder' | translate}}\\n </button>\\n <button ng-click=\\\"vm.getOrderAsPdf()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.getaspdf' | translate}}\\n </button>\\n <button ng-click=\\\"vm.getOrderAsCsv()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.getascsv' | translate}}\\n </button>\\n <button ng-click=\\\"vm.showPrintPickingListDialog()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.print.pickingList' | translate}}\\n </button>\\n <button ng-click=\\\"vm.showLabelPrintingDialog()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.printlabel' | translate}}\\n </button>\\n <button ng-click=\\\"vm.deleteOrder()\\\" class=\\\"btn btn-sm btn-default\\\" ng-if=\\\"vm.canDeleteOrder()\\\" ng-disabled=\\\"!vm.canAccess('order', 'delete')\\\">\\n {{'order.deleteorder' | translate}}\\n </button>\\n <button ng-click=\\\"vm.downloadDeliveryDocument()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.print.deliverydocument' | translate}}\\n </button>\\n <button ng-click=\\\"vm.updateOrderNote()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'order.editnotes' | translate}}\\n </button>\\n</div>\\n\\n\\n<div class=\\\"col-lg-12\\\">\\n <table class=\\\"ca-flexgrid row-borders\\\">\\n <thead>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.alternativearticlenumber'\\\" \\n value-name=\\\"'article.alternativeArticleNumber'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.articlename'\\\" \\n value-name=\\\"'article.articleName'\\\"/>\\n </th>\\n <th ng-if=\\\"vm.hasClaim\\\">\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.purchasecost'\\\" \\n value-name=\\\"'averageOrderRowPurchaseCost'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.salesprice'\\\" \\n value-name=\\\"'averageArticleVariantSalesPrice'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.totalpurchasecost'\\\" \\n value-name=\\\"'summarizedPurchaseCost'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.totalsalesprice'\\\" \\n value-name=\\\"'summarizedSalesPrice'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'article.totalquantity'\\\" \\n value-name=\\\"'summarizedQuantity'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'order.deliveredquantity'\\\" \\n value-name=\\\"'summarizedDeliveredQuantity'\\\"/>\\n </th>\\n <th>\\n <ca-sort-table-data-header \\n order-by=\\\"vm.sortContentBy\\\" \\n reverse=\\\"vm.sortContentReverse\\\" \\n header=\\\"'order.deliveredcost'\\\" \\n value-name=\\\"'summarizedDeliveredCost'\\\"/>\\n </th>\\n </thead>\\n <tbody ng-repeat=\\\"orderArticle in vm.order.orderArticles | orderBy: vm.sortContentBy : vm.sortContentReverse\\\">\\n <tr ng-class=\\\"{'no-b-border': orderArticle.orderRows[0].comment}\\\">\\n <td>\\n <a\\n ng-click=\\\"vm.selectOrderArticle(orderArticle)\\\" class=\\\"ca-celllink\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'article.articlenumber' | translate}}: {{orderArticle.article.articleNumber}}\\\" tooltip-popup-delay=\\\"300\\\">\\n {{ orderArticle.article.alternativeArticleNumber && orderArticle.article.alternativeArticleNumber.length > 0 ? orderArticle.article.alternativeArticleNumber : orderArticle.article.articleNumber }}\\n </a>\\n </td>\\n <td>{{ orderArticle.article.articleName }}</td>\\n <td ng-if=\\\"vm.hasClaim\\\">{{ orderArticle.averageOrderRowPurchaseCost.toFixed(2) }}</td>\\n <td>{{ orderArticle.averageArticleVariantSalesPrice.toFixed(2) }}</td>\\n <td ng-if=\\\"vm.hasClaim\\\">{{ orderArticle.summarizedPurchaseCost.toFixed(2) }}</td>\\n <td>{{ orderArticle.summarizedSalesPrice.toFixed(2) }}</td>\\n <td>{{ vm.abs(orderArticle.summarizedQuantity) }}</td>\\n <td>{{ vm.abs(orderArticle.summarizedDeliveredQuantity) }}</td>\\n <td>{{ vm.abs(vm.calculateDeliveredCost(orderArticle)).toFixed(2) }}</td>\\n </tr>\\n <tr ng-if=\\\"orderArticle.orderRows[0].comment\\\">\\n <td colspan=\\\"100\\\" style=\\\"padding:0px; background-color:cornsilk; border-bottom-width: 1px;\\\">\\n <div style=\\\"height:14px; padding-left:6px; color: grey;font-size:x-small; vertical-align: top;\\\">\\n <u>{{ 'inventory.row' | translate }} {{ 'order.deliveryplanning.comment' | translate }}:</u> {{orderArticle.orderRows[0].comment}}\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\\n<ca-order-article-rows order-article=\\\"vm.selectedOrderArticle\\\" order=\\\"vm.order\\\"></ca-order-article-rows>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div style=\\\"max-width: 1178px; \\\">\\n <div class=\\\"col-lg-12 m-b-md\\\">\\n <form ng-submit=\\\"vm.searchTermChanged()\\\">\\n <span class=\\\"m-b-none m-t-none m-l-xxl\\\" style=\\\"font-size:smaller\\\">\\n <label class=\\\"i-checks m-t-xs m-r-md m-l-md\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.onlyOrderNumber\\\" />\\n <i></i>\\n {{'order.onlyOrderNumber' | translate}}\\n </label>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.onlyScan\\\" />\\n <i></i>\\n {{'order.scan' | translate}}\\n </label>\\n </span>\\n <div class=\\\"input-group m-b-xxs list-menu\\\" style=\\\"max-width: 1178px; margin-top:0px;\\\">\\n\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-default\\\">\\n <i class=\\\"fa fa-search text-md m-t-xxs\\\"></i>\\n </button>\\n </span>\\n <input id=\\\"scannerField\\\" type=\\\"text\\\" class=\\\"form-control input-sm b-b no-bg text-md\\\" ng-model=\\\"vm.scannerInput\\\" ng-show=\\\"vm.onlyScan\\\" placeholder=\\\"{{'order.scan' | translate}}...\\\">\\n <input type=\\\"text\\\" class=\\\"form-control input-sm b-b no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-hide=\\\"vm.onlyScan\\\"\\n ng-model-options=\\\"{debounce: 2800}\\\" ng-change=\\\"vm.searchTermChanged()\\\" placeholder=\\\"{{('common.search' | translate) + ' ' + (vm.onlyOrderNumber ? ('order.ordernumber' | translate): '') }}...\\\"\\n tooltip-placement=\\\"bottom-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.articleList.pressEnter' | translate}}\\\" tooltip-popup-delay=\\\"300\\\">\\n\\n <input type=\\\"submit\\\" style=\\\"position: absolute; left:-9999px; width: 1px; height: 1px;\\\"/>\\n </div>\\n <i class=\\\"m-l-xxl\\\" style=\\\"font-size:smaller\\\" ng-hide=\\\"vm.onlyScan\\\">\\n <u>\\n <a tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.elasticSearch.tooltip' | translate }}\\\" tooltip-popup-delay=\\\"300\\\"> \\n {{ 'article.search.tip' | translate }} \\n </a>\\n </u>\\n </i>\\n </form>\\n </div>\\n\\n <div class=\\\"col-lg-12 m-b-md\\\">\\n <div class=\\\"m-b-md\\\">\\n <span class=\\\"m-b-none m-t-none\\\" style=\\\"margin-left:20px;\\\" uib-tooltip=\\\"{{ 'order.alsoIncludesPartiallyDelivered' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"bottom-left\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showUndeliveredOnly\\\" />\\n <i></i>\\n {{'order.onlyundelivered' | translate}}\\n </label>\\n </span>\\n <span class=\\\"m-b-none m-t-none\\\" style=\\\"margin-left:20px;\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showUnprintedOnly\\\" />\\n <i></i>\\n {{'order.onlyunprinted' | translate}}\\n </label>\\n </span>\\n <span class=\\\"m-b-none m-t-none\\\" style=\\\"margin-left:20px;\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showUnapprovedOnly\\\" />\\n <i></i>\\n {{'order.onlyunapproved' | translate}}\\n </label>\\n </span>\\n <span class=\\\"m-b-none m-t-none\\\" style=\\\"margin-left:20px;\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.useMonthsBack\\\" />\\n <i></i>\\n {{'order.useMonthsBack' | translate}}\\n </label>\\n <span style=\\\"width:158px; margin-left:20px;padding-top:8px\\\" ng-show=\\\"vm.useMonthsBack\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.monthsBack\\\" style=\\\" display: inline-block; height:32px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"months in vm.monthsOptions\\\">\\n <span>{{months}} {{ 'purchaseorderanalysis.monthsBack' | translate }}</span>\\n </ui-select-choices>\\n </ui-select>\\n {{ 'purchaseorderanalysis.monthsBack' | translate }}\\n </span>\\n </span>\\n </div>\\n <div>\\n <button ng-click=\\\"vm.changeToStoreOrderSearch()\\\" class=\\\"btn m-r\\\" ng-class=\\\"vm.currentOrderListing === 'store' ? 'btn-primary' : 'btn-default'\\\"> {{'order.store' | translate}} </button>\\n <button ng-click=\\\"vm.changeToInternalOrderSearch()\\\" class=\\\"btn m-r\\\" ng-class=\\\"vm.currentOrderListing === 'internal' ? 'btn-primary' : 'btn-default'\\\"> {{'order.internal' | translate}} </button>\\n <button ng-click=\\\"vm.changeToAutoOrderNormalSearch()\\\" class=\\\"btn m-r\\\" ng-class=\\\"vm.currentOrderListing === 'auto' ? 'btn-primary' : 'btn-default'\\\"> {{'order.autoorder' | translate}} </button>\\n <button ng-click=\\\"vm.changeToAutoOrderInternalSearch()\\\" class=\\\"btn m-r\\\" ng-class=\\\"vm.currentOrderListing === 'autointernal' ? 'btn-primary' : 'btn-default'\\\"> {{'order.autoorderinternal' | translate}} </button>\\n <button ng-click=\\\"vm.changeToReturnOrderSearch()\\\" class=\\\"btn m-r\\\" ng-class=\\\"vm.currentOrderListing === 'return' ? 'btn-primary' : 'btn-default'\\\"> {{'order.returnorder' | translate}} </button>\\n <button ng-click=\\\"vm.changeToAllOrderSearch()\\\" class=\\\"btn m-r\\\" ng-class=\\\"vm.currentOrderListing === 'all' ? 'btn-primary' : 'btn-default'\\\"> {{'order.allorders' | translate}} </button>\\n </div> \\n </div>\\n</div>\\n\\n\\n<div class=\\\"col-lg-12\\\" style=\\\"max-width: 1178px;\\\">\\n <button ng-hide=\\\"vm.showSelection\\\" ng-click=\\\"vm.togglePrintMode('orderPrinting')\\\" class=\\\"btn btn-default\\\"> {{'order.print' | translate}} </button>\\n <button ng-show=\\\"vm.showSelection && vm.printModeType === 'orderPrinting'\\\" ng-click=\\\"vm.printSelectedOrders()\\\" class=\\\"btn btn-primary\\\"> {{'order.printdisplayed' | translate}} </button>\\n <button ng-show=\\\"vm.showSelection && vm.printModeType === 'orderPrinting'\\\" ng-click=\\\"vm.printSelectedOrdersCsv()\\\" class=\\\"btn btn-primary\\\"> {{'order.getascsv' | translate}} </button>\\n <button ng-show=\\\"vm.showSelection && vm.printModeType === 'orderPrinting'\\\" ng-click=\\\"vm.printSelectedOrderPickingLists()\\\" class=\\\"btn btn-primary\\\"> {{'order.printdisplayedwithbarcodes' | translate}} </button>\\n <button ng-hide=\\\"vm.showSelection\\\" ng-click=\\\"vm.togglePrintMode('orderDeletion')\\\" class=\\\"btn btn-default\\\"> {{'common.delete' | translate}} </button>\\n <button ng-show=\\\"vm.showSelection && vm.printModeType === 'orderDeletion'\\\" ng-disabled=\\\"!vm.isAllowedToDeleteSelected()\\\" ng-click=\\\"vm.deleteSelectedOrders()\\\" class=\\\"btn btn-primary\\\"> {{'common.delete' | translate}} </button>\\n <button ng-show=\\\"vm.showSelection\\\" ng-click=\\\"vm.togglePrintMode()\\\" class=\\\"btn btn-default\\\"> {{'common.cancel' | translate}} </button>\\n <span style=\\\"padding: 10px 5px;\\\">{{ 'common.totalResults' | translate }}: {{ vm.totalItems }}</span>\\n <div style=\\\"height:5.5px; margin-left: 17.5%; margin-right: 17.5%;\\\" uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.limit\\\" max-size=\\\"10\\\" ng-change=\\\"vm.searchTermChanged()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n</div>\\n\\n<wj-flex-grid items-source=\\\"vm.orders\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"true\\\" class=\\\"orders-flex-grid orders-flex-grid-fixed-width\\\" id=\\\"orderFlexGrid\\\"\\n initialized=\\\"vm.gridInitialization(s)\\\" selection-changed=\\\"vm.gridSelectionChanged(e)\\\">\\n <wj-flex-grid-column header=\\\"\\\" width=\\\"*\\\" align=\\\"center\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"$item.isSelected\\\">\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.ordernumber' | translate}}\\\" binding=\\\"orderNumber\\\" width=\\\"*\\\" align=\\\"left\\\">\\n <a ng-click=\\\"vm.transitionToState($item.id, $item.orderNumber)\\\" class=\\\"ca-celllink\\\">\\n {{$item.orderNumber}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.externalordernumber' | translate}}\\\" binding=\\\"orderNumberExternal\\\" width=\\\"*\\\" align=\\\"left\\\">\\n <a ng-click=\\\"vm.transitionToState($item.id, $item.orderNumber)\\\" class=\\\"ca-celllink\\\">\\n {{$item.orderNumberExternal}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.ordertype' | translate}}\\\" binding=\\\"orderType.orderTypeName\\\" width=\\\"2*\\\">\\n <span>\\n {{$item.orderType.orderTypeName | translate}}\\n </span>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.collection' | translate}}\\\" binding=\\\"collection.collectionDescription\\\" width=\\\"2*\\\"></wj-flex-grid-column>\\n\\n <wj-flex-grid-column ng-if=\\\"vm.shouldShowFromLocation()\\\" header=\\\"{{'order.fromlocation' | translate}}\\\" binding=\\\"fromLocation.locationName\\\" width=\\\"2*\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.shouldShowSupplier()\\\" header=\\\"{{'order.companyname' | translate}}\\\" binding=\\\"company.companyName\\\" width=\\\"2*\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.shouldShowDestination()\\\" header=\\\"{{'order.destination' | translate}}\\\" binding=\\\"destination.locationName\\\" width=\\\"2*\\\"> </wj-flex-grid-column>\\n\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'order.totalpurchasecost' | translate}}\\\" binding=\\\"summarizedPurchaseCost\\\" width=\\\"2*\\\">\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.totalsalesprice' | translate}}\\\" binding=\\\"summarizedSalesPrice\\\" width=\\\"2*\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.totalquantity' | translate}}\\\" binding=\\\"summarizedQuantity\\\" width=\\\"*\\\" align=\\\"right\\\">\\n {{$item.summarizedQuantity}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.deliveredquantity' | translate}}\\\" binding=\\\"summarizedDeliveredQuantity\\\" width=\\\"*\\\" align=\\\"right\\\">\\n {{vm.absolute($item.summarizedDeliveredQuantity)}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.planneddeliverydate' | translate}}\\\" binding=\\\"plannedDeliveryDate\\\" width=\\\"2*\\\"> {{$item.plannedDeliveryDate.toString().substring(0,10)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.status' | translate}}\\\" binding=\\\"\\\" width=\\\"2*\\\" id=\\\"{{$item.id}}-statusCell\\\" align=\\\"center\\\">\\n <span>\\n {{$item.statusName | translate}}\\n </span>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.approved' | translate}}\\\" align=\\\"Center\\\" width=\\\"*\\\">\\n <i class=\\\"fa fa-check\\\" ng-if=\\\"$item.approved\\\"></i>\\n <i class=\\\"fa fa-times\\\" ng-if=\\\"!$item.approved\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.hasbeenprinted' | translate}}\\\" align=\\\"Center\\\" width=\\\"*\\\">\\n <i class=\\\"fa fa-check\\\" ng-if=\\\"$item.hasBeenPrinted\\\"></i>\\n <i class=\\\"fa fa-times\\\" ng-if=\\\"!$item.hasBeenPrinted\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.ispriority' | translate}}\\\" align=\\\"Center\\\" width=\\\"*\\\">\\n <i class=\\\"fa fa-flag text-danger\\\" ng-if=\\\"$item.isPriority\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.shouldShowInventoryReasonHeader()\\\" header=\\\"{{'order.inventoryReason' | translate}}\\\" binding=\\\"orderNote\\\" width=\\\"*\\\" align=\\\"left\\\">\\n <span ng-if=\\\"$item.orderType.orderSystemType === 'inventory'\\\">\\n {{$item.orderNote}}\\n </span>\\n </wj-flex-grid-column>\\n</wj-flex-grid>\\n\\n<!-- Context menu to show when right clicking the order grid. -->\\n<nav id=\\\"orderContextMenu\\\" style=\\\"position:fixed; background-color:#edf1f2;\\n visibility:hidden\\\" control=\\\"contextMenu\\\" class=\\\"navi clearfix\\\">\\n <ul class=\\\"nav\\\">\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuEdit()\\\" ng-show=\\\"vm.contextMenuVisibility.edit\\\">\\n <span>{{'common.edit' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuDeliver()\\\" ng-show=\\\"vm.contextMenuVisibility.deliver\\\">\\n <span>{{'order.deliver' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuCopy()\\\" ng-show=\\\"vm.contextMenuVisibility.copy\\\">\\n <span>{{'order.copyorder' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuGetAsPdf()\\\" ng-show=\\\"vm.contextMenuVisibility.getAsPdf\\\">\\n <span>{{'order.getaspdf' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuGetAsCsv()\\\" ng-show=\\\"vm.contextMenuVisibility.getAsCsv\\\">\\n <span>{{'order.getascsv' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuPrintLabel()\\\" ng-show=\\\"vm.contextMenuVisibility.printLabel\\\">\\n <span>{{'order.printlabel' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuDelete()\\\" ng-show=\\\"vm.contextMenuVisibility.delete\\\">\\n <span>{{'common.delete' | translate}}</span>\\n </a>\\n </li>\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuUndo()\\\" ng-show=\\\"vm.contextMenuVisibility.undo\\\">\\n <span>{{'common.undo' | translate}}</span>\\n </a>\\n </li>\\n </ul>\\n</nav>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <!-- Panel for showing order search -->\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('order.new')\\\" ng-disabled=\\\"!vm.canAccess('order', 'create')\\\">{{'common.new' | translate}}</button></span>\\n <span ng-click=\\\"vm.toggleSearchFields()\\\" class=\\\"hidden-folded pull-left text-muted ng-scope\\\" ng-show=\\\"vm.order.id\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showSearchFields\\\"> {{'customerorder.showSearchFields' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showSearchFields\\\"> {{'customerorder.hideSearchFields' | translate}}</span>\\n </span>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\" ng-hide=\\\"vm.order.id\\\"> </span>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\" style=\\\"clear:both; height:1px\\\"> </div>\\n \\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showSearchFields\\\">\\n <ca-order-search-result\\n orders=\\\"vm.orders\\\"\\n search-term=\\\"vm.searchTerm\\\"\\n current-page=\\\"vm.currentPage\\\"\\n total-items=\\\"vm.totalItems\\\"\\n order-types=\\\"vm.orderTypes\\\"\\n show-undelivered-only=\\\"vm.showUndeliveredOnly\\\"\\n show-unprinted-only=\\\"vm.showUnprintedOnly\\\"\\n show-unapproved-only=\\\"vm.showUnapprovedOnly\\\"\\n limit=\\\"vm.limit\\\"\\n on-search-term-changed=\\\"vm.searchTermChanged(searchTerms)\\\"\\n on-order-selected=\\\"vm.selectOrder(orderId)\\\"\\n use-scanner-navigation=\\\"vm.useScannerNavigation\\\"></ca-order-search-result>\\n </div>\\n </div>\\n </div>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\" style=\\\"clear:both; height:1px;\\\"> </div>\\n \\n <!-- Panel for showing order contents -->\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div ng-if=\\\"vm.order && vm.order.id > 0\\\" class=\\\"col-lg-12\\\" id=\\\"orderContentScrollDestination\\\">\\n <ca-order-content order=\\\"vm.order\\\" links=\\\"vm.links\\\"></ca-order-content>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\"> \\n <wj-flex-grid items-source=\\\"vm.articles\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" initialized=\\\"vm.captureArticlesGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'article.alternativearticlenumber' | translate}}\\\" binding=\\\"alternativeArticleNumber\\\" is-read-only=\\\"true\\\">\\n <a ng-click=\\\"vm.selectArticle($item)\\\" class=\\\"ca-celllink\\\" ng-if=\\\"!vm.disabled\\\">\\n {{$item.alternativeArticleNumber}}\\n </a>\\n <div ng-if=\\\"vm.disabled\\\">\\n {{$item.alternativeArticleNumber}}\\n </div>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.articlename' | translate}}\\\" binding=\\\"articleName\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.purchasecost' | translate}}\\\" binding=\\\"purchaseCost\\\" width=\\\"*\\\" is-read-only=\\\"true\\\" align=\\\"Right\\\"> {{$item.purchaseCost}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.salesprice' | translate}}\\\" binding=\\\"salesPrice\\\" width=\\\"*\\\" is-read-only=\\\"true\\\" align=\\\"Right\\\"> {{$item.salesPrice}} </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.totalpurchasecost' | translate}}\\\" binding=\\\"summarizedPurchaseCost\\\" width=\\\"*\\\" is-read-only=\\\"true\\\" align=\\\"Right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.totalsalesprice' | translate}}\\\" binding=\\\"summarizedSalesPrice\\\" width=\\\"*\\\" is-read-only=\\\"true\\\" align=\\\"Right\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.totalquantity' | translate}}\\\" binding=\\\"summarizedQuantity\\\" width=\\\"*\\\" is-read-only=\\\"true\\\" align=\\\"Right\\\"> </wj-flex-grid-column>\\n </wj-flex-grid>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<label class=\\\"control-label\\\"> {{'common.budget' | translate}} ({{vm.purchaseOrder.articleCollection.collectionDescription}}): </label>\\n<wj-flex-grid\\n auto-generate-columns=\\\"false\\\"\\n selectionMode=\\\"Cell\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"true\\\"\\n class=\\\"orders-flex-grid order-flex-grid-multi\\\"\\n initialized=\\\"vm.captureOtbGrid(s)\\\">\\n <wj-flex-grid-column header=\\\" \\\" binding=\\\"location\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> {{$item.location.locationNumber}} {{$item.location.locationName}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'purchaseorder.orderedquantity' | translate}}\\\" binding=\\\"totalOrderedQuantity\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'purchaseorder.orderedcost' | translate}}\\\" binding=\\\"totalOrderedCost\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'purchaseorder.quantitythis' | translate}}\\\" binding=\\\"quantityThisOrder\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'purchaseorder.costthis' | translate}}\\\" binding=\\\"costPriceThisOrder\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'purchaseorder.totalquantity' | translate}}\\\" binding=\\\"totalQuantity\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'purchaseorder.totalcost' | translate}}\\\" binding=\\\"totalCost\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'budget.cost' | translate}}\\\" binding=\\\"budgetCost\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'budget.opentobuy' | translate}}\\\" binding=\\\"openToBuyCost\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'budget.opentobuy' | translate}}%\\\" binding=\\\"openToBuyPercentage\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">{{$item.openToBuyPercentage}}%</wj-flex-grid-column>\\n</wj-flex-grid>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid\\n auto-generate-columns=\\\"false\\\"\\n selectionMode=\\\"Cell\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"false\\\"\\n class=\\\"orders-flex-grid order-flex-grid-multi\\\"\\n initialized=\\\"vm.captureDistributionGrid(s)\\\"\\n cell-edit-ended=\\\"vm.cellEditEnded();\\\">\\n </wj-flex-grid>\\n </div>\\n</div>\\n\\n<div class=\\\"form-group row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"col-sm-2\\\">\\n <input type=\\\"number\\\"\\n class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n placeholder=\\\"{{'common.totalquantity' | translate}}\\\"\\n ng-model=\\\"vm.totalQuantityToDistribute\\\"></input>\\n </div>\\n <div class=\\\"col-sm-2\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.distributeBudgetQuantities();vm.recalculateTotals()\\\">{{'common.allocate' | translate}}</button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.getAndApplyBudget()\\\"> {{'purchaseorder.fetchbudget' | translate}} </button>\\n </div>\\n </div>\\n</div>\\n\\n<div class=\\\"form-group row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"col-sm-2\\\">\\n <ui-select class=\\\"editable-input\\\" ng-model=\\\"vm.selectedPack\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"{{'purchaseorder.pack' | translate}}\\\">\\n <span>{{$select.selected.packName}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"pack in vm.packs track by pack.id\\\">\\n <span>{{pack.packName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-sm-4 bg-light b-l b-r b-b b-t\\\" ng-click=\\\"vm.toggleExtraOptionsVisibility()\\\" ng-hide=\\\"vm.showExtraOptions\\\">\\n <a clas=\\\"auto\\\" href=\\\"\\\">\\n <div class=\\\"col-lg-12\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\"> </i> {{'common.extraoptions' | translate}}\\n </div>\\n </a>\\n</div>\\n<div class=\\\"col-sm-4 bg-light b-l b-r b-b b-t\\\" ng-show=\\\"vm.showExtraOptions\\\">\\n <a clas=\\\"auto\\\" href=\\\"\\\">\\n <div class=\\\"col-lg-12 b-b\\\" ng-click=\\\"vm.toggleExtraOptionsVisibility()\\\">\\n <i class=\\\"fa fa-fw fa-angle-down\\\"> </i> {{'common.extraoptions' | translate}}\\n </div>\\n </a>\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"col-lg-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.purchaseOrder.orderChange\\\" />\\n <i></i>\\n {{'purchaseorder.orderchange' | translate}}\\n </label>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-sm-12\\\">\\n <button ng-class=\\\"{'btn': true, 'btn-default': !vm.stockLogisticsHasBeenCreated, 'btn-success': vm.stockLogisticsHasBeenCreated}\\\" ng-click=\\\"vm.createStockLogistics()\\\">\\n {{'purchaseorder.createorderingpoints' | translate}}\\n </button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"i-checks m-t-xs\\\" ng-click=\\\"vm.changeToPercentageDistribution()\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.distributionMethods.percentage\\\" />\\n <i></i>\\n {{'purchaseorder.percentage' | translate}}\\n </label>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"i-checks m-t-xs\\\" ng-click=\\\"vm.changeToPackDistribution()\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.distributionMethods.pack\\\" />\\n <i></i>\\n {{'purchaseorder.pack' | translate}}\\n </label>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<wj-flex-grid\\n auto-generate-columns=\\\"false\\\"\\n selectionMode=\\\"Cell\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"true\\\"\\n class=\\\"orders-flex-grid order-flex-grid-multi\\\"\\n initialized=\\\"vm.captureColorChoiceAndTotalsGrid(s)\\\"\\n items-source=\\\"vm.colorsAndTotalsRows\\\">\\n <wj-flex-grid-column header=\\\"{{'article.variantdetail1' | translate}}\\\" binding=\\\"colorName\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <a ng-click=\\\"vm.selectColor($item)\\\" class=\\\"ca-celllink\\\" ng-if=\\\"!vm.disabled\\\">\\n {{$item.colorName}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.totalquantity' | translate}}\\\" binding=\\\"totalQuantity\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column ng-if=\\\"vm.hasClaim\\\" header=\\\"{{'article.totalcostprice' | translate}}\\\" binding=\\\"totalCostPrice\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.totalsalesprice' | translate}}\\\" binding=\\\"totalSalesPrice\\\" width=\\\"*\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n</wj-flex-grid>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n {{'order.purchaseorder' | translate}} <span ng-hide=\\\"vm.purchaseOrder.orderNumber === '0'\\\"> - {{ vm.purchaseOrder.orderNumber }}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n\\n <div class=\\\"form-group row\\\">\\n\\n <label class=\\\"col-sm-3 control-label\\\">{{'order.planneddeliverydate' | translate}}:</label>\\n <div class=\\\"col-lg-3\\\">\\n <wj-input-date\\n value=\\\"vm.purchaseOrder.plannedDeliveryDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-3 control-label\\\"> {{'order.company' | translate}}: </label>\\n <div class=\\\"col-lg-3\\\">\\n <ui-select ng-model=\\\"vm.purchaseOrder.company\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.purchaseOrder.orders[0].orderArticles.length > 0\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.companyName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"company in vm.companies | filter:{'companyName': $select.search}\\\">\\n <span>{{company.companyName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-lg-6\\\"> </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-3 control-label\\\">{{'article.collection' | translate}}:</label>\\n <div class=\\\"col-lg-3\\\">\\n <ui-select ng-model=\\\"vm.purchaseOrder.articleCollection\\\" theme=\\\"bootstrap\\\" class=\\\"enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.collectionDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"collection in vm.collections | filter:{'collectionDescription': $select.search}\\\">\\n <span>{{collection.collectionDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-lg-6\\\"> </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-3 control-label\\\">{{'order.note' | translate}}:</label>\\n <div class=\\\"col-lg-3\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'order.note' | translate}}\\\"\\n ng-model=\\\"vm.purchaseOrder.orderNote\\\"/>\\n </div>\\n </div>\\n <div class=\\\"col-lg-6\\\"> </div>\\n\\n <div class=\\\"col-lg-12 b-b\\\"> </div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.purchaseOrder.company.id && (!vm.purchaseOrder || vm.purchaseOrder.id == 0)\\\">\\n <div class=\\\"col-sm-1\\\"> </div>\\n <label class=\\\"col-sm-1 control-label\\\">{{'article.articlenumber' | translate}}:</label>\\n <div class=\\\"col-sm-4\\\">\\n <ca-article-search-multi-select company=\\\"vm.purchaseOrder.company\\\" articles-to-exclude=\\\"vm.articleIds\\\" select-same-twice-allowed=\\\"false\\\" on-articles-retrieved=\\\"vm.recieveArticles(articles)\\\" page-size=\\\"20\\\" />\\n </div>\\n <div class=\\\"col-sm-3\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.article.id\\\">\\n <div class=\\\"col-lg-2\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.save()\\\"> {{'common.save' | translate}} {{'order.purchaseorder' | translate}}</button>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <ca-purchase-order-articles-summary-grid purchase-order=\\\"vm.purchaseOrder\\\" article-ids=\\\"vm.articleIds\\\" order-change-count=\\\"vm.orderChangeCount\\\" disabled=\\\"false\\\" on-article-selected=\\\"vm.selectArticle(article)\\\">\\n </div>\\n <div class=\\\"col-sm-12\\\"> </div>\\n\\n <label class=\\\"col-sm-12\\\" ng-if=\\\"vm.article.id\\\">\\n <div class=\\\"col-sm-12\\\">\\n <label class=\\\"h3\\\"> {{vm.article.alternativeArticleNumber}} {{vm.article.articleName}} </label>\\n </div>\\n </label>\\n\\n <div class=\\\"col-sm-12\\\"> \\n <!-- Empty Space (Left) -->\\n <div class=\\\"col-lg-8\\\">\\n \\n </div>\\n <ca-purchase-order-extra-options selected-article=\\\"vm.article\\\" disabled=\\\"false\\\" order-change-count=\\\"vm.orderChangeCount\\\" purchase-order=\\\"vm.purchaseOrder\\\"> </ca-purchase-order-extra-options>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-if=\\\"vm.article.id\\\"> </div>\\n <div class=\\\"col-lg-3\\\">\\n <label class=\\\"control-label\\\"> {{'article.variantdetail1' | translate}}: </label>\\n <ca-purchase-order-single-article-summary-grid selected-article=\\\"vm.article\\\" order-change-count=\\\"vm.orderChangeCount\\\" purchase-order=\\\"vm.purchaseOrder\\\" disabled=\\\"false\\\" on-color-selected=\\\"vm.selectColor(colorVariant)\\\" />\\n </div>\\n\\n <div class=\\\"col-lg-9\\\">\\n <ca-open-to-buy-grid purchase-order=\\\"vm.purchaseOrder\\\" disabled=\\\"false\\\" order-change-count=\\\"vm.orderChangeCount\\\"> </ca-open-to-buy-grid>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <ca-purchase-order-distribution-grid \\n selected-color-variant=\\\"vm.selectedColorVariant\\\"\\n selected-article=\\\"vm.article\\\"\\n purchase-order=\\\"vm.purchaseOrder\\\"\\n disabled=\\\"false\\\"\\n order-change-count=\\\"vm.orderChangeCount\\\"\\n on-purchase-order-changed=\\\"vm.purchaseOrderChanged(purchaseOrder)\\\"> \\n </ca-purchase-order-distribution-grid>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .fixedMinWidth {\\n min-width: 200px;\\n }\\n .weekTable td {\\n text-align: center;\\n }\\n .greyBackground:hover {\\n background-color:#f3f3f3;\\n }\\n .greyBackground td:hover {\\n background-color: #eaeaea;\\n }\\n .columnHover:hover {\\n background-color: #eaeaea;\\n }\\n\\n .alignRight {\\n text-align: right;\\n padding-right:3px;\\n }\\n .alignRight input {\\n text-align: right;\\n }\\n\\n\\n .smallInputText {\\n max-width: 50px;\\n }\\n .boldRow {\\n background-color: #f9f9f9;\\n }\\n .boldRow .poaTableCell, .boldRow .poaTableHeaderCell {\\n font-weight: bold;\\n }\\n .afterChangedAverage {\\n background-color: #d2f5d2;\\n }\\n\\n .myHeader {\\n position: fixed;\\n width:100%;\\n opacity: 1;\\n z-index: 1\\n }\\n .poaTable {\\n display: table;\\n width:100%;\\n }\\n .poaHeader {\\n display: table-header-group;\\n }\\n .poaTableRow {\\n display: table-row;\\n }\\n .poaTableHeaderCell {\\n display: table-cell;\\n position:sticky;\\n top:25px;\\n background:#f9f9f9;\\n padding-left:3px;\\n padding: 3px;\\n border-bottom:1px solid #d9d9d9;\\n }\\n .poaTableBody {\\n display: table-row-group\\n }\\n .poaTableCell {\\n display:table-cell;\\n padding-left:3px;\\n padding: 3px;\\n }\\n .poaTableCell:hover::after {\\n background-color: inherit;\\n }\\n .filterDiv {\\n width:75%;\\n top:200px;\\n left: 20%;\\n position: fixed;\\n z-index: 1000;\\n background-color:#f0f3f4;\\n max-width:500px;\\n border: 1px solid #ccc !important;\\n padding: 15px;\\n border-radius: 16px;\\n }\\n</style>\\n\\n<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div style=\\\"padding: 5px; position: sticky; top:0px;\\\" class=\\\"bg-light\\\">\\n <span ng-click=\\\"vm.showFilterDialog()\\\" style=\\\"height: 100%; float:left;\\\">\\n <i class=\\\"fa fa-cog fa-2\\\" aria-hidden=\\\"true\\\" style=\\\"height: 100%;\\\"></i>\\n </span>\\n <span style=\\\"margin-left: 30px;\\\"><strong>{{ 'brand.company' | translate }}:</strong> {{ vm.selectedSupplier.companyName }}</span>\\n <span style=\\\"margin-left: 30px;\\\"><strong>{{ 'article.collection' | translate }}:</strong> {{ vm.selectedArticleCollection.collectionDescription }}</span>\\n <span style=\\\"margin-left: 30px;\\\">\\n <strong>{{ 'common.page' | translate }}:</strong>\\n <span ng-click=\\\"vm.goToFirst()\\\" uib-tooltip=\\\"{{ 'common.page' | translate }}: {{ vm.getPageNumber('first') }}\\\" tooltip-append-to-body=\\\"true\\\" toolip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-step-backward\\\" aria-hidden=\\\"true\\\" style=\\\"height: 100%;\\\"></i>\\n </span>\\n <span ng-click=\\\"vm.goToPrevious()\\\" uib-tooltip=\\\"{{ 'common.page' | translate }}: {{ vm.getPageNumber('previous') }}\\\" tooltip-append-to-body=\\\"true\\\" toolip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-arrow-left\\\" aria-hidden=\\\"true\\\" style=\\\"height: 100%;\\\"></i>\\n </span>\\n <span style=\\\"padding:5px;\\\"><strong>{{ vm.currentPage }}</strong></span>\\n <span ng-click=\\\"vm.goToNext()\\\" uib-tooltip=\\\"{{ 'common.page' | translate }}: {{ vm.getPageNumber('next') }}\\\" tooltip-append-to-body=\\\"true\\\" toolip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-arrow-right\\\" aria-hidden=\\\"true\\\" style=\\\"height: 100%;\\\"></i>\\n </span>\\n <span ng-click=\\\"vm.goToLast()\\\" uib-tooltip=\\\"{{ 'common.page' | translate }}: {{ vm.getPageNumber('last') }}\\\" tooltip-append-to-body=\\\"true\\\" toolip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-step-forward\\\" aria-hidden=\\\"true\\\" style=\\\"height: 100%;\\\"></i>\\n </span>\\n </span>\\n <button ng-click=\\\"vm.createOrder()\\\" ng-disabled=\\\"!vm.canCreateOrder()\\\" class=\\\"btn btn-sm btn-primary\\\" style=\\\"float:right;\\\" type=\\\"button\\\">{{ 'purchaseorderanalysis.createOrder' | translate }}</button> \\n <div style=\\\"clear: both; height: 1px;\\\"> </div>\\n </div>\\n\\n <div class=\\\"panel panel-default\\\">\\n <div ng-show=\\\"vm.purchaseOrderAnalysisArticles === undefined || vm.purchaseOrderAnalysisArticlesLength === 0\\\" style=\\\"text-align: center;\\\">\\n {{ 'purchaseorderanalysis.noRows' | translate }}\\n </div>\\n <div class=\\\"poaTable\\\" ng-show=\\\"vm.purchaseOrderAnalysisArticlesLength > 0\\\">\\n <div class=\\\"poaHeader\\\">\\n <div class=\\\"poaTableRow greyBackground boldRow\\\">\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"!vm.showProduct\\\">{{ 'article.article' | translate }}</div>\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"!vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"!vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"vm.showProduct\\\">+ / -</div>\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"vm.showProduct\\\">{{ 'article.article' | translate }}</div>\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableHeaderCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableHeaderCell\\\"> </div>\\n <div class=\\\"poaTableHeaderCell\\\">{{ 'article.maingroup' | translate }}</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.quantityToOrder' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.quantityToOrderAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.currentWarehouseStockQuantity' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.currentWarehouseStockQuantityAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.currentStoreStockQuantity' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.currentStoreStockQuantityAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\">{{ 'purchaseorderanalysis.orderedQuantity' | translate }}</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.weeksLeftInStock' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.weeksLeftInStockAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.weeksLeftInStockAfterOrder' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.weeksLeftInStockAfterOrderAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.averageSalesPerWeek' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.averageSalesPerWeekAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"1 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 1</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"2 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 2</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"3 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 3</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"4 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 4</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"5 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 5</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"6 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 6</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"7 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 7</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"8 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 8</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"9 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 9</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"10 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 10</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"11 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 11</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"12 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.week' | translate }} 12</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" style=\\\"text-transform: capitalize;\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.monthsLeftInStock' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.monthsLeftInStockAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" style=\\\"text-transform: capitalize;\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.monthsLeftInStockAfterOrder' | translate }} ({{ 'purchaseorderanalysis.currentWarehouseStockQuantityAbbr' | translate }} + {{ 'purchaseorderanalysis.orderedQuantity' | translate }} + {{ 'purchaseorderanalysis.quantityToOrderAbbr' | translate }} / {{ 'purchaseorderanalysis.averageSalesPerWeekAbbr' | translate }})\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.monthsLeftInStockAfterOrderAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" style=\\\"text-transform: capitalize;\\\">\\n <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'purchaseorderanalysis.averageSalesPerMonth' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'purchaseorderanalysis.averageSalesPerMonthAbbr' | translate }}</span>\\n </div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" style=\\\"text-transform: capitalize;\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"1 {{ 'purchaseorderanalysis.monthsBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.month' | translate }} 1</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" style=\\\"text-transform: capitalize;\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"2 {{ 'purchaseorderanalysis.monthsBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.month' | translate }} 2</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" style=\\\"text-transform: capitalize;\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"3 {{ 'purchaseorderanalysis.monthsBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ 'common.month' | translate }} 3</div>\\n <div class=\\\"poaTableHeaderCell alignRight\\\"> </div>\\n </div>\\n </div>\\n <div class=\\\"poaTableBody\\\" ng-repeat=\\\"article in vm.purchaseOrderAnalysisArticles\\\">\\n <div class=\\\"poaTableRow greyBackground boldRow\\\" ng-show=\\\"vm.showProduct\\\">\\n <div class=\\\"poaTableCell\\\" ng-click=\\\"vm.toggleArticleRows(article)\\\" class=\\\"hidden-folded text-muted\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!article.showRows\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!article.showRows\\\"> </span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"article.showRows\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"article.showRows\\\"> </span>\\n </div>\\n <div class=\\\"poaTableCell\\\" style=\\\"font-weight: bold;\\\">{{ article.alternativeProductNumber }}</div>\\n <div class=\\\"poaTableCell\\\">{{ article.productName }}</div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableCell\\\"> </div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"vm.showProduct\\\">{{ article.mainGroupCode + ' ' + article.mainGroupDescription }}</div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"!vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableCell alignRight\\\" style=\\\"padding-right:20px;\\\">{{ vm.sumQuantityToOrder(article) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\">{{ vm.sumWarehouseStock(article) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\">{{ vm.sumStoreStock(article) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\">{{ vm.sumOrderedQuantity(article) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ (vm.sumWeeksLeftInStock(article)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ (vm.sumWeeksLeftInStockAfterOrder(article)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 1) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 2) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 3) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 4) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 5) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 6) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 7) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 8) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 9) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 10) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 11) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ vm.sumRowsWeek(article, 12) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ (vm.sumMonthsLeftInStock(article)).toFixed(2) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ (vm.sumMonthsLeftInStockAfterOrder(article)).toFixed(2) }} </div>\\n <div class=\\\"poaTableCell\\\"> </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ vm.sumRowsMonth(article, 1) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ vm.sumRowsMonth(article, 2) }} </div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ vm.sumRowsMonth(article, 3) }} </div>\\n <div class=\\\"poaTableCell\\\"> </div>\\n </div>\\n <div class=\\\"poaTableRow greyBackground\\\" ng-repeat=\\\"row in article.articleVariants\\\" ng-show=\\\"article.showRows && row.showRow\\\">\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableCell\\\" style=\\\"font-weight: bold; padding-left:10px;\\\" ng-if=\\\"!vm.showProduct\\\">{{ article.alternativeProductNumber }}</div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"!vm.showProduct\\\">{{ article.productName }}</div>\\n <div class=\\\"poaTableCell\\\">\\n <span ng-if=\\\"(row.variantDetail1.length + 3) <= 20\\\">\\n {{ row.variantDetail1 }}\\n </span>\\n <span ng-if=\\\"(row.variantDetail1.length + 3) > 20\\\" uib-tooltip=\\\"{{ row.variantDetail1 }}\\\" tooltip-placement=\\\"top-left\\\">\\n {{ (row.variantDetail1).substr(0, 20) + '...' }}\\n </span>\\n </div>\\n <div class=\\\"poaTableCell\\\">\\n <span ng-if=\\\"(row.variantDetail2.length + 3) <= 20\\\">\\n {{ row.variantDetail2 }}\\n </span>\\n <span ng-if=\\\"(row.variantDetail2.length + 3) > 20\\\" uib-tooltip=\\\"{{ row.variantDetail2 }}\\\" tooltip-placement=\\\"top-left\\\">\\n {{ (row.variantDetail2).substr(0, 20) + '...' }}\\n </span>\\n </div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"!vm.showProduct\\\">{{ article.mainGroupCode + ' ' + article.mainGroupDescription }}</div>\\n <div class=\\\"poaTableCell\\\" ng-if=\\\"vm.showProduct\\\"> </div>\\n <div class=\\\"poaTableCell alignRight\\\"><input ng-model=\\\"row.quantityToOrder\\\" type=\\\"number\\\" min=\\\"0\\\" class=\\\"smallInputText\\\"></div>\\n <div class=\\\"poaTableCell alignRight\\\">{{ row.currentWarehouseStockQuantity }}</div>\\n <div class=\\\"poaTableCell alignRight\\\">{{ row.currentStoreStockQuantity }}</div>\\n <div class=\\\"poaTableCell alignRight\\\">{{ row.orderedQuantity }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ (vm.sumRowWeeksLeftInStock(row)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" ng-class=\\\"{ afterChangedAverage: vm.showChangedWeekAverage(row) }\\\">{{ (vm.weeksLeftInStockAfterOrder(row)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\">{{ (vm.averageSalesPerWeek(row)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"2 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week1 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"2 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week2 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"3 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week3 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"4 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week4 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"5 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week5 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"6 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week6 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"7 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week7 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"8 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week8 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"9 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week9 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"10 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week10 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"11 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week11 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"12 {{ 'purchaseorderanalysis.weeksBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ row.week12 }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ (vm.sumRowMonthsLeftInStock(row)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" ng-class=\\\"{ afterChangedAverage: vm.showChangedMonthAverage(row) }\\\">{{ (vm.monthsLeftInStockAfterOrder(row)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\">{{ (vm.averageSalesPerMonth(row)).toFixed(2) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"1 {{ 'purchaseorderanalysis.monthsBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ vm.calculateMonth(1, row) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"2 {{ 'purchaseorderanalysis.monthsBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ vm.calculateMonth(2, row) }}</div>\\n <div class=\\\"poaTableCell alignRight\\\" ng-show=\\\"!vm.showWeeks\\\" tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"3 {{ 'purchaseorderanalysis.monthsBack' | translate }}\\\" tooltip-popup-delay=\\\"300\\\">{{ vm.calculateMonth(3, row) }}</div>\\n <div class=\\\"poaTableCell\\\"> </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('order.purchaseordernew')\\\">{{'common.new' | translate}}</button></span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.onlyOrderChangeOrders\\\" />\\n <i></i>\\n {{'purchaseorder.showonlyorderchangeorders' | translate}}\\n </label>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"wrapper b-t text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadOrders()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n\\n <wj-flex-grid items-source=\\\"vm.purchaseOrders\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" is-read-only=\\\"true\\\" class=\\\"orders-flex-grid orders-flex-grid-fixed-width\\\" id=\\\"orderFlexGrid\\\"\\n initialized=\\\"vm.gridInitialization(s)\\\" selection-changed=\\\"vm.gridSelectionChanged(e)\\\">\\n <wj-flex-grid-column header=\\\"{{'order.ordernumber' | translate}}\\\" binding=\\\"orderNumber\\\" width=\\\"*\\\">\\n <a ng-click=\\\"vm.transitionToState($item.id)\\\" class=\\\"ca-celllink\\\">\\n {{$item.orderNumber}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.company' | translate}}\\\" binding=\\\"article.articleName\\\" width=\\\"2*\\\">{{$item.company.companyName}}</wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.planneddeliverydate' | translate}}\\\" binding=\\\"plannedDeliveryDate\\\" width=\\\"2*\\\"> {{$item.plannedDeliveryDate.toString().substring(0,10)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.status' | translate}}\\\" binding=\\\"orderStatus.orderStatusName\\\" width=\\\"2*\\\" id=\\\"{{$item.id}}-statusCell\\\" align=\\\"center\\\">\\n <span>\\n {{$item.orderStatus.orderStatusName}}\\n </span>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Panel for showing orders goes here -->\\n <!-- <div ui-view=\\\"\\\"> </div> -->\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .smallComment {\\n font-style: italic;\\n font-size:0.8em;\\n padding-left:15px;\\n }\\n</style>\\n<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>{{'reports.ui.reports' | translate}} - {{'flexmonster.intrastat' | translate}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-2\\\">\\n <span>\\n {{ 'analysis.fromdate' | translate }}\\n <div ng-class=\\\"{'has-error': (!vm.fromDate || vm.fromDate >= vm.toDate)}\\\">\\n <input name=\\\"fromDate\\\" type=\\\"date\\\" format=\\\"yyyy-MM-dd\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.fromDate\\\" enter-as-tab required/>\\n </div>\\n </span>\\n <span>\\n {{ 'analysis.todate' | translate }}\\n <div ng-class=\\\"{'has-error': (!vm.toDate || vm.fromDate >= vm.toDate)}\\\">\\n <input name=\\\"toDate\\\" type=\\\"date\\\" format=\\\"yyyy-MM-dd\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.toDate\\\" enter-as-tab required/>\\n </div>\\n </span>\\n <div> </div>\\n <div>\\n <button class=\\\"btn btn-md btn-primary\\\" ng-disabled=\\\"!vm.fromDate || !vm.toDate || vm.fromDate >= vm.toDate\\\" ng-click=\\\"vm.getIntrastatReport()\\\">{{'common.get' | translate}} CSV</button>\\n </div>\\n </div>\\n </div>\\n </form>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .smallComment {\\n font-style: italic;\\n font-size:0.8em;\\n padding-left:15px;\\n }\\n</style>\\n<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>{{'reports.ui.reports' | translate}} - {{'reports.ui.transit' | translate}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <form class=\\\"form-horizontal\\\">\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.transit.comparisonDate' | translate}}:</label>\\n <wj-input-date class=\\\"col-sm-3\\\" value=\\\"vm.reportparameters.comparisonDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-model=\\\"vm.reportParameters.comparisonDate\\\">\\n </wj-input-date>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\"> </label>\\n <div class=\\\"smallComment\\\">{{ 'reports.ui.transit.comparisonDateDescription' | translate }}</div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.transit.locations' | translate}}:</label>\\n <div class=\\\"col-sm-3\\\">\\n <ca-multiselect model=\\\"vm.selectedLocations\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" placeholder=\\\"'contacts.locations'\\\" item-renderer=\\\"['locationName']\\\"/>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'common.language' | translate}}:</label>\\n <div class=\\\"col-sm-3\\\">\\n <button class=\\\"btn\\\" ng-click=\\\"vm.printLanguage = 'se'\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.printLanguage = 'en'\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-3\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.getTransitReport()\\\">{{'common.get' | translate}}</button>\\n </div>\\n </div>\\n </form>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <input id=\\\"xlf\\\" type=\\\"file\\\" name=\\\"xlfile\\\"> </input>\\n </div>\\n\\n <div ng-if=\\\"vm.inDataColumnNames.length != 0\\\" class=\\\"col-lg-6\\\">\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'order.company' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-error': !vm.articlesOrdersImportRequest.company.id}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.articlesOrdersImportRequest.company\\\" >\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.companyName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"company in vm.companies | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['companyName']}\\\">\\n <span>{{company.companyName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'stock.location' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-error': !vm.articlesOrdersImportRequest.location.id}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.articlesOrdersImportRequest.location\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locations | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['locationName']}\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.alternativearticlenumber' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-warning': vm.mapping.alternativeArticleNumber === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.alternativeArticleNumber\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.articlename' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-warning': vm.mapping.articleName === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.articleName\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.descriptionShort' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.articleDescription\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.variantdetail1' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-warning': vm.mapping.variant1Name === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.variant1Name\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.variantdetail2' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-warning': vm.mapping.variant2Name === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.variant2Name\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.totalquantity' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-warning': vm.mapping.quantity === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.quantity\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.purchasecost' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.purchaseCost\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.salesprice' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.salesPrice\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.previousprice' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.previousPrice\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.itemgroup' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-warning': vm.mapping.itemGroupString === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.itemGroupString\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.subcategory' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.subCategory\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.articletype' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.articleTypeString\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.barcode' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-error': vm.mapping.barcode === ''}\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.barcode\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.department' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.departmentCode\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'order.collection' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\" ng-class=\\\"{'has-error': !vm.selectedCollection || !vm.selectedCollection.id }\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.selectedCollection\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.collectionDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"collection in vm.collections \\\">\\n <span>{{collection.collectionCode}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'article.intrastatnumber' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.mapping.intrastatCode\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"columnName in vm.inDataColumnNames\\\">\\n <span>{{columnName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div> \\n\\n <div class=\\\"col-sm-4\\\">\\n <label> {{'order.planneddeliverydate' | translate}} </label>\\n </div>\\n <div class=\\\"col-sm-8\\\">\\n <wj-input-date\\n value=\\\"vm.plannedDeliveryDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n\\n </div>\\n\\n <div ng-if=\\\"vm.inDataColumnNames.length != 0\\\" class=\\\"col-lg-6\\\">\\n \\n </div>\\n\\n <div ng-if=\\\"vm.inDataColumnNames.length != 0\\\" class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-primary\\\" ng-disabled=\\\"vm.hasError()\\\" ng-click=\\\"vm.sendRequestData()\\\"> {{'common.done' | translate}} </button>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .columnRow {\\n height:24px;\\n width:95%;\\n }\\n .p-l-xs{\\n padding-left:5px;\\n }\\n .p-l-xss{\\n padding-left:4px;\\n }\\n .btn-h-sm{\\n height:28px;\\n margin-bottom:3px;\\n }\\n .colorRow {\\n height:24px;\\n width:140px;\\n }\\n .valueRow {\\n height:24px;\\n width:75px;\\n font-size:smaller;\\n }\\n .excludeRow {\\n background-color:whitesmoke;\\n color: lightgray;\\n height: 20px;\\n }\\n .errorRow {\\n background-color:lightcoral;\\n border-color:red;\\n border-radius: 8px;\\n height:18px;\\n overflow:hidden; \\n white-space:nowrap; \\n padding-left:4px;\\n padding-right:4px;\\n text-overflow:ellipsis;\\n display:inline-block;\\n vertical-align: middle;\\n }\\n .tc-mdl{\\n display: table-cell; \\n vertical-align: middle;\\n }\\n .has-error{\\n border-color:red;\\n color: red;\\n }\\n .has-warning{\\n border-color:gold;\\n color: gold;\\n }\\n .has-warning-b{\\n border-color:gold;\\n }\\n .f-sm {\\n font-size:smaller;\\n }\\n .dp-in {\\n display:inline;\\n }\\n button.btn-cstm{\\n padding:3px;\\n margin:0px;\\n margin-top:4px;\\n margin-bottom:4px;\\n width:20px;\\n height:20px;\\n align-items: center;\\n border-radius: 0px;\\n vertical-align: middle;\\n display:flex;\\n }\\n button.btn-cstm.btn-danger-cstm{\\n border-color:red;\\n background-color:white;\\n color: red;\\n }\\n button.btn-cstm.btn-primary-cstm{\\n border-color:lightskyblue;\\n background-color:white;\\n color:lightskyblue;\\n }\\n button.btn-cstm.btn-gray-cstm{\\n margin-top:1px;\\n margin-bottom:1px;\\n border-color:lightgray;\\n background-color:white;\\n color:lightgray;\\n }\\n button.btn-cstm.btn-danger-cstm:hover{\\n border-color:firebrick;\\n color: firebrick;\\n }\\n button.btn-cstm.btn-primary-cstm:hover{\\n border-color:cornflowerblue;\\n color:cornflowerblue;\\n }\\n button.btn-cstm.btn-gray-cstm:hover{\\n border-color:lightslategray;\\n color:lightslategray;\\n }\\n button.btn-cstm > i.i-cstm{\\n width:10px; \\n height:10px;\\n margin:1px; \\n font-size:8px;\\n padding-left:1px; \\n padding-top:1px;\\n }\\n button.btn-cstm.btn-danger-cstm > i.i-cstm.danger-cstm{\\n background-color: red;\\n color: white;\\n }\\n button.btn-cstm.btn-primary-cstm > i.i-cstm.primary-cstm{\\n background-color:lightskyblue;\\n color:white;\\n }\\n button.btn-cstm.btn-gray-cstm > i.i-cstm.gray-cstm{\\n background-color:lightgray;\\n color:white;\\n }\\n button.btn-cstm.btn-danger-cstm:hover > i.i-cstm.danger-cstm{\\n background-color:firebrick;\\n }\\n button.btn-cstm.btn-primary-cstm:hover > i.i-cstm.primary-cstm{\\n background-color:cornflowerblue;\\n }\\n button.btn-cstm.btn-gray-cstm:hover > i.i-cstm.gray-cstm{\\n background-color:lightslategray;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div {\\n width:240px;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > div {\\n width:240px;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > div > span {\\n width:240px;\\n height:24px;\\n padding:0px;\\n margin:0px;\\n font-size:smaller;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > div > span > span > span{\\n display: table-cell; \\n vertical-align:middle;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > input {\\n width:240px;\\n height:24px;\\n padding:0px;\\n font-size:smaller;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > ul > {\\n width:240px;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > ul > li {\\n width:240px;\\n font-size:smaller;\\n }\\n div.ca-singleselect-modified > ca-singleselect > div > ul > li > div {\\n width:240px;\\n height:20px;\\n }\\n</style>\\n<div class=\\\"form-box\\\">\\n <form name =\\\"addArticleVariantForm\\\" ng-submit=\\\"vm.addArticleVariantsToProduct(true)\\\">\\n <div class=\\\"header\\\">\\n {{'article.newarticlevariant.header' | translate}}.\\n </div>\\n <div class=\\\"col-sm-12 alert alert-warning p-b-xs b-b\\\" style=\\\"text-align: center;\\\" ng-show=\\\"!vm.isBarcodeGenerationAllowed\\\">\\n {{ 'common.warning' | translate }}: {{ 'article.brandforbiddsbarcodegeneration' | translate }}\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-sm-12 p-b-xs\\\">\\n <span ng-class=\\\"{'has-error': vm.hasError() && addArticleVariantForm.color.$touched, 'has-warning': vm.hasWarning() }\\\" class=\\\"dp-in\\\">\\n {{ 'article.variantdetail1' | translate}}:  \\n </span>\\n <input ng-class=\\\"{'has-error': vm.hasError() && addArticleVariantForm.color.$touched, 'has-warning-b': vm.hasWarning() }\\\" \\n id=\\\"color\\\"\\n name=\\\"color\\\" \\n ng-change=\\\"vm.validateNewColor(); vm.updateValues();\\\" \\n ng-click=\\\"vm.validateNewColor(); vm.updateValues();\\\"\\n ng-model=\\\"vm.newColorName\\\" \\n type=\\\"text\\\" \\n placeholder=\\\"{{'article.variantdetail1' | translate}}...\\\"\\n class=\\\"dp-in form-control colorRow enterAsTab\\\" enter-as-tab required autofocus />\\n  \\n <span class=\\\"f-sm\\\" ng-class=\\\"{'has-error': vm.hasError(), 'has-warning': vm.hasWarning()}\\\" ng-show=\\\"(vm.hasWarning() || (vm.hasError() && addArticleVariantForm.color.$touched))\\\">\\n {{ vm.colorError.messageKey | translate }}\\n </span>\\n <button class=\\\"btn btn-sm btn-h-sm btn-warning\\\" tabindex=\\\"-1\\\" style=\\\"float:right;\\\" type=\\\"button\\\" ng-click=\\\"vm.resetValuesFromArticle()\\\">\\n {{ 'common.reset' | translate}}  \\n </button>\\n </div>\\n <div class=\\\"col-sm-12 b-b m-b-xs\\\">\\n <span class=\\\"dp-in f-sm\\\">\\n {{ 'article.salesColour' | translate}}:  \\n </span>\\n <input id=\\\"salesColor\\\"\\n name=\\\"salesColor\\\" \\n ng-change=\\\"vm.updateValues();\\\" \\n ng-click=\\\"vm.updateValues();\\\"\\n ng-model=\\\"vm.newSalesColorName\\\" \\n type=\\\"text\\\" \\n placeholder=\\\"{{ (vm.newColorName === '' || vm.newColorName === undefined) ? ('article.salesColour' | translate)+'...' : (vm.newColorName)}}\\\"\\n class=\\\"dp-in form-control colorRow f-sm enterAsTab\\\" enter-as-tab />\\n </div>\\n <div ng-hide=\\\"vm.hasError()\\\" class=\\\"col-sm-12 b-b m-b-xs m-t-xs p-b-xs\\\">\\n <div class=\\\"f-sm\\\">\\n <input type=\\\"radio\\\" id=\\\"fromProduct\\\" name=\\\"fromRadio\\\" ng-value=\\\"'product'\\\" ng-model=\\\"vm.fromSizeOption\\\" ng-click=\\\"vm.updateFromSizes()\\\" ng-disabled=\\\"vm.sizes.length === 0\\\"/>\\n <label for=\\\"fromProduct\\\">{{'article.newarticlevariant.fromproduct' | translate}}</label>\\n </div>\\n <div>\\n <input type=\\\"radio\\\" id=\\\"fromVariantGroup\\\" name=\\\"fromRadio\\\" ng-value=\\\"'variantgroup'\\\" ng-model=\\\"vm.fromSizeOption\\\" ng-click=\\\"vm.updateFromSizes()\\\" ng-disabled=\\\"vm.variantGroups.length === 0\\\"/>\\n <label class=\\\"f-sm\\\"for=\\\"fromVariantGroup\\\">{{'article.newarticlevariant.fromvariantgroup' | translate}}</label>\\n  \\n <div ng-show=\\\"vm.fromSizeOption === 'variantgroup'\\\" class=\\\"ca-singleselect-modified\\\" style=\\\"display:inline; position:absolute;\\\">\\n <ca-singleselect model=\\\"vm.selectedVariantGroup\\\"\\n choices=\\\"vm.variantGroups\\\"\\n order-by=\\\"'groupName'\\\"\\n item-renderer=\\\"'groupName'\\\"\\n placeholder=\\\"'article.newarticlevariant.selectvariantgroup'\\\"\\n mandatory=\\\"true\\\"/>\\n </div>\\n </div>\\n <div>\\n <input type=\\\"radio\\\" id=\\\"fromVariants\\\" name=\\\"fromRadio\\\" ng-value=\\\"'variant'\\\" ng-model=\\\"vm.fromSizeOption\\\" ng-click=\\\"vm.updateFromSizes()\\\"/>\\n <label class=\\\"f-sm\\\" for=\\\"fromVariants\\\">{{'article.newarticlevariant.fromvariants' | translate}}</label>\\n </div>\\n </div>\\n <table ng-hide=\\\"vm.hasError()\\\" style=\\\"width:100%; table-layout:fixed;\\\">\\n <thead class=\\\"b-b f-sm\\\">\\n <th style=\\\"width:12%\\\" colspan=\\\"2\\\">{{ 'article.variantdetail2' | translate}}:</th>\\n <th style=\\\"width:24%\\\">{{'article.barcode' | translate}}:<i style=\\\"font-size:smaller; font-weight: lighter;\\\" ng-show=\\\"vm.isBarcodeGenerationAllowed\\\"> {{'article.newarticlevariant.barcodeautogenerate' | translate}}</i></th>\\n <th style=\\\"width:9%\\\">{{'article.collection' | translate}}:</th>\\n <th style=\\\"width:8%\\\">{{'article.purchasecost' | translate}}:</th>\\n <th style=\\\"width:8%\\\">{{'article.salesprice' | translate}}:</th>\\n <th style=\\\"width:8%\\\">{{'article.previousprice' | translate}}:</th>\\n <th class=\\\"p-l-xs\\\" style=\\\"width:30%\\\">{{'common.error' | translate}}:</th>\\n </thead>\\n <tbody>\\n <tr class=\\\"f-sm\\\" rowspan=\\\"3\\\" ng-show=\\\"vm.anyVariantsSelected()\\\">\\n <td colspan=\\\"3\\\"></td>\\n <td rowspan=\\\"2\\\">\\n <select id=\\\"collections\\\" \\n ng-options=\\\"collection as collection.collectionDescription for collection in vm.articleCollections track by collection.id\\\" \\n ng-model=\\\"vm.newArticleCollection\\\" \\n name=\\\"collections\\\"\\n class=\\\"columnRow\\\"\\n ng-change=\\\"vm.updateValues()\\\">\\n </select>\\n </td>\\n <td rowspan=\\\"2\\\"><input class=\\\"columnRow\\\" name=\\\"purchase\\\" type=\\\"number\\\" step=\\\".01\\\" min=\\\"0\\\" class=\\\"form-control enterAsTab\\\" placeholder=\\\"{{'article.purchasecost' | translate}}\\\" ng-model=\\\"vm.newPurchaseCost\\\" ng-change=\\\"vm.updateValues()\\\" enter-as-tab required /></td>\\n <td rowspan=\\\"2\\\"><input class=\\\"columnRow\\\" name=\\\"sales\\\" type=\\\"number\\\" step=\\\".01\\\" min=\\\"0\\\" class=\\\"form-control enterAsTab\\\" placeholder=\\\"{{'article.salesprice' | translate}}\\\" ng-model=\\\"vm.newSalesPrice\\\" ng-change=\\\"vm.updateValues()\\\" enter-as-tat required /></td>\\n <td rowspan=\\\"2\\\"><input class=\\\"columnRow\\\" name=\\\"previous\\\" type=\\\"number\\\" step=\\\".01\\\" min=\\\"0\\\" class=\\\"form-control enterAsTab\\\" placeholder=\\\"{{'article.previousprice' | translate}}\\\" ng-model=\\\"vm.newPreviousPrice\\\" ng-change=\\\"vm.updateValues()\\\" enter-as-tab required /></td>\\n <td></td>\\n </tr>\\n <tr class=\\\"b-b f-sm\\\" ng-class=\\\"{'excludeRow': !articleVariant.useThisVariant}\\\" ng-repeat=\\\"articleVariant in vm.newArticleVariants\\\">\\n <td style=\\\"width: 40px;\\\">\\n <div ng-show=\\\"articleVariant.isRemoveable\\\">\\n <button class=\\\"btn btn-xs btn-cstm btn-danger-cstm\\\" type=\\\"button\\\" ng-click=\\\"vm.removeVariantDetail($index)\\\" \\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.newarticlevariant.removevariant' | translate }}\\\">\\n <i class=\\\"fa fa-minus i-cstm danger-cstm\\\" aria-hidden=\\\"true\\\"></i>\\n </button> \\n </div>\\n <div ng-hide=\\\"articleVariant.isRemoveable\\\">\\n <button class=\\\"btn btn-xs btn-cstm btn-primary-cstm\\\" type=\\\"button\\\" ng-click=\\\"articleVariant.useThisVariant = !articleVariant.useThisVariant\\\" ng-show=\\\"articleVariant.useThisVariant\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.newarticlevariant.excludevariant' | translate }}\\\">\\n <i class=\\\"i-cstm primary-cstm\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n <button class=\\\"btn btn-xs btn-cstm btn-gray-cstm\\\" type=\\\"button\\\" ng-click=\\\"articleVariant.useThisVariant = !articleVariant.useThisVariant\\\" ng-hide=\\\"articleVariant.useThisVariant\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.newarticlevariant.includevariant' | translate }}\\\">\\n <i class=\\\"i-cstm gray-cstm\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </div>\\n </td>\\n <td style=\\\"width: 9%; text-overflow: clip;\\\"><div ng-class=\\\"{'errorRow': articleVariant.errorOnSize && articleVariant.useThisVariant }\\\">{{articleVariant.variantDetail2.variantDetailName}}</div></td>\\n <td ng-hide=\\\"articleVariant.useThisVariant\\\" colspan=\\\"5\\\"></td>\\n <td ng-show=\\\"articleVariant.useThisVariant\\\">\\n <div ng-class=\\\"{'has-error': addArticleVariantForm.barcode.$invalid && addArticleVariantForm.barcode.$touched}\\\">\\n <input class=\\\"columnRow\\\" \\n name=\\\"barcode\\\" \\n type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\" \\n ng-class=\\\"{'has-error': articleVariant.errorBarcodeExists || articleVariant.errorBarcodeDuplicate || articleVariant.errorBarcodeGenerationNotAllowed }\\\" \\n placeholder=\\\"{{'article.barcode' | translate}}...\\\" \\n ng-blur=\\\"vm.validateBarcode(articleVariant)\\\" \\n ng-model=\\\"articleVariant.barcode\\\" enter-as-tab/>\\n </div>\\n </td>\\n <td ng-hide=\\\"$first || !articleVariant.useThisVariant\\\"> \\n <div class=\\\"columnRow p-l-xs tc-mdl\\\">{{articleVariant.articleCollection.collectionDescription}}</div>\\n </td>\\n <td ng-hide=\\\"$first || !articleVariant.useThisVariant\\\">\\n <div class=\\\"columnRow p-l-xss tc-mdl\\\">{{articleVariant.purchaseCost}}</div>\\n </td>\\n <td ng-hide=\\\"$first || !articleVariant.useThisVariant\\\">\\n <div class=\\\"columnRow p-l-xss tc-mdl\\\">{{articleVariant.salesPrice}}</div>\\n </td>\\n <td ng-hide=\\\"$first || !articleVariant.useThisVariant\\\">\\n <div class=\\\"columnRow p-l-xss tc-mdl\\\">{{articleVariant.previousPrice}}</div>\\n </td>\\n <td ng-show=\\\"articleVariant.hasError && articleVariant.useThisVariant\\\">\\n <div class=\\\"errorRow columnRow p-l-xs\\\" tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" \\n uib-tooltip=\\\"{{ vm.getErrorTooltip(articleVariant) }}\\\">\\n <span ng-show=\\\"articleVariant.errorOnSize || articleVariant.errorBarcodeExists || articleVariant.errorBarcodeDuplicate || articleVariant.errorBarcodeGenerationNotAllowed\\\">\\n {{vm.getErrorTooltip(articleVariant) }}\\n </span>\\n </div>\\n </td>\\n <td ng-hide=\\\"articleVariant.hasError && articleVariant.useThisVariant\\\"></td>\\n </tr>\\n <tr ng-hide=\\\"vm.fromSizeOption === 'variantgroup' && vm.newArticleVariants.length === 0 && vm.variantGroups.length > 0\\\">\\n <td colspan=\\\"3\\\">\\n <div>\\n <ca-variant-detail-search-single-select \\n page-size=\\\"20\\\"\\n model=\\\"vm.selectedVariant\\\"\\n disabled-by=\\\"\\\" />\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <div class=\\\"col-lg-6 m-t-md\\\">\\n <button class=\\\"btn btn-sm btn-h-sm btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.close' | translate}}</button>\\n </div> \\n <div class=\\\"col-lg-6 m-t-md\\\">\\n <button class=\\\"btn btn-sm btn-h-sm btn-primary m-l-xs\\\" style=\\\"float:right;\\\" type=\\\"button\\\" ng-click=\\\"vm.addArticleVariantsToProduct(false);\\\" ng-disabled=\\\"addArticleVariantForm.$invalid || vm.isAddButtonDisabled()\\\">{{'article.newarticlevariant.addandcontinue' | translate}}</button>\\n <button class=\\\"btn btn-sm btn-h-sm btn-primary\\\" style=\\\"float:right;\\\" type=\\\"submit\\\" ng-disabled=\\\"addArticleVariantForm.$invalid || vm.isAddButtonDisabled()\\\">{{'common.add' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n </form>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">\\n <div>{{('common.edit' | translate) + ' ' + ('article.itemgroup' | translate) + ':'}}</div>\\n <div>{{('article.article' | translate) + ': ' + vm.selectedArticle.alternativeArticleNumber + ' ' +\\n vm.selectedArticle.articleName}}</div>\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n <!--Allows the user to change itemGroup-->\\n <center>\\n <ui-select style=\\\"padding-bottom:3px;width:350px\\\" ng-model=\\\"vm.selectedArticleCopy.itemGroup\\\"\\n ng-change=\\\"vm.changeItemGroup(vm.selectedArticleCopy.itemGroup)\\\"\\n uib-tooltip=\\\"{{ 'article.startEnteringItemGroup' | translate }}\\\" tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"above\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{vm.selectedArticleCopy.itemGroup.itemGroupCode + ' ' +\\n vm.selectedArticleCopy.itemGroup.itemGroupLongName}}</ui-select-match>\\n <ui-select-choices\\n repeat=\\\"itemGroup in vm.itemGroups | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['itemGroupCode', 'itemGroupLongName']} : {minimumInputLength: 3}\\\">\\n <span>{{itemGroup.itemGroupCode + ' ' + itemGroup.itemGroupLongName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </center>\\n <div ng-show=\\\"vm.hasChanged && vm.isNewItemGroup\\\">\\n <h3 style=\\\"text-align-last:center;\\\">\\n {{('productimport.foundTheFollowingChangesToArticleData' | translate) + ':'}}\\n </h3>\\n <div ng-show=\\\"vm.isNewSupplier && vm.newArticleVariantsForNewSuppliers.length > 0 && vm.includeSupplierPrices\\\"\\n style=\\\"margin-bottom:15px;overflow-y: scroll; border-bottom-style: solid; border-top-style: solid; border-width: 2px; border-color:lightgrey;\\\">\\n <div class=\\\"form-group row col-sm-12\\\"\\n style=\\\"padding-bottom:10px;padding-top:0px;border-top:0px;background-color:rgb(252, 252, 252); max-height:175px\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 100%; min-width: 700px;text-align-last:center\\\">\\n <thead style=\\\"padding:3px\\\">\\n <th ng-show=\\\"vm.isNewSupplier\\\">{{('brand.newCompanies' |\\n translate) + ':'}}</th>\\n <th ng-show=\\\"!vm.isNewSupplier\\\">{{('brand.company' | translate) + ':'}}</th>\\n <th style=\\\"min-width:150px\\\">{{('article.variant' | translate) + ':'}}</th>\\n <th style=\\\"max-width:100px;width:50px\\\">{{('article.purchaseprice' | translate) + ':'}}</th>\\n <th> {{('article.currency' | translate) + ':'}}</th>\\n <th style=\\\"max-width:20px\\\"></th>\\n </thead>\\n <tbody>\\n <tr style=\\\"vertical-align: 45%;font-size:12px; margin:0px; padding:0px;\\\" ng-repeat=\\\"newSuppVariant in vm.newArticleVariantsForNewSuppliers\\\">\\n <td style=\\\"margin:0px; padding:0px;\\\">\\n <div style=\\\"font-weight: bold;\\\" ng-show=\\\"vm.isNewSupplier\\\">\\n {{newSuppVariant.companyName}}</div>\\n </td>\\n <td style=\\\"margin:0px; padding:0px;\\\">{{newSuppVariant.variantDetail1.variantDetailName}}\\n {{newSuppVariant.variantDetail2.variantDetailName}}</td>\\n <td style=\\\"margin:0px; padding:1px;\\\">\\n <input style=\\\"padding:0px;font-size:12px;height:22px\\\" type=\\\"number\\\" step=\\\"1.00\\\" class=\\\"form-control ca-numeric\\\"\\n ng-model=\\\"newSuppVariant.purchaseCost\\\"\\n placeholder=\\\"{{'article.purchaseprice' | translate}}\\\">\\n </td>\\n <td style=\\\"margin:0px; padding:0px;\\\">{{newSuppVariant.purchasingCurrency.code}}</td>\\n <td style=\\\"margin:0px; padding:0px;\\\">\\n <span class=\\\"btn btn-sm fa fa-copy\\\"\\n ng-click=\\\"vm.copyToAllPrices(newSuppVariant)\\\" uib-tooltip=\\\"{{('resellerorder.setWholeRowAmount' | translate) + ' ¨' + ('article.purchaseprice' | translate) + '¨ ' + ('brand.company' | translate) + ': ' + newSuppVariant.companyName}}\\\" tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"above\\\" theme=\\\"bootstrap\\\" style=\\\"margin:0px; padding:0px;\\\"></span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n\\n <table ng-show=\\\"vm.isNewItemGroup || vm.isNewSupplier || vm.changesToSupplier\\\" class=\\\"table table-condensed\\\"\\n style=\\\"padding-top:10px;text-align-last:center;width:100%; min-width:700px;background-color:rgb(252, 252, 252);\\\">\\n <div align=\\\"center\\\" class=\\\"form-row\\\">\\n <div class=\\\"form-group col-md-6\\\">\\n <!--FIRST ROW-->\\n <thead>\\n <tr>\\n <th ng-show=\\\"vm.isNewItemGroup\\\" style=\\\"width:25%\\\">\\n <div>{{('article.itemgroup' | translate) + ':'}}\\n </div>\\n </th>\\n <th ng-show=\\\"vm.newSuppliers.length > 0 || vm.removedSuppliers.length > 0\\\" style=\\\"width:25%\\\">{{('brand.companies' | translate) + ':'}}</th>\\n <th ng-show=\\\"vm.isNewSupplier || vm.changesToSupplier\\\" style=\\\"width:25%\\\">{{('brand.preferredCompany' | translate) + ':'}}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <!--FIRST COL-->\\n <td ng-show=\\\"vm.isNewItemGroup\\\">\\n <div class=\\\"form-row\\\"\\n style=\\\"text-align-last:center;background-color:rgb(252, 252, 252)\\\">\\n <div style=\\\"font-weight: bold;color:green\\\">\\n {{'+' + vm.selectedArticleCopy.itemGroup.itemGroupCode + ' ' +\\n vm.selectedArticleCopy.itemGroup.itemGroupLongName}}\\n </div>\\n <div style=\\\"color:orangered\\\">\\n {{'(-' + vm.selectedArticle.itemGroup.itemGroupCode + ' ' +\\n vm.selectedArticle.itemGroup.itemGroupLongName + ')'}}\\n </div>\\n </div>\\n </td>\\n <!--SECOND COL-->\\n <td ng-show=\\\"vm.newSuppliers.length > 0 || vm.removedSuppliers.length > 0\\\">\\n <div>\\n <div ng-repeat=\\\"newSupp in vm.newSuppliers\\\"\\n style=\\\"font-weight: bold;color:green\\\">\\n {{'+' + newSupp.companyName}}\\n </div>\\n <div ng-repeat=\\\"sameSupp in vm.sameSuppliers\\\">\\n {{sameSupp.companyName}}\\n </div>\\n <div ng-repeat=\\\"remSupp in vm.removedSuppliers\\\"\\n style = \\\"color:orangered\\\">\\n {{'-' + remSupp.companyName}}\\n </div>\\n </div>\\n </td>\\n <!--THIRD COL-->\\n <td ng-show=\\\"vm.isNewSupplier || vm.changesToSupplier || vm.selectedArticleCopy.suppliers.length > 1\\\">\\n <div align=\\\"center\\\">\\n <span style=\\\"font-weight: bold;color:green\\\" ng-if=\\\"vm.selectedArticleCopy.suppliers.length == 1 && vm.changesToSupplier\\\" class=\\\"editable\\\">\\n {{'+' + vm.selectedArticleCopy.preferredSupplier.companyName}}\\n </span>\\n <span ng-if=\\\"vm.selectedArticleCopy.suppliers.length == 1 && !vm.changesToSupplier\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.preferredSupplier.companyName}}\\n </span>\\n\\n <ui-select style=\\\"width:200px; position:relative\\\"\\n ng-if=\\\"vm.selectedArticleCopy.suppliers.length > 1\\\"\\n ng-model=\\\"vm.selectedArticleCopy.preferredSupplier\\\">\\n <ui-select-match>\\n <div style=\\\"font-weight:bold; color: green\\\">{{'+' +\\n $select.selected.companyName}}\\n </div>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"supplier in vm.selectedArticleCopy.suppliers\\\">\\n <div style=\\\"font-weight:bold; color: green\\\">{{'+' +\\n supplier.companyName}}</div>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div ng-if=\\\"vm.changesToSupplier && vm.selectedArticleCopy.preferredSupplier.id !== vm.selectedArticle.preferredSupplier.id\\\" style=\\\"color:orangered\\\">{{'-' +\\n vm.selectedArticle.preferredSupplier.companyName}}\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n <!--SECMOND ROW-->\\n<!--\\n <thead>\\n <tr ng-show=\\\"vm.isNewSupplier\\\">\\n <th ng-show=\\\"vm.isNewItemGroup\\\" style=\\\"width:25%\\\">{{'article.salesChannels'| translate}} </th> \\n </tr>\\n </thead>\\n-->\\n<!--\\n <body>\\n <tr ng-show=\\\"vm.isNewSupplier\\\">\\n-->\\n <!--FIRST COL-->\\n<!--\\n <td>\\n <div ng-show=\\\"vm.isNewItemGroup\\\" align=\\\"center\\\">\\n-->\\n <!-- THIS IS FOR SALES CHANNELS -->\\n<!--\\n <ui-select style=\\\"width:50%\\\" multiple\\n ng-model=\\\"vm.selectedArticleCopy.salesChannels\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"{{'article.addSalesChannel' | translate}}\\\">\\n <span>{{$item.salesChannelCode + \\\" \\\" +\\n $item.salesChannelDescription}}</span>\\n </ui-select-match>\\n <ui-select-choices\\n repeat=\\\"salesChannel in vm.selectedArticle.salesChannels\\\">\\n <span>{{salesChannel.salesChannelCode + \\\" \\\" +\\n salesChannel.salesChannelDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </td>\\n </tr>\\n </body>\\n-->\\n </div>\\n </div>\\n </table>\\n </div>\\n </div>\\n <div style=\\\"padding:12px;padding-top:20px\\\">\\n <button style=\\\"width:150px\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveNewItemGroup()\\\"\\n ng-disabled=\\\"!vm.hasChanged || !vm.isNewItemGroup\\\">{{'common.save' | translate}}</button>\\n <button style=\\\"width:150px\\\" class=\\\"btn btn-default pull-right\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.close' |\\n translate}}</button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .has-error{\\n border-color:red;\\n background-color: lightpink;\\n color: red;\\n }\\n .p-r{\\n padding-right:6px\\n }\\n .p-l{\\n padding-left:6px\\n }\\n</style>\\n<div class=\\\"form-box\\\" style=\\\"min-height:200px\\\">\\n <form name =\\\"changeVariantDetailForm\\\" ng-submit=\\\"vm.saveNewVariantDetails()\\\">\\n <div class=\\\"header\\\">\\n <div>\\n Ändra Storleksbenämning:\\n </div>\\n <div>\\n {{ vm.changeVariantDetailObject.supplierProductNumber }} - {{ vm.changeVariantDetailObject.productName }}:\\n </div>\\n </div>\\n <div class=\\\"body bg-gray\\\" style=\\\"overflow-y:inherit\\\">\\n <table style=\\\"width:100%\\\">\\n <thead>\\n <tr>\\n <th style=\\\"text-align: right; padding-right:4px; font-size: smaller; width:30%\\\">\\n (Färger):\\n </th>\\n <th class=\\\"p-r\\\" style=\\\"text-align: right; font-size: small; width:30%\\\">\\n Nuvarande Storlekar:\\n </th>\\n <th class=\\\"p-l\\\" style=\\\"text-align: left; font-size: small; width:40%\\\">Nya Storlekar:</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"obj in vm.changeVariantDetailObject.articleVariantDetailObjects\\\">\\n <td class=\\\"p-l\\\">\\n <div style=\\\"padding:4px; text-align: right; display:inline-flex; float:right; font-size: x-small; height:24px; white-space:nowrap; overflow: hidden;\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"false\\\" uib-tooltip=\\\"{{ vm.getColourText(obj.coloursOnArticleVariant, false) }}\\\" tooltip-popup-delay=\\\"50\\\">\\n ({{ vm.getColourText(obj.coloursOnArticleVariant, true) }})\\n </div>\\n </td>\\n <td class=\\\"p-r\\\" style=\\\"text-align: right;\\\">\\n <div ng-class=\\\"{'has-error': obj.hasError }\\\">{{ obj.variantDetailObject.name }}</div>\\n </td>\\n <td class=\\\"p-r\\\" style=\\\"text-align: left;\\\">\\n <div>\\n <ca-variant-detail-search-single-select \\n page-size=\\\"20\\\"\\n model=\\\"obj.newVariantDetailObject\\\"\\n on-selected=\\\"vm.validate()\\\" \\n on-removed=\\\"vm.validate()\\\"\\n disabled-by=\\\"\\\" />\\n </div>\\n </td>\\n <td style=\\\"width:14%\\\"></td>\\n </tr> \\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"footer\\\" style=\\\"height:60px;\\\">\\n <div class=\\\"col-lg-6\\\">\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" ng-click=\\\"vm.closeModal(false)\\\">Close</button>\\n </div>\\n <div class=\\\"col-lg-6\\\">\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-disabled=\\\"vm.anyError || !vm.anyChanges() || vm.isValidating\\\" style=\\\"float: right;\\\">Save</button>\\n </div>\\n </div>\\n </form>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" <div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{'article.labels' | translate}} \\n {{'- ' + vm.article.alternativeArticleNumber + ' ' + vm.article.articleName}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div style=\\\"margin-bottom: 30px;overflow-x: scroll\\\">\\n <table class=\\\"table-hover table-condensed table-readable-compact\\\" style=\\\"background-color:white\\\">\\n <thead>\\n <tr>\\n <th ><div style=\\\"min-width:150px\\\"></div></th>\\n <th ng-repeat=\\\"column in vm.columns\\\" align=\\\"right\\\"><div style=\\\"min-width:50px;text-align: right;border:1px\\\">{{ column }}</div></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"row in vm.rows\\\">\\n <td><div style=\\\"white-space: nowrap\\\">{{ row.variantDetails1Name }}</div></td>\\n <td ng-repeat=\\\"column in vm.columns\\\"> \\n <input \\n type=\\\"number\\\" \\n ng-if=\\\"row[column]\\\" \\n ng-model=\\\"row[column].value\\\" \\n style=\\\"border:0px;padding:0px;height:auto;width:99%;text-align:right\\\" \\n step=\\\"any\\\"\\n smart-decimal\\n class=\\\" enterAsTab\\\"\\n enter-as-tab>\\n <span ng-if=\\\"!row[column]\\\"> </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.print()\\\" ng-disabled=\\\"vm.ongoingRequest\\\">{{'article.print' | translate}}</button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal()\\\" ng-disabled=\\\"vm.ongoingRequest\\\">{{'common.close' | translate}}</button>\\n \\n <button class=\\\"btn btn-xl btn-default pull-right\\\" ng-click=\\\"vm.getStockDataFromLocation()\\\" ng-disabled=\\\"vm.selectedLocation.locationName == null\\\">{{'article.stock' | translate}} </button>\\n \\n <div class=\\\"col-lg-3 pull-right\\\">\\n <ui-select ng-model=\\\"vm.selectedLocation\\\" theme=\\\"bootstrap\\\" class=\\\"enterAsTab\\\" ng-change=\\\"vm.selectedLocationChanged($select.selected)\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.stockLocations | filter:{'locationName': $select.search}\\\">\\n <span\\\">{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{'article.addIntrastat' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <ca-form-group-row label=\\\"'intrastat.code'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.code' | translate}}\\\" ng-maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.code\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.internalDescription'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.internalDescription' | translate}}\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.internalDescription\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalCode1'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.externalCode1' | translate}}\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.externalCode1\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalDescription1'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.externalDescription1' | translate}}\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.externalDescription1\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalCode2'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.externalCode2' | translate}}\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.externalCode2\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalDescription2'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.externalDescription2' | translate}}\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.externalDescription2\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalCode3'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.externalCode3' | translate}}\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.externalCode3\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalDescription3'\\\">\\n <div>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" placeholder=\\\"{{'intrastat.externalDescription3' | translate}}\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.externalDescription3\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n \\n <div style=\\\"text-align:right;\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.saveIntrastat()\\\">{{'common.save' | translate}}</button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal()\\\">{{'common.cancel' | translate}}</button>\\n </div>\\n <div style=\\\"height: 0px; clear:both;\\\"></div>\\n </div>\\n</div>\\n\\n\\n\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n span.barcodeHover {\\n padding-left: 3px;\\n padding-right: 3px;\\n }\\n\\n span.barcodeHover:hover {\\n text-decoration: underline;\\n }\\n</style>\\n<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.openLabelsModal()\\\" ng-show=\\\"!vm.isNewArticle\\\">\\n {{'article.getlabels' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.modelinventorysearch.modelinventory')\\\" ng-show=\\\"!vm.isNewArticle\\\">\\n {{'stock.inventorymodel' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.orderingpointssearch.orderingpoints')\\\" ng-show=\\\"!vm.isNewArticle\\\" ng-disabled=\\\"!vm.mayReadStockLogistics\\\">\\n {{'stock.orderingpoints' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.articlesearch.article')\\\" ng-show=\\\"!vm.isNewArticle\\\" ng-disabled=\\\"!vm.canAccess('stock', 'read')\\\">\\n {{'common.stock' | translate}}\\n </button>\\n <div style =\\\"padding-top : 8px\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.startEdit()\\\" ng-show=\\\"!vm.isEditing\\\">\\n {{'common.edit' | translate}}\\n </button>\\n\\n <span ng-show=\\\"vm.isEditing\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.save()\\\">{{'common.save' | translate}} </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.cancelEdit()\\\" ng-if=\\\"!vm.isNewArticle\\\">{{'common.cancel' | translate}}</button>\\n </span>\\n </div>\\n </span>\\n <div> </div>\\n <span>{{vm.isNewArticle ? ('article.newarticle' | translate) : vm.selectedArticleCopy.alternativeArticleNumber +\\n ' ' + vm.selectedArticleCopy.articleName}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.article}\\\"><a\\n ng-click=\\\"vm.changeToArticleTab()\\\">{{'article.article' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.articleVariants}\\\">\\n <a ng-click=\\\"vm.changeToArticleVariantsTab()\\\">{{'article.articleVariants' | translate}}</a>\\n </li>\\n <li ng-if=\\\"vm.hasClaim\\\" ng-class=\\\"{'active' : vm.tabSelection.supplierPrices}\\\">\\n <a ng-click=\\\"vm.changeToSupplierPricesTab()\\\">{{'article.supplierPrices' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.barcodes}\\\">\\n <a ng-click=\\\"vm.changeToBarcodesTab()\\\">{{'article.barcodes' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.stocklocations}\\\" ng-if=\\\"vm.showStocklocationsTab\\\">\\n <a ng-click=\\\"vm.changeToStocklocationsTab()\\\">{{'article.stocklocations' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.priceLists}\\\" ng-if=\\\"vm.showPriceListsTab()\\\">\\n <a ng-click=\\\"vm.changeToPriceListsTab()\\\">{{'article.pricelists' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.metaFields}\\\" ng-if=\\\"vm.environment !== 'production'\\\">\\n <a ng-click=\\\"vm.changeToMetaFieldsTab()\\\">{{'article.metaFieldValues' | translate}}</a>\\n </li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.article\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div class=\\\"alert alert-warning\\\"\\n ng-show=\\\"vm.selectedArticleCopy.itemGroup.brand.brandCategory !== undefined && !vm.selectedArticleCopy.itemGroup.brand.brandCategory.isBarcodeGenerationAllowed\\\">\\n {{'article.brandforbiddsbarcodegeneration' | translate}}\\n </div>\\n <div class=\\\"editableForm\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12 col-md-12 col-lg-6\\\">\\n <ca-form-group-row label=\\\"'article.itemgroup'\\\" >\\n \\n <span ng-if=\\\"!vm.isNewArticle && vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.itemGroup.itemGroupCode + ' ' + vm.selectedArticleCopy.itemGroup.itemGroupLongName}}\\n </span>\\n\\n <span class=\\\"btn bg-white-only\\\" style=\\\"border-left: 0px; padding-left: 0px; margin-left: 0px; \\\" ng-show=\\\"!vm.isNewArticle && !vm.isEditing\\\">\\n {{vm.selectedArticleCopy.itemGroup.itemGroupCode + ' ' + vm.selectedArticleCopy.itemGroup.itemGroupLongName}}\\n <span ng-if=\\\"vm.hasClaim\\\" ng-click=\\\"vm.openItemGroupModal()\\\" >\\n <i class=\\\"fa fa-ellipsis-h\\\" style=\\\"text-align:center; vertical-align: middle;padding-left: 10px; font-size:18px\\\"></i>\\n </span>\\n </span>\\n\\n <ui-select ng-if=\\\"vm.isNewArticle\\\" ng-model=\\\"vm.selectedArticleCopy.itemGroup\\\" ng-change=\\\"vm.changeItemGroup(vm.selectedArticleCopy.itemGroup)\\\" uib-tooltip=\\\"{{ 'article.startEnteringItemGroup' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-trigger=\\\"'outsideClick'\\\" tooltip-placement=\\\"above\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.itemGroupCode + \\\" \\\" + $select.selected.itemGroupLongName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"itemGroup in vm.itemGroups | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['itemGroupCode', 'itemGroupLongName']} : {minimumInputLength: 3}\\\" >\\n <span>{{itemGroup.itemGroupCode + ' ' + itemGroup.itemGroupLongName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.articlenumber'\\\">\\n <span class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.articleNumber}}\\n </span>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.alternativearticlenumber'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.alternativeArticleNumber}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\"\\n name=\\\"alternativeArticleNumber\\\"\\n ng-model=\\\"vm.selectedArticleCopy.alternativeArticleNumber\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.articlename'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.articleName}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"articleName\\\"\\n ng-model=\\\"vm.selectedArticleCopy.articleName\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.department'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.department.departmentCode + \\\" \\\" +\\n vm.selectedArticleCopy.department.departmentDescription}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing && vm.selectedArticleCopy.itemGroup\\\"\\n model=\\\"vm.selectedArticleCopy.department\\\" choices=\\\"vm.availableDepartments \\\"\\n order-by=\\\"'departmentCode'\\\" item-renderer=\\\"['departmentCode','departmentDescription']\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.subcategory'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.subCategory.subCategoryCode + \\\" \\\" +\\n vm.selectedArticleCopy.subCategory.subCategoryName}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing && vm.selectedArticleCopy.itemGroup\\\"\\n model=\\\"vm.selectedArticleCopy.subCategory\\\" choices=\\\"vm.availableSubCategories \\\"\\n order-by=\\\"'subCategoryCode'\\\" item-renderer=\\\"['subCategoryCode','subCategoryName']\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.articletype'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.articleType.articleTypeName}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.articleType\\\"\\n choices=\\\"vm.articleTypes \\\" order-by=\\\"'articleTypeName'\\\"\\n item-renderer=\\\"'articleTypeName'\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.articlecollection'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.articleCollection.collectionDescription}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.articleCollection\\\"\\n choices=\\\"vm.articleCollections \\\" order-by=\\\"'collectionDescription'\\\"\\n item-renderer=\\\"'collectionDescription'\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.purchasecost'\\\" ng-style=\\\"{'visibility' : vm.hasClaim ? 'visible' : 'hidden' }\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.purchaseCost | number:2}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric enterAsTab\\\" name=\\\"purchaseCost\\\"\\n ng-model=\\\"vm.selectedArticleCopy.purchaseCost\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.salesprice'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.salesPrice | number:2}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric enterAsTab\\\" name=\\\"salesPrice\\\"\\n ng-model=\\\"vm.selectedArticleCopy.salesPrice\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.previousprice'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.previousPrice | number:2}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric enterAsTab\\\" name=\\\"previousPrice\\\"\\n ng-model=\\\"vm.selectedArticleCopy.previousPrice\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.margin'\\\">\\n <span class=\\\"editable\\\">\\n {{vm.getMargin() * 100 | number:0}} %\\n </span>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.isvariant'\\\" ng-if=\\\"vm.isNewArticle\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.selectedArticleCopy.isVariant\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n \\n <ca-form-group-row label=\\\"'article.iscurrent'\\\" ng-if=\\\"!vm.selectedArticleCopy.isVariant\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\"\\n ng-model=\\\"vm.selectedArticleCopy.articleVariants[0].isCurrent\\\"\\n ng-disabled=\\\"!vm.isEditing || vm.isNewWithItemGroup()\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n </div>\\n\\n <div class=\\\"col-sm-12 col-md-12 col-lg-6\\\">\\n\\n <ca-form-group-row label=\\\"'brand.preferredCompany'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.preferredSupplier.companyName}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.preferredSupplier\\\"\\n choices=\\\"vm.suppliers\\\" order-by=\\\"'companyName'\\\" item-renderer=\\\"'companyName'\\\"\\n mandatory=\\\"true\\\" disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'brand.companies'\\\">\\n <div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ui-select multiple=\\\"\\\" class=\\\"editable-input\\\"\\n ng-model=\\\"vm.selectedArticleCopy.suppliers\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match\\n ui-lock-choice=\\\"$item.id == vm.selectedArticleCopy.preferredSupplier.id\\\"\\n placeholder=\\\"{{article.addCompany | translate}}\\\">\\n <span>{{$item.companyName}}</span>\\n </ui-select-match>\\n <ui-select-choices\\n repeat=\\\"item in vm.selectedArticleCopy.itemGroup.brand.companies | orderBy:'companyName' | filter:$select.search track by item.id\\\">\\n <span>{{item.companyName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n <div ng-show=\\\"vm.isEditing\\\">\\n \\n </div>\\n </div>\\n <div ng-hide=\\\"vm.isEditing\\\"\\n ng-repeat=\\\"company in vm.selectedArticleCopy.suppliers | orderBy:'company.companyName'\\\">\\n <span ng-hide=\\\"vm.isEditing\\\"> {{company.companyName}} </span>\\n <div ng-show=\\\"vm.isEditing\\\">\\n \\n </div>\\n </div>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.salesChannels'\\\">\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ui-select multiple=\\\"\\\" class=\\\"editable-input\\\"\\n ng-model=\\\"vm.selectedArticleCopy.salesChannels\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"{{'article.addSalesChannel' | translate}}\\\">\\n <span>{{$item.salesChannelCode + \\\" \\\" + $item.salesChannelDescription}}</span>\\n </ui-select-match>\\n <ui-select-choices\\n repeat=\\\"salesChannel in vm.salesChannels | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['salesChannelDescription', 'salesChannelCode']}\\\">\\n <span>{{salesChannel.salesChannelCode + \\\" \\\" +\\n salesChannel.salesChannelDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div ng-if=\\\"!vm.isEditing\\\" ng-repeat=\\\"salesChannel in vm.selectedArticleCopy.salesChannels\\\">\\n {{salesChannel.salesChannelCode}} {{salesChannel.salesChannelDescription}}</div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.descriptionShort'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.descriptionShort}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\"\\n name=\\\"descriptionShort\\\" ng-model=\\\"vm.selectedArticleCopy.descriptionShort\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" enter-as-tab>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.descriptionLong'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.descriptionLong}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\"\\n name=\\\"descriptionLong\\\" ng-model=\\\"vm.selectedArticleCopy.descriptionLong\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.intrastatnumber'\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0\\\">\\n <span ng-if=\\\"vm.selectedArticleCopy.intrastat\\\"\\n uib-tooltip=\\\"{{vm.selectedArticleCopy.intrastat.internalDescription}}\\\">\\n {{ vm.selectedArticleCopy.intrastat.code}}\\n </span>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.vat'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.vat.vatDescription}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.vat\\\" choices=\\\"vm.vats\\\"\\n order-by=\\\"'vatDescription'\\\" item-renderer=\\\"'vatDescription'\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.salesAccount'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.salesAccount.accountNumber}}\\n {{vm.selectedArticleCopy.salesAccount.accountName}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.salesAccount\\\"\\n choices=\\\"vm.accounts\\\" order-by=\\\"'accountNumber'\\\"\\n item-renderer=\\\"['accountNumber','accountName']\\\" disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.discountAccount'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.discountAccount.accountNumber}}\\n {{vm.selectedArticleCopy.discountAccount.accountName}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.discountAccount\\\"\\n choices=\\\"vm.accounts\\\" order-by=\\\"'accountNumber'\\\"\\n item-renderer=\\\"['accountNumber','accountName']\\\" disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.countryoforigin'\\\" ng-if=\\\"vm.countries.length > 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.countryOfOrigin.code + ' ' +\\n vm.selectedArticleCopy.countryOfOrigin.name}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.countryOfOrigin\\\"\\n choices=\\\"vm.countries\\\" order-by=\\\"'code'\\\" item-renderer=\\\"['code','name']\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.active'\\\">\\n <span ng-show=\\\"!vm.isEditing\\\" class=\\\"editable\\\">{{vm.selectedArticleCopy.isActive ?\\n ('common.true' | translate) : ('common.false' | translate)}}</span>\\n <label class=\\\"i-checks m-t-xs\\\" ng-show=\\\"vm.isEditing\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.selectedArticleCopy.isActive\\\"\\n ng-disabled=\\\"vm.isNewWithItemGroup()\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.minPurchaseQty'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.minPurchaseQty}}\\n </span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"number\\\" step=\\\"1\\\"\\n class=\\\"form-control ca-numeric enterAsTab\\\" name=\\\"minPurchaseQty\\\"\\n ng-model=\\\"vm.selectedArticleCopy.minPurchaseQty\\\" ng-disabled=\\\"vm.isNewWithItemGroup()\\\"\\n enter-as-tab>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.productclass'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n {{vm.selectedArticleCopy.articleClass.name}}\\n </span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.selectedArticleCopy.articleClass\\\"\\n choices=\\\"vm.productClasses\\\" order-by=\\\"'name'\\\" item-renderer=\\\"['name']\\\"\\n disabled-by=\\\"vm.isNewWithItemGroup()\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.isGroupSaleArticle'\\\">\\n <span class=\\\"editable\\\">{{vm.selectedArticleCopy.isGroupSaleArticle ? ('common.true' |\\n translate) : ('common.false' | translate)}}</span>\\n </ca-form-group-row>\\n </div>\\n </div>\\n <div class=\\\"row\\\"\\n ng-show=\\\"vm.selectedArticleCopy.isVariant && !vm.isNewWithItemGroup()\\\">\\n <div class=\\\"col-sm-12\\\">\\n <ca-article-variants-grid article-change-count=\\\"vm.articleChangeCount\\\" disabled=\\\"!vm.isEditing\\\"\\n is-editing=\\\"vm.isEditing\\\" article=\\\"vm.selectedArticleCopy\\\"\\n article-collections=\\\"vm.articleCollections\\\" variant2=\\\"vm.variant2\\\" searched-variant=\\\"vm.searchedVariant\\\">\\n </ca-article-variants-grid>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.articleVariants\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div class=\\\"editableForm\\\">\\n <div ng-hide=\\\"vm.selectedArticleCopy.articleVariants.length > 0\\\" class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.noArticleVariants' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.isNewArticle && vm.selectedArticleCopy.articleVariants.length > 0\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.mustFirstSaveArticle' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.selectedArticleCopy.articleVariants.length > 0\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedArticleVariantFilter.selectedVariant1\\\" theme=\\\"bootstrap\\\"\\n enter-as-tab class=\\\" enterAsTab\\\" style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetail1.variantDetailName}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.selectedArticleVariantFilter.variants1\\\">\\n <span>{{variant.variantDetail1.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedArticleVariantFilter.selectedVariant2\\\" theme=\\\"bootstrap\\\"\\n enter-as-tab class=\\\" enterAsTab\\\" style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetail2.variantDetailName}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.selectedArticleVariantFilter.variants2\\\">\\n <span>{{variant.variantDetail2.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 100%; min-width: 700px;\\\">\\n <thead>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:150px\\\">{{'article.article' |\\n translate}}</th>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:150px\\\">\\n {{'article.articlecollection' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength === 'visible'\\\">\\n {{'article.length' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth === 'visible'\\\">\\n {{'article.width' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight === 'visible'\\\">\\n {{'article.height' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight === 'visible'\\\">\\n {{'article.weight' | translate}}</th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing === 'visible'\\\">\\n {{'article.meursing' | translate}}</th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation === 'visible'\\\">\\n {{'article.storageLocation' | translate}}</th>\\n <th style=\\\"padding-left:15px;padding-right:3px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0\\\">\\n {{'article.intrastatnumber' | translate}}</th>\\n <th style=\\\"max-width: 100px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0 && vm.isEditing\\\">\\n </th>\\n\\n <!-- columns added to maintain width of table -->\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.length' | translate}}</span></th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.width' | translate}}</span></th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.height' | translate}}</span></th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.weight' | translate}}</span></th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.meursing' | translate}}</span></th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.storageLocation' | translate}}</span></th>\\n <th style=\\\"padding-left:15px;padding-right:3px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat !== 'visible' && vm.intrastats.length > 0\\\">\\n <span class=\\\"ca-light\\\">{{'article.intrastatnumber' | translate}}</span></th>\\n </thead>\\n <tbody>\\n <tr>\\n <td style=\\\"padding: 8px 3px;\\\">\\n <div style=\\\"display: flex; flex-flow: column\\\">\\n <div>{{vm.selectedArticleCopy.articleNumber}}</div>\\n <div class=\\\"text-muted\\\">{{vm.selectedArticleCopy.alternativeArticleNumber}}\\n </div>\\n <div class=\\\"text-muted\\\">{{vm.selectedArticleCopy.articleName}}</div>\\n </div>\\n </td>\\n <td style=\\\"padding: 8px 3px;\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{\\n vm.selectedArticleCopy.articleCollection.collectionDescription }}</span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" disabled-by=\\\"vm.isNewArticle\\\"\\n model=\\\"vm.selectedArticleCopy.articleCollection\\\"\\n choices=\\\"vm.articleCollections\\\" order-by=\\\"'currentRank'\\\"\\n item-renderer=\\\"'collectionDescription'\\\" />\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.selectedArticleCopy.productLength }}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"vm.selectedArticleCopy.productLength\\\"\\n ng-change=\\\"vm.updateAllArticleVariantLengths({{vm.selectedArticleCopy.productLength}})\\\"\\n placeholder=\\\"{{'article.length' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\" min=\\\"0\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.selectedArticleCopy.productWidth }}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"vm.selectedArticleCopy.productWidth\\\"\\n ng-change=\\\"vm.updateAllArticleVariantWidths({{vm.selectedArticleCopy.productWidth}})\\\"\\n placeholder=\\\"{{'article.width' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\" min=\\\"0\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.selectedArticleCopy.productHeight }}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"vm.selectedArticleCopy.productHeight\\\"\\n ng-change=\\\"vm.updateAllArticleVariantHeights({{vm.selectedArticleCopy.productHeight}})\\\"\\n placeholder=\\\"{{'article.height' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\" min=\\\"0\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.selectedArticleCopy.productWeight }}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"vm.selectedArticleCopy.productWeight\\\"\\n ng-change=\\\"vm.updateAllArticleVariantWeights({{vm.selectedArticleCopy.productWeight}})\\\"\\n placeholder=\\\"{{'article.weight' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\" min=\\\"0\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td style=\\\"padding-left:15px;padding-right:30px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.selectedArticleCopy.meursingCode }}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"vm.meursingCode\\\"\\n ng-change=\\\"vm.updateAllArticleVariantMeursingCodes()\\\"\\n placeholder=\\\"{{'article.meursing' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"text\\\" maxlength=\\\"10\\\"\\n class=\\\"form-control\\\">\\n </td>\\n <td style=\\\"padding-left:15px;padding-right:30px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.selectedArticleCopy.storage.rack }}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"vm.selectedArticleCopy.storage.rack\\\"\\n placeholder=\\\"{{'article.storageLocation' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"text\\\" maxlength=\\\"10\\\"\\n class=\\\"form-control\\\">\\n </td>\\n <td style=\\\"padding-left:15px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\"\\n uib-tooltip=\\\"{{ vm.selectedArticleCopy.intrastat.internalDescription }}\\\">{{\\n vm.selectedArticleCopy.intrastat.code }}</span>\\n <ca-singleselect disabled-by=\\\"vm.isNewArticle\\\"\\n model=\\\"vm.selectedArticleCopy.intrastat\\\" ng-if=\\\"vm.isEditing\\\"\\n choices=\\\"vm.intrastats\\\" order-by=\\\"'code'\\\"\\n item-renderer=\\\"['code','internalDescription']\\\"></ca-singleselect>\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0 && vm.isEditing\\\">\\n <button ng-click=\\\"vm.openNewIntrastatModal()\\\" ng-if=\\\"vm.isEditing\\\"\\n ng-disabled=\\\"vm.isNewArticle\\\" type=\\\"button\\\"\\n class=\\\"btn btn-sm btn-default\\\">{{'common.new' | translate}}</button>\\n </td>\\n\\n <!-- columns added to maintain width of table -->\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength !== 'visible'\\\">\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth !== 'visible'\\\">\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight !== 'visible'\\\">\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight !== 'visible'\\\">\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing !== 'visible'\\\">\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation !== 'visible'\\\">\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat !== 'visible' && vm.intrastats.length > 0\\\">\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 100%; min-width: 700px;\\\">\\n <thead>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:150px\\\">{{'article.variant' |\\n translate}}</th>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:150px\\\">\\n {{'article.articlecollection' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength === 'visible'\\\">\\n {{'article.length' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth === 'visible'\\\">\\n {{'article.width' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight === 'visible'\\\">\\n {{'article.height' | translate}}</th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight === 'visible'\\\">\\n {{'article.weight' | translate}}</th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing === 'visible'\\\">\\n {{'article.meursing' | translate}}</th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation === 'visible'\\\">\\n {{'article.storageLocation' | translate}}</th>\\n <th style=\\\"padding-left:15px;padding-right:3px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0\\\">\\n {{'article.intrastatnumber' | translate}}</th>\\n <th style=\\\"max-width: 100px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0 && vm.isEditing\\\">\\n </th>\\n\\n <!-- columns added to maintain width of table -->\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.length' | translate}}</span></th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.width' | translate}}</span></th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.height' | translate}}</span></th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.weight' | translate}}</span></th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.meursing' | translate}}</span></th>\\n <th style=\\\"padding-left:15px;padding-right:30px;min-width:70px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation !== 'visible'\\\">\\n <span class=\\\"ca-light\\\">{{'article.storageLocation' | translate}}</span></th>\\n <th style=\\\"padding-left:15px;padding-right:3px;\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat !== 'visible' && vm.intrastats.length > 0\\\">\\n <span class=\\\"ca-light\\\">{{'article.intrastatnumber' | translate}}</span></th>\\n </thead>\\n <tbody>\\n <tr\\n ng-repeat=\\\"articleVariant in vm.selectedArticleCopy.articleVariants | filter: vm.filterArticleVariantData\\\">\\n <td style=\\\"padding: 3px\\\">\\n <div style=\\\"display: flex; flex-flow: column\\\"\\n ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant(articleVariant)}\\\">\\n <div>{{articleVariant.variantDetail1.variantDetailName}}\\n {{articleVariant.variantDetail2.variantDetailName}}</div>\\n <div class=\\\"text-muted\\\">{{articleVariant.barcode}}</div>\\n <div class=\\\"text-muted\\\">{{articleVariant.externalId}}</div>\\n </div>\\n </td>\\n <td style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span\\n ng-if=\\\"!vm.isEditing\\\">{{articleVariant.articleCollection.collectionDescription}}</span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" disabled-by=\\\"vm.isNewArticle\\\"\\n model=\\\"articleVariant.articleCollection\\\" choices=\\\"vm.articleCollections\\\"\\n order-by=\\\"'currentRank'\\\" item-renderer=\\\"'collectionDescription'\\\" />\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{articleVariant.variantLength}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"articleVariant.variantLength\\\"\\n placeholder=\\\"{{'article.length' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{articleVariant.variantWidth}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"articleVariant.variantWidth\\\"\\n placeholder=\\\"{{'article.width' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{articleVariant.variantHeight}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"articleVariant.variantHeight\\\"\\n placeholder=\\\"{{'article.height' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{articleVariant.variantWeight}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"articleVariant.variantWeight\\\"\\n placeholder=\\\"{{'article.weight' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\">\\n </td>\\n <td style=\\\"padding-left:15px;padding-right:30px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{articleVariant.meursingCode}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"articleVariant.meursingCode\\\"\\n placeholder=\\\"{{'article.meursing' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"text\\\" maxlength=\\\"10\\\"\\n class=\\\"form-control\\\">\\n </td>\\n <td style=\\\"padding-left:15px;padding-right:30px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation === 'visible'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{articleVariant.storage.rack}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-model=\\\"articleVariant.storage.rack\\\"\\n placeholder=\\\"{{'article.storageLocation' | translate}}\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"text\\\" maxlength=\\\"10\\\"\\n class=\\\"form-control\\\">\\n </td>\\n <td style=\\\"padding-left:15px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0\\\">\\n <span ng-if=\\\"!vm.isEditing\\\"\\n uib-tooltip=\\\"{{articleVariant.intrastat.internalDescription}}\\\">{{articleVariant.intrastat.code}}</span>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" disabled-by=\\\"vm.isNewArticle\\\"\\n model=\\\"articleVariant.intrastat\\\" choices=\\\"vm.intrastats\\\" order-by=\\\"'code'\\\"\\n item-renderer=\\\"['code','internalDescription']\\\"></ca-singleselect>\\n </td>\\n <td\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat === 'visible' && vm.intrastats.length > 0 && vm.isEditing\\\">\\n <button ng-click=\\\"vm.openNewIntrastatModal(articleVariant)\\\" ng-if=\\\"vm.isEditing\\\"\\n ng-disabled=\\\"vm.isNewArticle\\\" type=\\\"button\\\"\\n class=\\\"btn btn-sm btn-default\\\">{{'common.new' | translate}}</button>\\n </td>\\n\\n <!-- columns added to maintain width of table -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productLength !== 'visible'\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWidth !== 'visible'\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productHeight !== 'visible'\\\">\\n </td>\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.productWeight !== 'visible'\\\">\\n </td>\\n <td style=\\\"padding-left:3px;padding-right:30px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.meursing !== 'visible'\\\">\\n </td>\\n <td style=\\\"padding-left:3px;padding-right:30px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.storageLocation !== 'visible'\\\">\\n </td>\\n <td style=\\\"padding-left:3px;padding-right:3px\\\"\\n ng-if=\\\"vm.selectedArticleCopy.itemGroup.mainGroup.attributeVisibility.intrastat !== 'visible' && vm.intrastats.length > 0\\\">\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.supplierPrices\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div ng-hide=\\\"vm.selectedArticleCopy.suppliers.length > 0\\\" class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.noSuppliers' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.selectedArticleCopy.suppliers.length > 0 && (!vm.selectedArticleCopy.articleVariants || vm.selectedArticleCopy.articleVariants.length === 0)\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.noArticleVariants' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.isNewArticle && vm.selectedArticleCopy.suppliers.length > 0 && vm.selectedArticleCopy.articleVariants.length > 0\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.mustFirstSaveArticle' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div\\n ng-show=\\\"vm.selectedArticleCopy.suppliers.length > 0 && vm.selectedArticleCopy.articleVariants.length > 0\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedSupplierFilter.selectedSupplier\\\" theme=\\\"bootstrap\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.companyName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"supplier in vm.selectedSupplierFilter.suppliers\\\">\\n <span>{{supplier.companyName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedSupplierFilter.selectedVariant1\\\" theme=\\\"bootstrap\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetail1.variantDetailName}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.selectedSupplierFilter.variants1\\\">\\n <span>{{variant.variantDetail1.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedSupplierFilter.selectedVariant2\\\" theme=\\\"bootstrap\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetail2.variantDetailName}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.selectedSupplierFilter.variants2\\\">\\n <span>{{variant.variantDetail2.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 100%; min-width: 700px;\\\">\\n <thead>\\n <th>{{'brand.company' | translate}}</th>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:150px\\\">{{'article.variant' |\\n translate}}\\n </th>\\n <!-- ArticleNumber -->\\n <th>\\n {{'article.alternativearticlenumber' | translate}}\\n </th>\\n\\n <!-- Local currency fields -->\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\">\\n {{'article.purchaseprice' | translate}}\\n </th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;max-width:70px\\\"\\n tooltip-append-to-body=\\\"true\\\" \\n tooltip-placement=\\\"top-left\\\" \\n uib-tooltip=\\\"{{'article.purchaseprice' | translate}} * {{'article.discountpercent' | translate}}%\\\">\\n {{'article.discountpercent' | translate}} %\\n </th>\\n <th style=\\\"padding-left:3px;padding-right:3px;\\\" ng-if=\\\"vm.isEditing\\\"> \\n {{'article.currency' | translate}}\\n </th>\\n\\n <!-- Converted to other currency -->\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\">\\n <!-- {{'article.purchaseprice' | translate}} -->\\n </th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\" ng-if=\\\"vm.hasCurrencyConversions()\\\">\\n \\n </th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\" ng-if=\\\"vm.hasCurrencyConversions()\\\">\\n {{'currency.currencyRate' | translate}}\\n </th>\\n\\n <!-- Other Currency Fields -->\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\">\\n {{'article.shippingCost' | translate}} ({{ vm.defaultCurrency.code }})\\n </th>\\n <th class=\\\"ca-numeric\\\" \\n style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\" \\n tooltip-append-to-body=\\\"true\\\" \\n tooltip-placement=\\\"top-left\\\" \\n uib-tooltip=\\\"({{'article.purchaseprice' | translate}} * {{'article.discountpercent' | translate}}%) * {{'article.shippingCost' | translate}} * {{'article.customsPercent' | translate}}%\\\">\\n {{'article.customsPercent' | translate}} %\\n </th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\">\\n {{'article.otherCosts' | translate}} ({{ vm.defaultCurrency.code }})\\n </th>\\n <th class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px;max-width:70px\\\">\\n {{'article.standardcostaddpercent' | translate}} %\\n </th>\\n\\n <!-- Sum -->\\n <th class=\\\"ca-numeric\\\" \\n style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\"\\n tooltip-append-to-body=\\\"true\\\" \\n tooltip-placement=\\\"top-left\\\" \\n uib-tooltip=\\\"({{'article.purchaseprice' | translate}} + {{'article.discountpercent' | translate}}% + \\n {{'article.shippingCost' | translate}} + {{'article.customsPercent' | translate}}% + {{'article.otherCosts' | translate}}) * \\n {{'article.standardcostaddpercent' | translate}}%\\\">\\n {{'article.purchasecost' | translate}} ({{vm.defaultCurrency.code}})\\n </th>\\n\\n <th style=\\\"max-width:20px\\\"></th>\\n </thead>\\n <tbody>\\n <tr class=\\\"supplierPriceRow\\\"\\n ng-repeat=\\\"row in vm.supplierRowData | filter: vm.filterSupplierRowData\\\">\\n <td><span class=\\\"companyName\\\">{{row.companyName}}</span></td>\\n <td style=\\\"padding: 3px\\\">\\n <div style=\\\"display: flex; flex-flow: column\\\"\\n ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant({ id: row.articleVariantId })}\\\">\\n <div>{{row.variantDetail1Name}} {{row.variantDetail2Name}}</div>\\n <div class=\\\"text-muted\\\">{{row.externalId}}</div>\\n </div>\\n </td>\\n <td>\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.alternativeProductNumber}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\" type=\\\"text\\\"\\n class=\\\"form-control\\\" ng-model=\\\"row.alternativeProductNumber\\\"\\n placeholder=\\\"{{'article.alternativearticlenumber' | translate}}\\\">\\n </td>\\n\\n <!-- SupplierPrice purchasePrice (\\\"Inköpspris\\\") -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.purchasePrice | number:2}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\" ng-model=\\\"row.purchasePrice\\\"\\n placeholder=\\\"{{'article.purchaseprice' | translate}}\\\">\\n </td>\\n\\n <!-- SupplierPrice Discount percent (\\\"Rabatt\\\") -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.discountPercent | number:1}} %</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\" style=\\\"padding:3px\\\"\\n type=\\\"number\\\" step=\\\"any\\\" class=\\\"form-control ca-numeric\\\"\\n ng-model=\\\"row.discountPercent\\\"\\n placeholder=\\\"{{'article.discountpercent' | translate}}\\\">\\n </td>\\n\\n <!-- SupplierPrice Currency (\\\"Valuta\\\") -->\\n <td style=\\\"padding-left:3px;padding-right:3px\\\" ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" disabled-by=\\\"vm.isNewArticle\\\"\\n model=\\\"row.purchasingCurrency\\\" choices=\\\"vm.currencies\\\" order-by=\\\"'code'\\\"\\n item-renderer=\\\"'code'\\\" />\\n </td>\\n\\n <!-- Calculated PurchasePrice Local currency -->\\n <td class=\\\"ca-numeric info\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n {{ vm.calculatePurchasePrice(row.purchasePrice, row.discountPercent) | number:2}} {{ row.purchasingCurrency.code }}\\n </td>\\n\\n <!-- Calculated PurchasePrice Other currency -->\\n <td class=\\\"ca-numeric info\\\" style=\\\"padding-left:3px;padding-right:3px\\\" ng-if=\\\"vm.hasCurrencyConversions()\\\">\\n {{ vm.calculatePurchasePrice(row.purchasePrice, row.discountPercent) * row.purchasingCurrency.currencyRate | number:2 }} {{ vm.defaultCurrency.code }}\\n </td>\\n <!-- Currency Rate -->\\n <td class=\\\"ca-numeric info\\\" style=\\\"padding-left:3px;padding-right:3px\\\" ng-if=\\\"vm.hasCurrencyConversions()\\\">\\n {{ row.purchasingCurrency.currencyRate }}\\n </td>\\n\\n <!-- SupplierPrice ShippingCost (\\\"Frakt\\\") -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.shippingCost | number:2}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\" ng-model=\\\"row.shippingCost\\\"\\n placeholder=\\\"{{'article.shippingCost' | translate}}\\\">\\n </td>\\n\\n <!-- SupplierPrice CustomsPercent (\\\"Tull %\\\") -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.customsPercent | number:0}} %</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\" ng-model=\\\"row.customsPercent\\\"\\n placeholder=\\\"{{'article.customsPercent' | translate}}\\\">\\n </td>\\n \\n <!-- SupplierPrice otherCosts (\\\"Övrigt\\\") -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.otherCosts | number:2}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n style=\\\"padding:3px;min-width:90px\\\" type=\\\"number\\\" step=\\\"any\\\"\\n class=\\\"form-control ca-numeric\\\" ng-model=\\\"row.otherCosts\\\"\\n placeholder=\\\"{{'article.otherCosts' | translate}}\\\">\\n </td>\\n\\n <!-- SupplierPrice standardCostAddPercent (\\\"PÃ¥slag\\\") -->\\n <td class=\\\"ca-numeric\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{row.standardCostAddPercent | number:1}} %</span>\\n <input ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"vm.isNewArticle\\\" style=\\\"padding:3px\\\"\\n type=\\\"number\\\" step=\\\"any\\\" class=\\\"form-control ca-numeric\\\"\\n ng-model=\\\"row.standardCostAddPercent\\\"\\n placeholder=\\\"{{'article.standardcostaddpercent' | translate}}\\\">\\n </td>\\n\\n <!-- Sum -->\\n <td class=\\\"ca-numeric info\\\" style=\\\"padding-left:3px;padding-right:3px\\\">\\n {{ vm.calculateCostPrice(\\n row.purchasePrice, \\n row.discountPercent,\\n row.standardCostAddPercent, \\n row.purchasingCurrency.currencyRate,\\n row.shippingCost,\\n row.customsPercent,\\n row.otherCosts\\n ) \\n | number:2 }}\\n </td>\\n <td>\\n <span class=\\\"btn btn-sm fa fa-copy\\\" ng-disabled=\\\"vm.isNewArticle\\\"\\n ng-click=\\\"vm.copyToAllVisibleSupplierPrices(row)\\\"></span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.barcodes\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div class=\\\"editableForm\\\">\\n <div ng-hide=\\\"vm.selectedArticleCopy.articleVariants.length > 0\\\" class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.noArticleVariants' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.isNewArticle && vm.selectedArticleCopy.articleVariants.length > 0\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.mustFirstSaveArticle' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.selectedArticleCopy.articleVariants.length > 0\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\" style=\\\"display: inline-block;\\\">\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedArticleVariantFilter.selectedVariant1\\\" theme=\\\"bootstrap\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetail1.variantDetailName}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.selectedArticleVariantFilter.variants1\\\">\\n <span>{{variant.variantDetail1.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.selectedArticleVariantFilter.selectedVariant2\\\" theme=\\\"bootstrap\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetail2.variantDetailName}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.selectedArticleVariantFilter.variants2\\\">\\n <span>{{variant.variantDetail2.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 65%; min-width: 700px; border-collapse: collapse;\\\">\\n <thead>\\n <tr>\\n <th style=\\\"width:10%\\\">{{'article.variant' | translate}} ({{ 'article.variantdetail1' | translate }} - {{ 'article.variantdetail2' | translate }})</th>\\n <th style=\\\"width:10%\\\">{{'article.barcode' | translate}}</th>\\n <th style=\\\"width:10%\\\">{{'reports.soldstock.articlevariant.externalid' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant(articleVariant)}\\\" ng-repeat=\\\"articleVariant in vm.selectedArticleCopy.articleVariants | filter: vm.filterArticleVariantData\\\" >\\n <td>\\n <div>{{articleVariant.variantDetail1.variantDetailName}} - {{articleVariant.variantDetail2.variantDetailName}}</div>\\n </td>\\n <td>\\n <span ng-repeat=\\\"articleBarcode in articleVariant.barcodesZerofill\\\"\\n class=\\\"barcodeHover\\\"\\n ng-class=\\\"{ 'ca-articlevariantsgrid-searchedcell': vm.searchedBarcode === articleBarcode.barcode }\\\"\\n style=\\\"border-top-width:0px;border-left-width:0px;border-right-width:0px;\\\">{{articleBarcode.barcode }}</span>\\n </td>\\n <td class=\\\"text-muted\\\">\\n {{ articleVariant.externalId }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-'lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.stocklocations\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div class=\\\"editableForm\\\">\\n <div ng-hide=\\\"vm.selectedArticleCopy.articleVariants.length > 0\\\" class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.noArticleVariants' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.isNewArticle && vm.selectedArticleCopy.articleVariants.length > 0\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.mustFirstSaveArticle' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n\\n <div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n\\n <span style=\\\"display:inline-block;\\\">\\n <ui-select ng-model=\\\"vm.location\\\" theme=\\\"bootstrap\\\" ng-change=\\\"vm.getStockLocations()\\\"\\n class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locations\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </span>\\n </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 100%; min-width: 700px;\\\">\\n <thead>\\n <tr>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:150px\\\">{{'article.variant' |\\n translate}}</th>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\">\\n {{'article.stocklocation' | translate}}</th>\\n <th style=\\\"padding-left:3px;padding-right:3px;min-width:70px\\\">\\n {{'article.isPhotographed' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody ng-if=\\\"vm.stocklocations.length == 0\\\">\\n <tr>\\n <td style=\\\"text-align: center;\\\">{{ 'article.noStocklocations' | translate }} </td>\\n </tr>\\n </tbody>\\n <tbody ng-if=\\\"vm.stocklocations.length > 0\\\">\\n <tr\\n ng-repeat=\\\"articleVariant in vm.selectedArticleCopy.articleVariants | filter: vm.filterArticleVariantData\\\">\\n <td style=\\\"padding: 3px\\\">\\n <div\\n ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant(articleVariant)}\\\">\\n <div>{{articleVariant.variantDetail1.variantDetailName}}\\n {{articleVariant.variantDetail2.variantDetailName}}</div>\\n <div class=\\\"text-muted\\\">{{ articleVariant.externalId }}</div>\\n </div>\\n </td>\\n <td style=\\\"padding-left:3px;padding-right:3px\\\">\\n {{ vm.stocklocations[articleVariant.id]['stocklocation'] }}\\n </td>\\n <td style=\\\"padding-left:3px;padding-right:3px\\\">\\n {{ vm.stocklocations[articleVariant.id]['isphotographed'] ? ('common.yes' |\\n translate) : ('common.no' | translate) }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.priceLists\\\">\\n <div ng-show=\\\"vm.selectedArticleCopy.suppliers.length > 0 && (!vm.selectedArticleCopy.articleVariants || vm.selectedArticleCopy.articleVariants.length === 0)\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.noArticleVariants' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.isNewArticle && vm.selectedArticleCopy.suppliers.length > 0 && vm.selectedArticleCopy.articleVariants.length > 0\\\"\\n class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n {{'article.error.mustFirstSaveArticle' | translate}}\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n <div ng-show=\\\"vm.selectedArticleCopy.articleVariants.length > 0 && vm.productPrices.length > 0\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n \\n <!-- PriceList: Select price to display -->\\n <div class=\\\"col-lg-12\\\">\\n <ui-select ng-model=\\\"vm.priceListPriceDisplaySelection\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match>\\n {{$select.selected.label | translate}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"selection in vm.priceListPriceDisplaySelections\\\">\\n <span>{{selection.label | translate}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\" style=\\\"width: 100%; min-width: 700px;\\\">\\n <thead>\\n <th>{{'article.variant' | translate}}</th>\\n <th ng-repeat=\\\"pricelist in vm.priceLists\\\"\\n uib-tooltip=\\\"{{ pricelist.priceListName }}\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\">{{ pricelist.priceListCode }}</th>\\n </thead>\\n <tbody>\\n\\n <!-- PriceList: SalesPrice -->\\n <tr ng-repeat=\\\"row in vm.productPrices\\\" ng-if=\\\"vm.priceListPriceDisplaySelection.type === 'salesPrice'\\\">\\n <td style=\\\"padding: 3px\\\">\\n <div style=\\\"display: flex; flex-flow: column\\\" ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant({ id: row.id })}\\\">\\n <div>{{row.variantDetail1Name}} {{row.variantDetail2Name}}</div>\\n <div class=\\\"text-muted\\\">{{row.barcode}}</div>\\n <div class=\\\"text-muted\\\">{{row.externalId}}</div>\\n </div>\\n </td>\\n <td ng-repeat=\\\"pricelist in vm.priceLists\\\">\\n <span ng-repeat=\\\"pricelistitem in row.priceListItems\\\">\\n <span ng-show=\\\"pricelist.priceListId === pricelistitem.priceListId\\\" uib-tooltip=\\\"{{ 'article.previousprice' | translate }}: {{ pricelistitem.previousPrice }}\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\">\\n {{ pricelistitem.price }}\\n </span>\\n </span>\\n </td>\\n </tr>\\n \\n <!-- PriceList: PreviousPrice -->\\n <tr ng-repeat=\\\"row in vm.productPrices\\\" ng-if=\\\"vm.priceListPriceDisplaySelection.type === 'previousPrice'\\\">\\n <td style=\\\"padding: 3px\\\">\\n <div style=\\\"display: flex; flex-flow: column\\\" ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant({ id: row.id })}\\\">\\n <div>{{row.variantDetail1Name}} {{row.variantDetail2Name}}</div>\\n <div class=\\\"text-muted\\\">{{row.barcode}}</div>\\n <div class=\\\"text-muted\\\">{{row.externalId}}</div>\\n </div>\\n </td>\\n <td ng-repeat=\\\"pricelist in vm.priceLists\\\">\\n <span ng-repeat=\\\"pricelistitem in row.priceListItems\\\">\\n <span ng-show=\\\"pricelist.priceListId === pricelistitem.priceListId\\\" uib-tooltip=\\\"{{ 'article.previousprice' | translate }}: {{ pricelistitem.previousPrice }}\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\">\\n {{ pricelistitem.previousPrice }}\\n </span>\\n </span>\\n </td>\\n </tr>\\n \\n </tbody>\\n </table>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.metaFields\\\" ng-if=\\\"vm.environment !== 'production'\\\">\\n\\n <!-- <foo-bar hello=\\\"'heyy'\\\"></foo-bar>\\n {{fooBar}} -->\\n <meta-field-values values=\\\"vm.metaFieldValues\\\" initialIsEditing=\\\"vm.isEditing\\\"></meta-field-values>\\n <meta-fields fields=\\\"vm.metaFields\\\" initialIsEditing=\\\"vm.isEditing\\\"></meta-fields>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\"> \\n <button class=\\\"btn btn-default btn-sm\\\" \\n type=\\\"button\\\" \\n ng-repeat=\\\"gridEditType in vm.gridEditTypes\\\" \\n ng-click=\\\"vm.changeGridEditType(gridEditType)\\\" \\n ng-class=\\\"{'btn-dark' : vm.selectedGridEditType.value === gridEditType.value}\\\"> \\n {{gridEditType.translationKey | translate}} \\n </button>\\n <button class=\\\"btn btn-default btn-sm\\\" type=\\\"button\\\" ng-click=\\\"vm.openColourChangeModal()\\\" ng-show=\\\"vm.isAllowedToChangeColoursOnProducts\\\"> {{ 'article.changeColour' | translate }} </button>\\n</div>\\n<div class=\\\"col-lg-12\\\"> \\n <table class=\\\"table-hover table-condensed table-readable-compact\\\">\\n <thead>\\n <th>{{vm.article.itemGroup.mainGroup.variant1.variantName}}</th>\\n <th ng-hide=\\\"vm.disabled\\\"> </th>\\n <th ng-repeat=\\\"variantDetail2 in vm.variantDetail2s\\\"> {{variantDetail2.variantDetailName}} </th>\\n </thead>\\n <tr ng-repeat=\\\"articleVariantArray in vm.gridData\\\">\\n <td>\\n <span ng-show=\\\"vm.isEditing || vm.isNewArticle\\\" style=\\\"width: 100%; display:inline-block;\\\">{{ (articleVariantArray.length !== 0) ? articleVariantArray[0].variantDetail1.variantDetailName : '' }}</span>\\n <span class=\\\"btn bg-white-only\\\" style=\\\"border-left: 0px; padding-left: 0px; margin-left: 0px; \\\" ng-show=\\\"!vm.isNewArticle && !vm.isEditing\\\" \\n ng-click=\\\"vm.openColourChangeModal(((articleVariantArray.length !== 0) ? articleVariantArray[0].variantDetail1.variantDetailName : ''))\\\" >\\n {{ (articleVariantArray.length !== 0) ? articleVariantArray[0].variantDetail1.variantDetailName : '' }}\\n <span>\\n <i class=\\\"fa fa-ellipsis-h\\\" style=\\\"text-align:center; vertical-align: middle;padding-left: 10px; font-size:18px\\\"></i>\\n </span>\\n </span>\\n </td>\\n <td ng-hide=\\\"vm.disabled\\\">\\n <ca-article-variants-grid-cell article-variants=\\\"articleVariantArray\\\" grid-edit-type=\\\"vm.selectedGridEditType\\\" change-count='vm.articleChangeCount' disabled=\\\"vm.disabled\\\" article-collections=\\\"vm.articleCollections\\\"> </ca-article-variants-grid-cell>\\n </td>\\n <td ng-repeat=\\\"articleVariant in articleVariantArray\\\" ng-class=\\\"{'ca-articlevariantsgrid-searchedcell':vm.isSearchedVariant(articleVariant)}\\\"> \\n <ca-article-variants-grid-cell \\n article-variant=\\\"articleVariant\\\" \\n grid-edit-type=\\\"vm.selectedGridEditType\\\" \\n change-count=\\\"vm.articleChangeCount\\\" \\n disabled=\\\"vm.disabled || articleVariant.isGeneratedArticleVariant\\\" \\n article-collections=\\\"vm.articleCollections\\\"> \\n </td>\\n </tr>\\n <tr ng-show=\\\"!vm.disabled\\\">\\n <td>\\n <button class=\\\"btn btn-xs btn-success\\\" style=\\\"font-size:small; border-radius: 12px;\\\" type=\\\"button\\\" ng-click=\\\"vm.openAddArticleVariantDialog()\\\">\\n <i class=\\\"fa fa-plus\\\" aria-hidden=\\\"true\\\"></i>\\n <span>\\n {{'common.add' | translate}} {{ 'customerinvoice.articleVariant' | translate}}   \\n </span>\\n </button> \\n </td>\\n </tr>\\n </table>\\n <div> </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<!-- Display values -->\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"vm.disabled && vm.dataType === 'text'\\\"> \\n {{vm.articleVariant[vm.gridEditType.value]}} \\n</div>\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"vm.disabled && vm.dataType === 'number'\\\"> \\n {{vm.articleVariant[vm.gridEditType.value] | number: 2 }} \\n</div>\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"vm.dataType === 'disabled'\\\"> \\n {{vm.articleVariant[vm.gridEditType.value]}} \\n</div>\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"vm.disabled && vm.dataType === 'boolean' && vm.dataType !== 'disabled'\\\"> \\n <input type=\\\"checkbox\\\" \\n class=\\\"form-control no-border no-bg text-sm enterAsTab\\\"\\n style=\\\"border:0px;padding:0px;height:auto;width:inherit\\\"\\n ng-model=\\\"vm.inputBoxDisplayValue\\\" \\n ng-change=\\\"vm.inputValueChanged()\\\"\\n ng-disabled=\\\"true\\\"\\n enter-as-tab>\\n</div>\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"vm.disabled && (vm.dataType === 'articleCollection' && vm.dataType !== 'disabled')\\\"> \\n {{vm.inputBoxDisplayValue.collectionDescription}} \\n</div>\\n\\n<!-- Edit Fields -->\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"!vm.disabled && vm.dataType === 'text'\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control no-border no-bg text-sm enterAsTab\\\"\\n style=\\\"border:0px;padding:0px;height:auto\\\"\\n ng-model=\\\"vm.inputBoxDisplayValue\\\" \\n ng-change=\\\"vm.inputValueChanged()\\\"\\n enter-as-tab>\\n</div>\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"!vm.disabled && vm.dataType === 'number'\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control no-border no-bg text-sm enterAsTab\\\"\\n style=\\\"border:0px;padding:0px;height:auto\\\"\\n ng-model=\\\"vm.inputBoxDisplayValue\\\" \\n ng-change=\\\"vm.inputValueChanged()\\\"\\n step=\\\"any\\\"\\n smart-decimal\\n enter-as-tab>\\n </div>\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"!vm.disabled && vm.dataType === 'boolean' && vm.dataType !== 'disabled'\\\">\\n <input type=\\\"checkbox\\\" \\n class=\\\"form-control no-border no-bg text-sm enterAsTab\\\"\\n style=\\\"border:0px;padding:0px;height:auto;width:inherit\\\"\\n ng-model=\\\"vm.inputBoxDisplayValue\\\" \\n ng-change=\\\"\\\"\\n ng-click=\\\"vm.inputValueChanged()\\\"\\n enter-as-tab>\\n</div>\\n\\n<div class=\\\"input-group list-menu\\\" ng-show=\\\"!vm.disabled && (vm.dataType === 'articleCollection' && vm.dataType !== 'disabled')\\\"> \\n <ui-select ng-model=\\\"vm.inputBoxDisplayValue\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab on-select=\\\"vm.inputValueChanged()\\\">\\n <ui-select-match placeholder=\\\"{{'article.articlecollection' | translate}}\\\">{{$select.selected.collectionDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"articleCollection in vm.articleCollections\\\">\\n <span ng-if=\\\"articleCollection.id !== -1\\\">{{articleCollection.collectionDescription}}</span>\\n <span ng-if=\\\"articleCollection.id === -1\\\"> </span>\\n </ui-select-choices>\\n </ui-select>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<ca-article-list\\n articles=\\\"vm.articles\\\"\\n filter=\\\"vm.filter\\\"\\n current-page=\\\"vm.currentPage\\\"\\n page-size=\\\"vm.pageSize\\\"\\n on-article-selected=\\\"vm.selectArticle(article)\\\"\\n on-new=\\\"vm.goToNew()\\\"\\n show-new-button=\\\"true\\\"\\n show-filter-dropdown=\\\"true\\\"\\n match=\\\"vm.match\\\"\\n inactive=\\\"vm.inactive\\\"\\n ></ca-article-list>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.save()\\\"> {{'common.save' | translate}} </button>\\n </span>\\n <span>{{vm.selectedArticle.alternativeArticleNumber}} {{vm.selectedArticle.articleName}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <label class=\\\"col-lg-3 control-label\\\">{{'location.location' | translate}}:</label>\\n <div class=\\\"col-lg-9\\\">\\n <ui-select ng-model=\\\"vm.selectedLocation\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationNumber + \\\" \\\" + $select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locations | filter:vm.filterSubCategories | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['locationNumber', 'locationName']}\\\">\\n <span>{{location.locationNumber + \\\" \\\" + location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <label class=\\\"col-lg-3 control-label\\\">{{'article.originalprice' | translate}}:</label>\\n <div class=\\\"col-lg-9\\\">\\n {{vm.selectedArticle.salesPrice}}\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <label class=\\\"col-lg-3 control-label\\\">{{'article.salesprice' | translate}}:</label>\\n <div class=\\\"col-lg-7\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.newPrice\\\" />\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <button ng-disabled=\\\"!vm.foundExistingPrice\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"vm.removeOverridePrice()\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<ca-article-list\\n articles=\\\"vm.articles\\\"\\n filter=\\\"vm.filter\\\"\\n current-page=\\\"vm.currentPage\\\"\\n page-size=\\\"vm.pageSize\\\"\\n on-article-selected=\\\"vm.selectArticle(article)\\\"\\n show-new-button=\\\"false\\\"\\n show-filter-dropdown=\\\"true\\\"\\n ></ca-article-list>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveBrand()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewBrand\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.brand.brandCode + \\\" \\\" + vm.brand.brandDescription}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n \\n <ca-form-group-row label=\\\"'brand.brandcode'\\\">\\n <div ng-if=\\\"!vm.isNewBrand\\\">\\n <label>{{vm.brand.brandCode}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewBrand\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isBrandCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"brandCode\\\" ng-model=\\\"vm.brand.brandCode\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row> \\n \\n <ca-form-group-row label=\\\"'brand.branddescription'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.brand.brandDescription}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isBrandDescriptionValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"brandDescription\\\" ng-model=\\\"vm.brand.brandDescription\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row> \\n\\n <ca-form-group-row label=\\\"'brand.preferredCompany'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.brand.company.companyName}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.brand.company\\\" choices=\\\"vm.companies\\\" order-by=\\\"'companyName'\\\" item-renderer=\\\"'companyName'\\\"/>\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'brand.companies'\\\">\\n <div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.brand.companies\\\" choices=\\\"vm.companies\\\" order-by=\\\"'companyName'\\\" placeholder=\\\"'article.addCompany'\\\" item-renderer=\\\"['companyName']\\\"/>\\n <div ng-show=\\\"vm.isEditing\\\">\\n \\n </div>\\n </div>\\n <div ng-if=\\\"!vm.isEditing\\\" ng-repeat=\\\"company in vm.brand.companies | orderBy:'company.companyName'\\\">\\n <span>{{company.companyName}}</span>\\n </div> \\n </div>\\n </ca-form-group-row>\\n\\n <div class=\\\"form-group row\\\" ng-if=\\\"!vm.isNewBrand\\\">\\n </div>\\n\\n <ca-form-group-row label=\\\"'brand.brandcategory'\\\">\\n <div ng-if=\\\"!vm.isNewBrand\\\">\\n <label ng-show=\\\"vm.brand.brandCategory.isBarcodeGenerationAllowed\\\"> {{vm.brand.brandCategory.typeName}} ({{'brand.barcodegenerationallowed' | translate}}) </label>\\n <label ng-hide=\\\"vm.brand.brandCategory.isBarcodeGenerationAllowed\\\"> {{vm.brand.brandCategory.typeName}} ({{'brand.barcodegenerationdisallowed' | translate}}) </label>\\n </div>\\n <div ng-if=\\\"vm.isNewBrand\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isBrandCategoryValid()}\\\">\\n <ca-singleselect model=\\\"vm.brand.brandCategory\\\" choices=\\\"vm.brandCategories\\\" order-by=\\\"'typeName'\\\" item-renderer=\\\"'typeName'\\\"/>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.barcodetype'\\\">\\n <div ng-if=\\\"!vm.isNewBrand\\\">\\n <label>{{vm.brand.barcodeType.barcodeTypeName}}</label>\\n </div>\\n <div ng-if=\\\"vm.isNewBrand\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isBarcodeTypeValid()}\\\">\\n <ca-singleselect model=\\\"vm.brand.barcodeType\\\" choices=\\\"vm.barcodeTypes\\\" order-by=\\\"'barcodeTypeName'\\\" item-renderer=\\\"'barcodeTypeName'\\\"/>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'brand.salesChannels'\\\">\\n <div ng-if=\\\"!vm.isNewBrand || !vm.isEditing\\\">\\n <div ng-repeat=\\\"salesChannel in vm.brand.salesChannels\\\">{{salesChannel.salesChannelCode + \\\" \\\" + salesChannel.salesChannelDescription}}</div>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.brand.salesChannels\\\" choices=\\\"vm.salesChannels\\\" order-by=\\\"'salesChannelCode'\\\" item-renderer=\\\"['salesChannelCode','salesChannelDescription']\\\" />\\n </div>\\n </ca-form-group-row> \\n\\n <div class=\\\"form-group row\\\"> </div>\\n \\n <div class=\\\"form-group row\\\" ng-if=\\\"!vm.isNewBrand\\\">\\n <div class=\\\"col-sm-4 control-label\\\">{{'brand.maingroups' | translate}}:</div>\\n <div class=\\\"col-sm-8\\\">\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.selectedMainGroups\\\"\\n choices=\\\"vm.mainGroups\\\"\\n placeholder=\\\"'article.addMaingroup'\\\"\\n item-renderer=\\\"['mainGroupCode','mainGroupDescription']\\\"/>\\n </div>\\n <div ng-repeat=\\\"itemGroup in vm.brand.itemGroups | orderBy:'mainGroup.mainGroupDescription'\\\">\\n <span ng-hide=\\\"vm.isEditing\\\"> {{itemGroup.mainGroup.mainGroupCode}} {{itemGroup.mainGroup.mainGroupDescription}} </span>\\n <a ng-click=\\\"vm.toggleDisplayForm(itemGroup)\\\" ng-show=\\\"vm.isEditing\\\"> {{itemGroup.mainGroup.mainGroupCode}} {{itemGroup.mainGroup.mainGroupDescription}} </a>\\n <div ng-show=\\\"itemGroup.showEditForm && vm.isEditing\\\">\\n <ca-item-group-inline item-group=\\\"itemGroup\\\" vats=\\\"vm.vats\\\" variant-groups=\\\"vm.variantGroups\\\" />\\n </div>\\n <div ng-show=\\\"itemGroup.showEditForm && vm.isEditing\\\">\\n \\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.brands.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <div class=\\\"text-center header-row\\\">\\n <span style=\\\"cursor: pointer; display: inline-block; margin-left: 20px;\\\" class=\\\"pull-left\\\">\\n <i class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\" ng-click=\\\"vm.sortBrands('brandCode')\\\"></i> \\n </span>\\n <span style=\\\"cursor: pointer; display: inline-block; margin-right: 75px;\\\">\\n <i class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\" ng-click=\\\"vm.sortBrands('brandDescription')\\\"></i> \\n </span>\\n </div>\\n <a ng-click=\\\"$state.go('product.brands.brand', {brandId: brand.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"brand in vm.brands\\\" ng-class=\\\"{'focus m-l-none': brand.id === vm.selectedBrandId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': brand.id === vm.selectedBrandId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{brand.brandCode}}</span><span class=\\\"pull-right text-ellipsis lg-label\\\">{{brand.brandDescription}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveBusinessArea()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewBusinessArea\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteBusinessArea()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewBusinessArea\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n\\n\\n <ca-form-group-row label=\\\"'businessarea.code'\\\">\\n <div ng-if=\\\"!vm.isNewBusinessArea && !vm.isEditing\\\">\\n <label>{{vm.businessarea.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isNewBusinessArea || vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isBusinessAreaCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"code\\\" ng-model=\\\"vm.businessarea.code\\\" maxlength=\\\"20\\\" uppercase enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'businessarea.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.businessarea.name}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.businessarea.name\\\" maxlength=\\\"100\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.businessareas.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.businessareas.businessarea', {businessareaId: businessarea.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"businessarea in vm.businessareas\\\" ng-class=\\\"{'focus m-l-none': businessarea.id === vm.selectedBusinessAreaId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': businessarea.id === vm.selectedBusinessAreaId }\\\">\\n <span class=\\\"sm-label\\\">{{businessarea.code}} {{businessarea.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-11\\\">\\n <ui-select multiple=\\\"\\\" class=\\\"editable-input\\\" ng-model=\\\"vm.articlesToAdd\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.disabled\\\">\\n <ui-select-match placeholder=\\\"{{'order.addarticle' | translate}}\\\">\\n <span>{{::$item.articleName + ' (' + ($item.useAlternativeArticleNumber && $item.alternativeArticleNumber.length > 0 ? $item.alternativeArticleNumber : $item.articleNumber) + ')'}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"article in vm.searchResultArticles track by article.id\\\" refresh=\\\"vm.refreshArticles($select.search)\\\" refresh-delay=\\\"200\\\">\\n <span>{{::article.articleName + ' (' + (article.useAlternativeArticleNumber && article.alternativeArticleNumber.length > 0 ? article.alternativeArticleNumber : article.articleNumber) + ')'}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-lg-1\\\">\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.addArticles()\\\" ng-disabled=\\\"vm.disabled\\\">+</button>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-4 control-label\\\">{{'itemgroup.itemgroupname' | translate}}:</div>\\n <div class=\\\"col-lg-8\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n ng-model=\\\"vm.itemGroup.itemGroupLongName\\\"/>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-4 control-label\\\">{{'article.vat' | translate}}:</div>\\n <div class=\\\"col-lg-8\\\">\\n <ui-select ng-model=\\\"vm.itemGroup.vat\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.vatDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"vat in vm.vats\\\">\\n <span>{{vat.vatDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n \\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-4 control-label\\\">{{'maingroup.preferredVariantGroup1' | translate}}:</div>\\n <div class=\\\"col-lg-8\\\">\\n <ui-select ng-model=\\\"vm.itemGroup.variantGroup1\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.groupName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"variantGroup in vm.variantGroup1s\\\">\\n <span>{{variantGroup.groupName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-4 control-label\\\">{{'maingroup.preferredVariantGroup2' | translate}}:</div>\\n <div class=\\\"col-lg-8\\\">\\n <ui-select ng-model=\\\"vm.itemGroup.variantGroup2\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.groupName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"variantGroup in vm.variantGroup2s\\\">\\n <span>{{variantGroup.groupName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<form name=\\\"departmentForm\\\" ng-submit=\\\"vm.save()\\\" >\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"departmentForm.$invalid\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNew\\\"> {{'common.cancel' | translate}} </button>\\n <span> {{vm.department.departmentCode + \\\" \\\" + vm.department.departmentDescription}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'department.departmentCode'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.department.departmentCode }}</span>\\n <div ng-class=\\\"{'has-error': departmentForm.departmentCode.$invalid && departmentForm.departmentCode.$touched}\\\">\\n <input name=\\\"departmentCode\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.department.departmentCode\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"departmentForm.departmentCode.$invalid && departmentForm.departmentCode.$touched\\\">{{'common.required' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'department.departmentDescription'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.department.departmentDescription }}</span>\\n <div ng-class=\\\"{'has-error': departmentForm.departmentDescription.$invalid && departmentForm.departmentDescription.$touched}\\\">\\n <input name=\\\"departmentDescription\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.department.departmentDescription\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"departmentForm.departmentDescription.$invalid && departmentForm.departmentCode.$touched\\\">{{'common.required' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'department.mainGroups'\\\">\\n <p ng-if=\\\"!vm.isEditing\\\" ng-repeat=\\\"mainGroup in vm.department.mainGroups\\\">{{ mainGroup.mainGroupCode + \\\" \\\" + mainGroup.mainGroupDescription }}</p>\\n <ca-multiselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.department.mainGroups\\\" choices=\\\"vm.mainGroups\\\" order-by=\\\"'mainGroupCode'\\\" item-renderer=\\\"['mainGroupCode','mainGroupDescription']\\\" />\\n </ca-form-group-row>\\n </div>\\n </div>\\n</form>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.departments.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.departments.department', {departmentId: department.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"department in vm.departments\\\" ng-class=\\\"{'focus m-l-none': department.id === vm.selectedDepartmentId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': department.id === vm.selectedDepartmentId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{department.departmentCode}}</span><span class=\\\"text-ellipsis lg-label\\\">{{department.departmentDescription}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <div class=\\\"text-center\\\" ng-show=\\\"vm.totalRows > vm.itemsPerPage\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalRows\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"5\\\" ng-change=\\\"vm.pageChanged()\\\"\\n ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.validationErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.validationErrors\\\">{{::error}}</li>\\n </ul>\\n </div>\\n </div>\\n\\n <!--\\n Headers and tabs\\n -->\\n <label class=\\\"col-lg-12 h3\\\"> {{vm.importFile.fileName}} </label>\\n <label class=\\\"col-lg-12 h4\\\"> {{'order.company' | translate}}: {{vm.importFile.preferredSupplier.companyName}} </label>\\n <label class=\\\"col-lg-12 h4\\\"> {{'stock.location' | translate}}: {{(vm.importFile.location) ? vm.importFile.location.locationName : \\\"\\\"}} </label>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\" id=\\\"tabsPanel\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.switchToOverview()\\\" ng-disabled=\\\"vm.isEditing\\\"> {{'common.overview' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.switchToArticles()\\\" ng-disabled=\\\"vm.isEditing\\\"> {{'article.articles' | translate}} </button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <!--\\n Overview section\\n -->\\n <label class=\\\"col-lg-12 h4\\\" ng-show=\\\"vm.viewVisibility.overview\\\"> {{'common.overview' | translate}} </label>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.overview\\\"> </div>\\n <div class=\\\"col-lg-12\\\" id=\\\"overviewSection\\\" ng-show=\\\"vm.viewVisibility.overview\\\">\\n <wj-flex-grid selection-mode=\\\"Cell\\\"\\n headers-visibility=\\\"Column\\\" is-read-only=\\\"false\\\"\\n beginning-edit=\\\"vm.setIsEditingTrue()\\\"\\n cell-edit-ending=\\\"vm.setIsEditingFalse()\\\"\\n class=\\\"orders-flex-grid\\\" style=\\\"width: 95%; max-height: 350px\\\" initialized=\\\"vm.captureOverviewGrid(s)\\\">\\n <wj-flex-grid-column binding=\\\"alternativeArticleNumber\\\" width=\\\"*\\\" header=\\\"{{'article.alternativearticlenumber' | translate}}\\\">\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getAlternativeArticleNumberStyle($item)\\\">\\n {{($item.alternativeArticleNumber === undefined || $item.alternativeArticleNumber === \\\"\\\") ? \\\"-\\\" : $item.alternativeArticleNumber}}\\n </wj-flex-grid-cell-template>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"articleName\\\" width=\\\"2*\\\" header=\\\"{{'article.articlename' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"articleDescription\\\" width=\\\"*\\\" header=\\\"{{'article.descriptionShort' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"itemGroupString\\\" width=\\\"*\\\" header=\\\"{{'article.itemgroup' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getItemGroupStyle($item)\\\">\\n {{($item.itemGroupString === undefined || $item.itemGroupString === \\\"\\\") ? \\\"-\\\" : $item.itemGroupString}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"variant1Name\\\" width=\\\"*\\\" header=\\\"{{'article.variantdetail1' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getColorVariantStyle($item)\\\">\\n {{($item.variant1Name === undefined || $item.variant1Name === \\\"\\\") ? \\\"-\\\" : $item.variant1Name}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"variant2Name\\\" width=\\\"*\\\" header=\\\"{{'article.variantdetail2' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getSizeVariantStyle($item)\\\">\\n {{($item.variant2Name === undefined || $item.variant2Name === \\\"\\\") ? \\\"-\\\" : $item.variant2Name}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n\\n <wj-flex-grid-column binding=\\\"departmentCode\\\" width=\\\"*\\\" header=\\\"{{'article.department' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getDepartmentStyle($item)\\\"> \\n {{$item.departmentCode}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n\\n <wj-flex-grid-column binding=\\\"quantity\\\" width=\\\"*\\\" header=\\\"{{'article.totalquantity' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"purchaseCost\\\" width=\\\"*\\\" header=\\\"{{'article.purchasecost' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getPricesStyle($item)\\\">\\n {{$item.purchaseCost}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"salesPrice\\\" width=\\\"*\\\" header=\\\"{{'article.salesprice' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getPricesStyle($item)\\\">\\n {{$item.salesPrice}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"previousPrice\\\" width=\\\"*\\\" header=\\\"{{'article.previousprice' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"subCategory\\\" width=\\\"*\\\" header=\\\"{{'article.subcategory' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"articleTypeString\\\" width=\\\"*\\\" header=\\\"{{'article.articletype' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getArticleTypeStyle($item)\\\">\\n {{($item.articleTypeString === undefined || $item.articleTypeString === \\\"\\\") ? \\\"-\\\" : $item.articleTypeString}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column> <wj-flex-grid-column binding=\\\"intrastatCode\\\" width=\\\"*\\\" header=\\\"{{'article.intrastatnumber' | translate}}\\\">\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getIntrastatStyle($item)\\\">\\n {{($item.intrastatCode === undefined || $item.intrastatCode === \\\"\\\") ? \\\"-\\\" : $item.intrastatCode}}\\n </wj-flex-grid-cell-template> \\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"barcode\\\" width=\\\"2*\\\" header=\\\"{{'article.barcode' | translate}}\\\">\\n\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getBarcodeStyle($item)\\\">\\n {{($item.barcode === undefined || $item.barcode === \\\"\\\") ? \\\"-\\\" : $item.barcode}}\\n </wj-flex-grid-cell-template>\\n\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"collection\\\" width=\\\"*\\\" header=\\\"{{'order.collection' | translate}}\\\">\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getCollectionStyle($item)\\\">\\n {{($item.collection === undefined || $item.collection === \\\"\\\") ? \\\"-\\\" : $item.collection}}\\n </wj-flex-grid-cell-template>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column align=\\\"center\\\" is-read-only=\\\"true\\\" header=\\\"{{'import.removerow' | translate}}\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"$item.shouldRemoveThisRow\\\" />\\n <i></i>\\n </label>\\n </wj-flex-grid-column>\\n\\n </wj-flex-grid>\\n </div>\\n\\n <!--\\n Articles section\\n -->\\n <label class=\\\"col-lg-12 h4\\\" ng-show=\\\"vm.viewVisibility.articles\\\"> {{'article.articles' | translate}} </label>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.articles\\\"> </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.articles\\\">\\n <wj-flex-grid selection-mode=\\\"Cell\\\"\\n headers-visibility=\\\"Column\\\" is-read-only=\\\"false\\\"\\n beginning-edit=\\\"vm.setIsEditingTrue()\\\"\\n cell-edit-ending=\\\"vm.setIsEditingFalse(); vm.registerOldArticleGroupingInfo()\\\"\\n cell-edit-ended=\\\"vm.copyArticleGroupInformationToAllRelatedRows()\\\"\\n class=\\\"orders-flex-grid\\\" style=\\\"width: 95%\\\" initialized=\\\"vm.captureArticleGroupingsGrid(s)\\\">\\n\\n <wj-flex-grid-column binding=\\\"alternativeArticleNumber\\\" width=\\\"*\\\" header=\\\"{{'article.alternativearticlenumber' | translate}}\\\">\\n <wj-flex-grid-cell-template cell-type=\\\"Cell\\\" ng-style=\\\"vm.getAlternativeArticleNumberStyle($item)\\\">\\n {{($item.alternativeArticleNumber === undefined || $item.alternativeArticleNumber === \\\"\\\") ? \\\"-\\\" : $item.alternativeArticleNumber}}\\n </wj-flex-grid-cell-template>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"articleName\\\" width=\\\"2*\\\" header=\\\"{{'article.articlename' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"itemGroupString\\\" width=\\\"*\\\" header=\\\"{{'article.itemgroup' | translate}}\\\" is-read-only=\\\"true\\\">\\n <wj-auto-complete\\n initialized=\\\"vm.setWjDefaultItemGroup(s, $item)\\\"\\n is-dropped-down-changed=\\\"vm.itemGroupChanged(s, $item)\\\"\\n placeholder=\\\"{{'article.itemGroup' | translate}}\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.itemGroupNamesAndCodes\\\"\\n is-editable=\\\"false\\\"\\n isRequired=\\\"true\\\">\\n </wj-auto-complete>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"purchaseCost\\\" width=\\\"*\\\" header=\\\"{{'article.purchasecost' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"salesPrice\\\" width=\\\"*\\\" header=\\\"{{'article.salesprice' | translate}}\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"articleTypeString\\\" width=\\\"*\\\" header=\\\"{{'article.articletype' | translate}}\\\" is-read-only=\\\"true\\\">\\n <wj-auto-complete\\n initialized=\\\"vm.setWjDefaultArticleType(s, $item)\\\"\\n is-dropped-down-changed=\\\"vm.articleTypeChanged(s, $item)\\\"\\n placeholder=\\\"{{'article.articletype' | translate}}\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.articleTypeNames\\\"\\n is-editable=\\\"false\\\"\\n isRequired=\\\"false\\\">\\n </wj-auto-complete>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column binding=\\\"collection\\\" width=\\\"*\\\" header=\\\"{{'order.collection' | translate}}\\\" is-read-only=\\\"true\\\">\\n <wj-auto-complete\\n initialized=\\\"vm.wjAutoCompleteSetDefaultValue(s, $item, 'collection')\\\"\\n is-dropped-down-changed=\\\"vm.collectionChanged(s, $item)\\\"\\n placeholder=\\\"{{'article.collection' | translate}}\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.collectionCodes\\\"\\n is-editable=\\\"false\\\"\\n isRequired=\\\"false\\\">\\n </wj-auto-complete>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n <!--\\n Colors section\\n -->\\n <label class=\\\"col-lg-12 h4\\\" ng-show=\\\"vm.viewVisibility.colors\\\"> {{'article.variantdetail1' | translate}} </label>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.colors\\\"> </div>\\n <div class=\\\"col-lg-6\\\" ng-show=\\\"vm.viewVisibility.colors\\\">\\n\\n <div class=\\\"col-lg-3\\\">\\n <label class=\\\"col-lg-2\\\"> {{'article.variantdetail1' | translate}}: </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <ui-select theme=\\\"bootstrap\\\" ng-model=\\\"vm.colorChange.from\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"color in vm.distinctColors\\\">\\n <span>{{color}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <input type=\\\"text\\\" class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\" ng-model=\\\"vm.colorChange.to\\\" />\\n </div>\\n <div class=\\\"col-lg-1\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.changeAllColors()\\\"> {{'common.change' | translate}} </button>\\n </div>\\n\\n </div>\\n <div class=\\\"col-lg-6\\\" ng-show=\\\"vm.viewVisibility.colors\\\">\\n \\n </div>\\n\\n <!-- View colors -->\\n <div class=\\\"col-lg-12\\\"ng-show=\\\"vm.viewVisibility.colors\\\"> </div>\\n <div class=\\\"col-lg-6\\\"ng-show=\\\"vm.viewVisibility.colors\\\">\\n <div class=\\\"col-lg-12\\\" ng-repeat=\\\"(key, values) in vm.rowsGroupedByColor\\\">\\n <label class=\\\"col-lg-6 h4\\\"> {{key}} </label>\\n <label class=\\\"col-lg-4 h4\\\">\\n {{(values[0].variantDetail1 !== undefined) ?\\n values[0].variantDetail1.variantDetailName :\\n \\\"Will be created\\\"}}\\n </label>\\n </div>\\n </div>\\n <div class=\\\"col-lg-6\\\" ng-show=\\\"vm.viewVisibility.colors\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.overview && !vm.importFile.isApproved\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveImportFile()\\\" ng-disabled=\\\"vm.isEditing || !vm.canAccess('articlesOrdersImport', 'update')\\\"> {{'common.save' | translate}} </button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.overview && !vm.importFile.isApproved\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.viewVisibility.overview && !vm.importFile.isApproved\\\">\\n <div class=\\\"m-b-none m-t-none\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.importFile.shouldGenerateOrder\\\"/>\\n <i></i>\\n {{'import.generateorder' | translate}}\\n </label>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-if=\\\"false\\\">\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-lg-2 control-label\\\">{{'order.externalordernumber' | translate}}:</label>\\n <div class=\\\"col-lg-3\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'order.externalordernumber' | translate}}\\\"\\n ng-model=\\\"vm.orderinfo.orderNumberExternal\\\"/>\\n </div>\\n <div class=\\\"col-lg-7\\\">\\n \\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-lg-2 control-label\\\">{{'order.planneddeliverydate' | translate}}:</label>\\n <div class=\\\"col-lg-3\\\">\\n <wj-input-date\\n value=\\\"vm.orderinfo.plannedDeliveryDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n <div class=\\\"col-lg-7\\\">\\n \\n </div>\\n </div>\\n\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveAndFinalize()\\\" ng-disabled=\\\"vm.isEditing || vm.isAnyBarcodeOnWrongArticle()\\\"> {{'common.saveAndFinalize' | translate}} </button>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"$state.go('product.importfileslist.articleimport')\\\" ng-disabled=\\\"!vm.canAccess('articlesOrdersImport', 'create')\\\"> {{'common.new' | translate}} </button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"wrapper b-t text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadImportFiles()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid items-source=\\\"vm.importFiles\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" is-read-only=\\\"true\\\"\\n class=\\\"orders-flex-grid\\\">\\n <wj-flex-grid-column header=\\\"{{'common.filename' | translate}}\\\" binding=\\\"fileName\\\" width=\\\"*\\\">\\n <a ng-click=\\\"vm.editImportFile($item.id)\\\" class=\\\"ca-celllink\\\">\\n {{$item.fileName}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.importdate' | translate}}\\\" binding=\\\"importDate\\\" width=\\\"*\\\"> {{ $item.importDate | date:'yyyy-MM-dd HH:mm' }} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.approved' | translate}}\\\" binding=\\\"isApproved\\\" width=\\\"*\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'order.order' | translate}}\\\">\\n <a ng-click=\\\"$state.go('order.modifyorder', {orderId: $item.order.id})\\\" class=\\\"ca-celllink\\\">\\n {{$item.order.orderNumber}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteImportFile($item.id)\\\" ng-if=\\\"!$item.isApproved\\\"> {{'common.delete' | translate}} </button>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveIntrastat()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewIntrastat\\\"> {{'common.cancel' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.deleteIntrastat()\\\" ng-if=\\\"!vm.isEditing\\\" ng-hide=\\\"vm.isNewIntrastat\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'intrastat.code'\\\">\\n <div ng-if=\\\"!vm.isNewIntrastat && !vm.isEditing\\\">\\n <label>{{vm.intrastat.code}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.code\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.internalDescription'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.internalDescription}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.internalDescription\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalCode1'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.externalCode1}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.externalCode1\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalDescription1'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.externalDescription1}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.externalDescription1\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalCode2'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.externalCode2}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.externalCode2\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalDescription2'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.externalDescription2}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.externalDescription2\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalCode3'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.externalCode3}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"12\\\" ng-model=\\\"vm.intrastat.externalCode3\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'intrastat.externalDescription3'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.intrastat.externalDescription3}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" maxlength=\\\"100\\\" ng-model=\\\"vm.intrastat.externalDescription3\\\" enter-as-tab />\\n </div> \\n </ca-form-group-row>\\n\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.intrastats.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.intrastats.intrastat', {intrastatId: intrastat.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"intrastat in vm.intrastats\\\" ng-class=\\\"{'focus m-l-none': intrastat.id === vm.selectedIntrastatId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': intrastat.id === vm.selectedIntrastatId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{intrastat.code}}</span>\\n <span class=\\\"pull-right text-ellipsis lg-label\\\">{{intrastat.internalDescription}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveMainGroup()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewMainGroup\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.mainGroup.mainGroupCode + \\\" \\\" + vm.mainGroup.mainGroupDescription}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12 col-md-12 col-lg-6\\\">\\n <ca-form-group-row label=\\\"'maingroup.maingroupcode'\\\">\\n <div ng-if=\\\"!vm.isNewMainGroup\\\">\\n <label>{{vm.mainGroup.mainGroupCode}}</label>\\n </div>\\n <div ng-if=\\\"vm.isNewMainGroup\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isMainGroupCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"mainGroupCode\\\" ng-model=\\\"vm.mainGroup.mainGroupCode\\\" enter-as-tab />\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'maingroup.maingroupdescription'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.mainGroup.mainGroupDescription}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isMainGroupDescriptionValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"mainGroupDescription\\\" ng-model=\\\"vm.mainGroup.mainGroupDescription\\\" enter-as-tab />\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'maingroup.businessarea'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.mainGroup.businessArea.name}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.mainGroup.businessArea\\\" choices=\\\"vm.businessAreas\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" />\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'maingroup.departments'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <div ng-repeat=\\\"department in vm.mainGroup.departments\\\">{{department.departmentDescription}}</div>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.mainGroup.departments\\\" choices=\\\"vm.departments\\\" order-by=\\\"'departmentDescription'\\\" item-renderer=\\\"'departmentDescription'\\\" />\\n </div>\\n </ca-form-group-row>\\n \\n <ca-form-group-row label=\\\"'maingroup.subCategories'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <div ng-repeat=\\\"subCategory in vm.mainGroup.subCategories\\\">{{subCategory.subCategoryCode + \\\" \\\" + subCategory.subCategoryName}}</div>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.mainGroup.subCategories\\\" choices=\\\"vm.subCategories\\\" order-by=\\\"'subCategoryName'\\\" item-renderer=\\\"['subCategoryCode','subCategoryName']\\\" />\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'maingroup.salesChannels'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <div ng-repeat=\\\"salesChannel in vm.mainGroup.salesChannels\\\">{{salesChannel.salesChannelCode + \\\" \\\" + salesChannel.salesChannelDescription}}</div>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.mainGroup.salesChannels\\\" choices=\\\"vm.salesChannels\\\" order-by=\\\"'salesChannelCode'\\\" item-renderer=\\\"['salesChannelCode','salesChannelDescription']\\\" />\\n </div>\\n </ca-form-group-row> \\n\\n <ca-form-group-row label=\\\"'maingroup.vat'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.mainGroup.vat.vatDescription}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\" class=\\\"form-group\\\" ng-class=\\\"{'has-error': !vm.isMainGroupVatValid()}\\\">\\n <ca-singleselect model=\\\"vm.mainGroup.vat\\\" choices=\\\"vm.vats\\\" order-by=\\\"'vatDescription'\\\" item-renderer=\\\"'vatDescription'\\\" />\\n </div>\\n </ca-form-group-row>\\n \\n \\n <ca-form-group-row label=\\\"'maingroup.salesAccount'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n <label>{{vm.mainGroup.salesAccount.accountNumber}} {{vm.mainGroup.salesAccount.accountName}}</label>\\n </div>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.mainGroup.salesAccount\\\" choices=\\\"vm.accounts\\\" order-by=\\\"'accountNumber'\\\" item-renderer=\\\"['accountNumber','accountName']\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'maingroup.discountAccount'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n <label>{{vm.mainGroup.discountAccount.accountNumber}} {{vm.mainGroup.discountAccount.accountName}}</label>\\n </div>\\n <ca-singleselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.mainGroup.discountAccount\\\" choices=\\\"vm.accounts\\\" order-by=\\\"'accountNumber'\\\" item-renderer=\\\"['accountNumber','accountName']\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'maingroup.isvariant'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.mainGroup.isVariant ? ('common.true' | translate) : ('common.false' | translate)}}</label>\\n </div> \\n <div ng-if=\\\"vm.isEditing\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.mainGroup.isVariant\\\" />\\n <i></i>\\n </label>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'maingroup.variant1'\\\" ng-show=\\\"vm.mainGroup.isVariant\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.mainGroup.variant1.variantName}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ui-select ng-model=\\\"vm.mainGroup.variant1\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.variants | filter:vm.filterVariant1(variant)\\\">\\n <span>{{variant.variantName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"(vm.mainGroup.variant2) ? vm.mainGroup.variant2.variantName : 'maingroup.preferredVariantGroup2'\\\" ng-show=\\\"vm.mainGroup.isVariant\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <label>{{vm.mainGroup.preferredVariantGroup2.groupName}}</label>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.mainGroup.preferredVariantGroup2\\\" choices=\\\"vm.preferredVariantGroups2\\\" order-by=\\\"'groupName'\\\" item-renderer=\\\"'groupName'\\\" filter-by=\\\"['groupName']\\\" />\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row ng-if=\\\"!vm.isNewMainGroup && vm.intrastats.length > 0\\\" label=\\\"'maingroup.intrastatnumber'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n <div ng-repeat=\\\"intrastat in vm.mainGroup.intrastats\\\">{{intrastat.code}} {{intrastat.internalDescription}}</div>\\n </div>\\n <ca-multiselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.mainGroup.intrastats\\\" choices=\\\"vm.intrastats\\\" order-by=\\\"'code'\\\" item-renderer=\\\"['code','internalDescription']\\\" />\\n </ca-form-group-row>\\n\\n <div class=\\\"form-group row\\\"> </div>\\n \\n <ca-form-group-row ng-if=\\\"!vm.isNewMainGroup\\\" label=\\\"'maingroup.brands'\\\">\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.selectedBrands\\\"\\n choices=\\\"vm.brands\\\"\\n placeholder=\\\"'article.addBrand'\\\"\\n item-renderer=\\\"['brandCode','brandDescription']\\\" />\\n </div>\\n <div style=\\\"max-height:500px; overflow:auto;\\\">\\n <div ng-repeat=\\\"itemGroup in vm.mainGroup.itemGroups | orderBy: 'brand.brandDescription'\\\">\\n <span ng-hide=\\\"vm.isEditing\\\"> {{itemGroup.brand.brandCode}} {{itemGroup.brand.brandDescription}} </span>\\n <a ng-click=\\\"vm.toggleDisplayForm(itemGroup)\\\" ng-show=\\\"vm.isEditing\\\"> {{itemGroup.brand.brandCode}} {{itemGroup.brand.brandDescription}} </a>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"itemGroup.showEditForm && vm.isEditing\\\">\\n <ca-item-group-inline item-group=\\\"itemGroup\\\" vats=\\\"vm.vats\\\" variant-groups=\\\"vm.variantGroups\\\" />\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"itemGroup.showEditForm && vm.isEditing\\\">\\n \\n </div>\\n </div>\\n </div>\\n </ca-form-group-row>\\n <div class=\\\"form-group row\\\"> </div>\\n </div>\\n \\n <div class=\\\"col-sm-12 col-md-12 col-lg-6\\\">\\n <label>{{'maingroup.showAttributes'| translate}}:</label>\\n <div>\\n <table style=\\\"width:100%\\\">\\n <tr>\\n <td><label>{{'article.length' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.productLength\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n <tr>\\n <td><label>{{'article.width' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.productWidth\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n <tr>\\n <td><label>{{'article.height' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.productHeight\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n <tr>\\n <td><label>{{'article.weight' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.productWeight\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n <tr>\\n <td><label>{{'article.intrastatnumber' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.intrastat\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n <tr>\\n <td><label>{{'article.meursing' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.meursing\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n <tr>\\n <td><label>{{'article.storageLocation' | translate}}</label></td>\\n <td><ca-singleselect model=\\\"vm.attributeVisibility.storageLocation\\\" choices=\\\"vm.articleCollectionTypes\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing\\\" /></td>\\n </tr>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.maingroups.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <div class=\\\"text-center header-row\\\">\\n <span style=\\\"cursor: pointer; display: inline-block; margin-left: 20px;\\\" class=\\\"pull-left\\\">\\n <i class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\" ng-click=\\\"vm.sortMainGroups('mainGroupCode')\\\"></i> \\n </span>\\n <span style=\\\"cursor: pointer; display: inline-block; margin-right: 75px;\\\">\\n <i class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\" ng-click=\\\"vm.sortMainGroups('mainGroupDescription')\\\"></i> \\n </span>\\n </div>\\n <a ng-click=\\\"$state.go('product.maingroups.maingroup', {mainGroupId: mainGroup.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"mainGroup in vm.mainGroups\\\" ng-class=\\\"{'focus m-l-none': mainGroup.id === vm.selectedMainGroupId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': mainGroup.id === vm.selectedMainGroupId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{mainGroup.mainGroupCode}}</span>\\n <span class=\\\"pull-right text-ellipsis lg-label\\\">{{mainGroup.mainGroupDescription}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n \\n \\n </div>\\n \\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-11\\\" style=\\\"margin-bottom: 3px;\\\">\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" placeholder=\\\"{{'common.search' | translate}}\\\" \\n ng-keydown=\\\"($event.key === 'Enter') ? vm.search() : undefined\\\"> \\n</div>\\n<div class=\\\"col-lg-1\\\" style=\\\"margin-bottom: 3px;\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.search()\\\"> {{'common.search' | translate}} </button>\\n</div>\\n\\n<div class=\\\"col-lg-4\\\">\\n <div class=\\\"col-lg-6\\\">\\n <label class=\\\"control-label\\\">\\n {{'article.saleschannel' | translate}}:\\n </label>\\n </div>\\n <div class=\\\"col-lg-6\\\">\\n <ui-select ng-model=\\\"vm.selectedSalesChannel\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.salesChannelCode}} {{$select.selected.salesChannelDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"salesChannel in vm.salesChannels | filter:{'salesChannelDescription': $select.search}\\\">\\n <span>{{salesChannel.salesChannelCode}} {{salesChannel.salesChannelDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n</div>\\n<div class=\\\"col-lg-4\\\">\\n <div class=\\\"col-lg-6\\\">\\n <label class=\\\"control-label\\\">\\n {{'article.articlecollection' | translate}}:\\n </label>\\n </div>\\n <div class=\\\"col-lg-6\\\">\\n <ui-select ng-model=\\\"vm.selectedArticleCollection\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.collectionCode}} {{$select.selected.collectionDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"artColl in vm.articleCollections | filter:{'collectionDescription': $select.search}\\\">\\n <span>{{artColl.collectionDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n</div>\\n<div class=\\\"col-lg-4\\\">\\n <table style=\\\"width: 100%;\\\"> \\n <thead>\\n <th style=\\\"width:5%;\\\"></th>\\n <th style=\\\"width:40%;\\\"></th>\\n <th style=\\\"width:50%;\\\"></th>\\n </thead>\\n <tr> \\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.usePriceRange\\\" />\\n <i></i>\\n </label>\\n </td>\\n <td>\\n <label class=\\\"control-label\\\">\\n {{'pricelist.minprice' | translate}}:\\n </label>\\n </td>\\n <td>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-bg text-md\\\" ng-model=\\\"vm.minPrice\\\" ng-disabled=\\\"!vm.usePriceRange\\\">\\n </td>\\n </tr>\\n <tr> \\n <td>\\n \\n </td>\\n <td>\\n <label class=\\\"control-label\\\">\\n {{'pricelist.maxprice' | translate}}:\\n </label>\\n </td>\\n <td>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-bg text-md\\\" ng-model=\\\"vm.maxPrice\\\" ng-disabled=\\\"!vm.usePriceRange\\\">\\n </td>\\n </tr>\\n </table>\\n</div>\\n\\n<div class=\\\"col-lg-8\\\"> </div>\\n<div class=\\\"col-lg-8\\\">\\n <label class=\\\"i-checks m-t-xs\\\" style=\\\"margin-right:20px;\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.shouldGetOnlyNewArticles\\\" />\\n <i></i>\\n {{'article.newarticles' | translate}}\\n </label>\\n <label class=\\\"i-checks m-t-xs\\\" style=\\\"margin-right:20px;\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.shouldGetOnlyCurrentArticles\\\" />\\n <i></i>\\n {{'article.currentarticles' | translate}} \\n </label>\\n <label class=\\\"i-checks m-t-xs\\\" style=\\\"margin-right:20px;\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.shouldGetOnlyArticlesWithSetPrices\\\" />\\n <i></i>\\n {{'article.withsetprices' | translate}} \\n </label>\\n <label class=\\\"i-checks m-t-xs\\\" style=\\\"margin-right:20px;\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.shouldGetOnlyArticlesWithVolumeDiscounts\\\" />\\n <i></i>\\n {{'article.withvolumediscounts' | translate}} \\n </label>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\" ng-show=\\\"vm.editorArticles.length != 0\\\">\\n <div class=\\\"col-lg-8\\\">\\n <div class=\\\"col-lg-3\\\" style=\\\"padding:10px 0;\\\">\\n <div class=\\\"pull-left\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.save()\\\"> {{'common.save' | translate}} </button>\\n </div>\\n </div>\\n <div class=\\\"col-lg-3\\\" style=\\\"padding:10px 0;\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.useVariantDetail1Level\\\" />\\n <i></i>\\n {{'article.variantdetail1' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-3\\\" style=\\\"padding:10px 0;\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.useVariantDetail2Level\\\" />\\n <i></i>\\n {{'article.variantdetail2' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-3\\\" style=\\\"padding:10px 0;\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showVolumeDiscountRules\\\" />\\n <i></i>\\n {{'volumeDiscount.volumeDiscount' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-3\\\" style=\\\"padding:10px 0;\\\" ng-hide=\\\"!vm.useVariantDetail1Level || !vm.useVariantDetail2Level\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showSku\\\" />\\n <i></i>\\n {{'common.show' | translate}} {{'purchaseorderanalysis.sku' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-3\\\" style=\\\"padding:10px 0;\\\" ng-hide=\\\"!vm.useVariantDetail1Level || !vm.useVariantDetail2Level\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showBarcode\\\" />\\n <i></i>\\n {{'common.show' | translate}} {{'article.barcode' | translate}}\\n </label>\\n </div>\\n </div>\\n <div class=\\\"col-lg-4\\\" style=\\\"padding:10px 0;\\\">\\n <ui-select ng-model=\\\"vm.itemsPerPage\\\" theme=\\\"bootstrap\\\" class=\\\"pull-right\\\" style=\\\"max-width: 150px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"itemPerPage in vm.itemsPerPageAlternatives\\\">\\n <span>{{ itemPerPage }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n</div>\\n\\n<div class=\\\"col-lg-12\\\">\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination \\n boundary-links=\\\"true\\\" \\n total-items=\\\"vm.editorArticlesTotal\\\" \\n items-per-page=\\\"vm.itemsPerPage\\\" \\n max-size=\\\"10\\\" \\n ng-change=\\\"vm.loadArticles()\\\" \\n ng-model=\\\"vm.currentPage\\\" \\n class=\\\"pagination-sm\\\" \\n previous-text=\\\"‹\\\" \\n next-text=\\\"›\\\" \\n first-text=\\\"«\\\" \\n last-text=\\\"»\\\"\\n ng-show=\\\"vm.editorArticles.length != 0\\\"></div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.editorArticles.length != 0\\\">\\n <ui-select ng-model=\\\"vm.priceListPriceDisplaySelection\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match>\\n {{$select.selected.label | translate}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"selection in vm.priceListPriceDisplaySelections\\\">\\n <span>{{selection.label | translate}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.editorArticles.length != 0\\\">\\n <table class=\\\"table table-bordered table-hover table-condensed\\\" ng-show=\\\"vm.editorArticles.length != 0\\\">\\n <thead>\\n <tr>\\n <td colspan=\\\"{{ 1 + (vm.useVariantDetail1Level ? 1 : 0) + (vm.useVariantDetail2Level ? 1 : 0) }}\\\"> {{'article.articlename' | translate}} </td>\\n <td ng-if=\\\"vm.useVariantDetail2Level && vm.showSku\\\"> {{'purchaseorderanalysis.sku' | translate}} </td>\\n <td ng-if=\\\"vm.useVariantDetail2Level && vm.showBarcode\\\"> {{'article.barcode' | translate}} </td>\\n <td ng-repeat=\\\"priceList in vm.priceListHeads | orderBy:vm.priceListSort\\\"> \\n {{(priceList.pricelistName == 'SYS') ? ('pricelist.salesprice' | translate) : priceList.pricelistName}} ({{priceList.currency.code}}) \\n </td>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"editorArticle in vm.editorArticles track by $index\\\" ng-if=\\\"editorArticle\\\">\\n <td>{{editorArticle.articleDescription}}</td>\\n <td ng-if=\\\"editorArticle.variantDetail1\\\">{{ editorArticle.variantDetail1.variantDetailName }}</td>\\n <td ng-if=\\\"editorArticle.variantDetail2\\\">{{ editorArticle.variantDetail2.variantDetailName }}</td>\\n <td ng-if=\\\"vm.showSku && editorArticle.variantDetail1 && editorArticle.variantDetail2\\\">{{ editorArticle.articleVariantSku }}</td>\\n <td ng-if=\\\"vm.showBarcode && editorArticle.variantDetail1 && editorArticle.variantDetail2\\\">{{ editorArticle.articleVariantBarcode }}</td>\\n <td ng-repeat=\\\"price in editorArticle.priceListPrices | orderBy:vm.priceListSort\\\" style=\\\"padding: 5px 5px;\\\">\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"!vm.showVolumeDiscountRules\\\" style=\\\"padding:0;\\\">\\n <ca-price-range-input ng-show=\\\"vm.priceListPriceDisplaySelection.type == 'salesPrice'\\\"\\n price-range-item=\\\"price\\\" \\n on-price-range-item-changed=\\\"vm.handlePriceChange(priceRangeItem, editorArticle)\\\"\\n max-price-field-name=\\\"'maxPrice'\\\"\\n min-price-field-name=\\\"'minPrice'\\\"> </ca-price-range-input>\\n <ca-price-range-input ng-show=\\\"vm.priceListPriceDisplaySelection.type == 'previousPrice'\\\"\\n price-range-item=\\\"price\\\" \\n on-price-range-item-changed=\\\"vm.handlePriceChange(priceRangeItem, editorArticle)\\\"\\n max-price-field-name=\\\"'previousMaxPrice'\\\"\\n min-price-field-name=\\\"'previousMinPrice'\\\"> </ca-price-range-input>\\n </div>\\n <div ng-show=\\\"vm.showVolumeDiscountRules\\\" style=\\\"padding:0;\\\">\\n <ca-volume-discount-selector price-range-item=\\\"price\\\" volume-discounts=\\\"vm.volumeDiscounts\\\"> </ca-volume-discount-selector>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination \\n boundary-links=\\\"true\\\" \\n total-items=\\\"vm.editorArticlesTotal\\\" \\n items-per-page=\\\"vm.itemsPerPage\\\" \\n max-size=\\\"10\\\" \\n ng-change=\\\"vm.loadArticles()\\\" \\n ng-model=\\\"vm.currentPage\\\" \\n class=\\\"pagination-sm\\\" \\n previous-text=\\\"‹\\\" \\n next-text=\\\"›\\\" \\n first-text=\\\"«\\\" \\n last-text=\\\"»\\\"\\n ng-show=\\\"vm.editorArticles.length != 0\\\"></div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"input-group list-menu\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control no-border no-bg text-md enterAsTab\\\"\\n style=\\\"border:0px; padding:0px; height:auto;\\\"\\n ng-model=\\\"vm.inputBoxDisplayValue\\\" \\n ng-change=\\\"vm.handleInputChange()\\\"\\n ng-focus=\\\"vm.inputBoxFocused()\\\"\\n ng-blur=\\\"vm.inputBoxBlurred()\\\"\\n ng-style=\\\"vm.getInputBoxStyle($item)\\\"\\n ng-keypress=\\\"vm.handleKeypress($event)\\\"\\n ng-disabled=\\\"!vm.priceRangeItem.isPriceOnAnyPriceList && vm.priceRangeItem.priceListId != 0\\\"\\n enter-as-tab>\\n <span class=\\\"input-group-addon input-xs no-border no-bg\\\" ng-if=\\\"!vm.priceRangeItem.isCalculatedPrice && !vm.priceRangeItem.isSystemPrice\\\">\\n <a ng-click=\\\"vm.markForRemoval()\\\"> \\n <i class=\\\"fa fa-times text-danger\\\"></i> \\n </a>\\n </span>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-group\\\" >\\n <ui-select ng-model=\\\"vm.selectedVolumeDiscount\\\" ng-change=\\\"vm.changeVolumeDiscount()\\\" theme=\\\"bootstrap\\\" enter-as-tab class=\\\" enterAsTab\\\" ng-disabled=\\\"!vm.volumeDiscountAllowed\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.name}}</ui-select-match>\\n <ui-select-choices repeat=\\\"volumeDiscout in vm.volumeDiscounts | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['name']}\\\">\\n <span>{{volumeDiscout.name}}</span>\\n </ui-select-choices>\\n </ui-select>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <ca-article-selection on-search-context-changed=\\\"vm.searchContextChanged(searchContext)\\\"></ca-article-selection>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <!-- \\n The component responsible for editing and persisting the actual price list data \\n -->\\n <div class=\\\"col-lg-12\\\">\\n <ca-pricelist-grid\\n article-ids=\\\"vm.selectedArticleIds\\\"\\n saleschannel-id=\\\"vm.selectedSalesChannelId\\\"\\n article-collection-id=\\\"vm.selectedArticleCollectionId\\\">\\n </ca-pricelist-grid>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.savePricelist()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewPricelist\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.pricelist.pricelistCode + \\\" \\\" + vm.pricelist.pricelistName}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'pricelist.pricelistCode'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.pricelist.pricelistCode}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <div ng-class=\\\"{'has-error': !vm.isPricelistCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"pricelistCode\\\" ng-model=\\\"vm.pricelist.pricelistCode\\\" enter-as-tab />\\n </div>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'pricelist.pricelistName'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.pricelist.pricelistName}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <div ng-class=\\\"{'has-error': !vm.isPricelistNameValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"pricelistName\\\" ng-model=\\\"vm.pricelist.pricelistName\\\" enter-as-tab />\\n </div>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'pricelist.currency'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.pricelist.currency.code}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <div ng-class=\\\"{'has-error': !vm.hasChosenCurrency()}\\\">\\n <ca-singleselect model=\\\"vm.pricelist.currency\\\" choices=\\\"vm.currencies\\\" order-by=\\\"'code'\\\" item-renderer=\\\"['code']\\\" mandatory=\\\"true\\\" />\\n </div>\\n </div>\\n </ca-form-group-row>\\n \\n <ca-form-group-row label=\\\"'pricelist.salesChannel'\\\">\\n <div ng-if=\\\"!vm.isNewPricelist\\\">{{vm.pricelist.salesChannel.salesChannelCode + ' ' + vm.pricelist.salesChannel.salesChannelDescription}}</div>\\n <div ng-if=\\\"vm.isNewPricelist\\\" ng-class=\\\"{'has-error': !vm.isSalesChannelCodeValid()}\\\">\\n <ca-singleselect model=\\\"vm.pricelist.salesChannel\\\" choices=\\\"vm.salesChannels\\\" order-by=\\\"'salesChannelCode'\\\" item-renderer=\\\"['salesChannelCode','salesChannelDescription']\\\" mandatory=\\\"true\\\" />\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'pricelist.customerGroup'\\\">\\n <div ng-if=\\\"!vm.isNewPricelist\\\">{{vm.pricelist.customerGroup.code + ' ' + vm.pricelist.customerGroup.name}}</div>\\n <div ng-if=\\\"vm.isNewPricelist\\\">\\n <ca-singleselect model=\\\"vm.pricelist.customerGroup\\\" choices=\\\"vm.customerGroups\\\" order-by=\\\"'name'\\\" item-renderer=\\\"['code','name']\\\" />\\n </div>\\n </ca-form-group-row> \\n \\n <ca-form-group-row label=\\\"'pricelist.priceFactor'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <div>{{ vm.pricelist.priceFactor * 100 + '%' }}</div>\\n <div style=\\\"margin-bottom:5px; font-style: italic;\\\">{{ 'common.example' | translate }}: 299 {{ vm.pricelist.currency.code }} ({{ 'article.originalprice' | translate }}) → {{ (299 * vm.pricelist.priceFactor).toFixed(2) }} {{ vm.pricelist.currency.code }} ({{ 'article.priceOnPricelist' | translate }})</div>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input class=\\\"form-control enterAsTab\\\"\\n type=\\\"number\\\" step=\\\"1\\\"\\n name=\\\"priceFactor\\\"\\n ng-model=\\\"vm.pricelist.priceFactor\\\"\\n enter-as-tab\\n percent-input />\\n <div style=\\\"margin-bottom:5px; font-style: italic;\\\">{{ 'common.example' | translate }}: 299 {{ vm.pricelist.currency.code }} ({{ 'article.originalprice' | translate }}) → {{ (299 * vm.pricelist.priceFactor).toFixed(2) }} {{ vm.pricelist.currency.code }} ({{ 'article.priceOnPricelist' | translate }})</div>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'pricelist.exchangeRate'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">\\n <div>{{vm.pricelist.exchangeRate | number}}</div>\\n <div style=\\\"margin-bottom:5px; font-style: italic;\\\">\\n {{ 'common.example' | translate }}:\\n <span>299 SEK → {{ (299 / vm.pricelist.exchangeRate).toFixed(2) }} {{ vm.pricelist.currency.code }}</span>,\\n <span>299 {{ vm.pricelist.currency.code }} → {{ (299 * vm.pricelist.exchangeRate).toFixed(2) }} SEK</span>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input class=\\\"form-control enterAsTab\\\"\\n type=\\\"number\\\"\\n step=\\\"1\\\"\\n name=\\\"exchangeRate\\\"\\n ng-model=\\\"vm.pricelist.exchangeRate\\\"\\n enter-as-tab />\\n <div style=\\\"margin-bottom:5px; font-style: italic;\\\">\\n {{ 'common.example' | translate }}:\\n <span>299 SEK → {{ (299 / vm.pricelist.exchangeRate).toFixed(2) }} {{ vm.pricelist.currency.code }}</span>,\\n <span>299 {{ vm.pricelist.currency.code }} → {{ (299 * vm.pricelist.exchangeRate).toFixed(2) }} SEK</span>\\n </div>\\n </div>\\n </ca-form-group-row>\\n <!-- <ca-form-group-row label=\\\"'pricelist.leastNetProfitPercentage'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.pricelist.leastNetProfitPercentage | number}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"number\\\" step=\\\"any\\\" class=\\\"form-control enterAsTab\\\" name=\\\"leastNetProfitPercentage\\\" ng-model=\\\"vm.pricelist.leastNetProfitPercentage\\\" enter-as-tab />\\n </div>\\n </ca-form-group-row> -->\\n <ca-form-group-row label=\\\"'pricelist.psychologicalPrice'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.pricelist.psychologicalPrice.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.pricelist.psychologicalPrice\\\" choices=\\\"vm.psychologicalPrices\\\" order-by=\\\"'name'\\\" item-renderer=\\\"['name']\\\" />\\n </div>\\n </ca-form-group-row>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.pricelists.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.pricelists.pricelist', {pricelistId: pricelist.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"pricelist in vm.pricelists\\\" ng-class=\\\"{'focus m-l-none': pricelist.id === vm.selectedPricelistId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': pricelist.id === vm.selectedPricelistId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{pricelist.pricelistCode}}</span><span class=\\\"pull-right text-ellipsis lg-label\\\">{{pricelist.pricelistName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div class=\\\"col lter b-r productlist-w-transition\\\" ng-class=\\\"{ 'w-3xs' : !$state.params.showArticleList, \\n 'w-xl' : $state.params.showArticleList || $state.params.showArticleList === undefined}\\\" \\n ui-view=\\\"productList\\\" ng-hide=\\\"$state.includes('product.importfileslist') || \\n $state.includes('product.pricelisteditor') || \\n $state.includes('product.productimport') ||\\n $state.includes('product.productimporteditor')\\\"></div>\\n \\n <div class=\\\"col w-xxl bg-white-only\\\" ui-view=\\\"productView\\\" ng-hide=\\\"$state.includes('product.maingroups') ||\\n $state.includes('product.articles.new') || \\n $state.includes('product.articles.article') || \\n $state.includes('product.importfileslist') || \\n $state.includes('product.productimport') || \\n $state.includes('product.pricelisteditor') ||\\n $state.includes('product.productimporteditor')\\\"></div>\\n \\n <div class=\\\"col\\\" ui-view=\\\"wideColumnView\\\" ng-show=\\\"$state.includes('product.maingroups') ||\\n $state.includes('product.articles.new') || \\n $state.includes('product.articles.article') || \\n $state.includes('product.importfileslist') || \\n $state.includes('product.productimport') || \\n $state.includes('product.pricelisteditor') ||\\n $state.includes('product.productimporteditor')\\\"></div>\\n \\n <div class=\\\"col\\\" ng-hide=\\\"$state.includes('product.maingroups') ||\\n $state.includes('product.articles.new') || \\n $state.includes('product.articles.article') || \\n $state.includes('product.importfileslist') || \\n $state.includes('product.pricelisteditor') || \\n $state.includes('product.productimport') ||\\n $state.includes('product.productimporteditor')\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <label class=\\\"col-sm-4 control-label\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\">{{'productimport.file' | translate}}:</label>\\n <div class=\\\"col-sm-8\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\">\\n <div>\\n <label class=\\\"btn btn-default btn-file\\\">\\n {{'stock.readfile' | translate}}<input id=\\\"xlf\\\" type=\\\"file\\\" name=\\\"xlfile\\\" style=\\\"display:none;\\\">\\n </label>\\n \\n <div ng-bind=\\\"importfile\\\"></div>\\n <button ng-click=\\\"vm.reloadFile()\\\" ng-show=\\\"vm.showReload\\\" title=\\\"Ladda om fil\\\" class=\\\"btn btn-default btn-sm\\\" type=\\\"button\\\" style=\\\"float:right;\\\">\\n <i class=\\\"fa fa-refresh fa-fw\\\"></i>\\n </button>\\n </div>\\n <label>{{vm.importFileName}}</label>\\n </div>\\n <div style=\\\"clear:both;height:1px;\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\"> </div>\\n <div ng-show=\\\"vm.importType === 'existingImportFile'\\\">\\n <div>\\n <div class=\\\"wrapper b-t text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadImportFiles()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n\\n <div class=\\\"col-md-12\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <th>{{'common.filename' | translate}}</th>\\n <th>{{'common.importdate' | translate}}</th>\\n <th>{{'productimport.importtype' | translate}}</th>\\n <th>{{'common.approved' | translate}}</th>\\n <!-- <th>{{'order.order' | translate}}</th> -->\\n <th style=\\\"text-align:right;\\\">{{'common.delete' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"file in vm.importFiles\\\">\\n <tr>\\n <td><a ng-click=\\\"vm.goToEditor(file)\\\" class=\\\"ca-celllink\\\">{{ file.fileName }}</a></td>\\n <td>{{ file.importDate | date: 'yyyy-MM-dd HH:mm' }}</td>\\n <td>\\n {{(file.importType == 'product') ? ('productimport.product' | translate) : ''}}\\n {{(file.importType == 'order') ? ('productimport.order' | translate) : ''}}\\n </td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-disabled=\\\"true\\\" ng-checked=\\\"file.isApproved\\\" />\\n <i></i>\\n </label>\\n </td>\\n <!-- <td><a ng-click=\\\"vm.goToOrder(file.order)\\\" class=\\\"ca-celllink\\\">{{ file.order.orderNumber }}</a></td> -->\\n <td><ca-confirm-button confirm-title=\\\"'common.confirmDelete'\\\" on-confirm-pressed=\\\"vm.deleteImportFile(file.id)\\\" ng-show=\\\"!file.isApproved\\\"></ca-confirm-button></td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n\\n <div> </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<!-- <span style=\\\"margin-right:20px\\\"><input type=\\\"radio\\\" ng-model=\\\"vm.multiplicity\\\" value=\\\"single\\\" checked=\\\"checked\\\" ng-disabled=\\\"vm.disabledBy\\\"> {{ 'productimport.setSpecific' | translate }}</span> -->\\n<!-- <span><input type=\\\"radio\\\" ng-model=\\\"vm.multiplicity\\\" value=\\\"multiple\\\" ng-disabled=\\\"(!vm.columnNames || vm.columnNames.length === 0) || vm.disabledBy\\\"> {{ 'productimport.getFromFile' | translate }}</span> -->\\n\\n<wj-input-date ng-show=\\\"vm.multiplicity === 'single'\\\" ng-disabled=\\\"vm.disabledBy\\\"\\n value=\\\"vm.dateModel\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n</wj-input-date>\\n<!-- min=\\\"vm.dateMin\\\"\\n max=\\\"vm.dateMax\\\"\\n-->\\n<ui-select ng-model=\\\"vm.columnModel\\\" ng-show=\\\"vm.multiplicity === 'multiple'\\\" ng-disabled=\\\"(!vm.columnNames || vm.columnNames.length === 0) || vm.disabledBy\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{vm.columnPlaceholder | translate}}\\\">{{vm.columnRenderItem('selected', $select.selected)}}</ui-select-match>\\n <ui-select-choices repeat=\\\"item in vm.columnNames | orderBy:vm.columnOrderBy | filter:vm.filterColumn($select.search) track by item.id\\\">\\n {{vm.columnRenderItem('choice', item)}}\\n </ui-select-choices>\\n</ui-select>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<span style=\\\"margin-right:20px\\\"><input type=\\\"radio\\\" ng-model=\\\"vm.multiplicity\\\" value=\\\"single\\\" checked=\\\"checked\\\" ng-disabled=\\\"vm.disabledBy\\\"> {{ 'productimport.setSpecific' | translate }}</span>\\n<span><input type=\\\"radio\\\" ng-model=\\\"vm.multiplicity\\\" value=\\\"multiple\\\" ng-disabled=\\\"(!vm.columnNames || vm.columnNames.length === 0) || vm.disabledBy\\\"> {{ 'productimport.getFromFile' | translate }}</span>\\n\\n<ui-select ng-model=\\\"vm.choiceModel\\\" ng-show=\\\"vm.multiplicity === 'single'\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.disabledBy\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{vm.choicePlaceholder | translate}}\\\">{{vm.choiceRenderItem('selected', $select.selected)}}</ui-select-match>\\n <ui-select-choices repeat=\\\"item in vm.choices | orderBy:vm.choiceOrderBy | filter:vm.filterChoice($select.search) track by item.id\\\">\\n {{vm.choiceRenderItem('choice', item)}}\\n </ui-select-choices>\\n</ui-select>\\n\\n<ui-select ng-model=\\\"vm.columnModel\\\" ng-show=\\\"vm.multiplicity === 'multiple'\\\" ng-disabled=\\\"(!vm.columnNames || vm.columnNames.length === 0) || vm.disabledBy\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{vm.columnPlaceholder | translate}}\\\">{{vm.columnRenderItem('selected', $select.selected)}}</ui-select-match>\\n <ui-select-choices repeat=\\\"item in vm.columnNames | orderBy:vm.columnOrderBy | filter:vm.filterColumn($select.search) track by item.id\\\">\\n {{vm.columnRenderItem('choice', item)}}\\n </ui-select-choices>\\n</ui-select>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button ng-click=\\\"vm.validateImportFile()\\\" class=\\\"btn btn-sm\\\" style=\\\"margin-top: 0px;\\\" ng-class=\\\"{ true : 'btn-default', false : 'btn-primary' }[vm.readyForImport]\\\" type=\\\"button\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\">{{ 'common.validate' | translate }}</button>\\n <button ng-click=\\\"vm.confirmGoToEditor()\\\" ng-disabled=\\\"!vm.readyForImport\\\" class=\\\"btn btn-sm\\\" style=\\\"margin-top: 0px;\\\" ng-class=\\\"{ true : 'btn-primary', false : 'btn-default' }[vm.readyForImport]\\\" type=\\\"button\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\">{{ 'productimport.import' | translate }}</button>\\n <span class=\\\"ca-warning \\\" ng-show=\\\"vm.importType === 'newImportFile' && !vm.readyForImport\\\">{{ 'productimport.notReadyForImport' | translate }}</span>\\n <span class=\\\"ca-success\\\" ng-show=\\\"vm.importType === 'newImportFile' && vm.readyForImport\\\">{{ 'productimport.readyForImport' | translate }}</span>\\n <span> </span>\\n </span>\\n </div>\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.importType === 'newImportFile'}\\\"><a ng-click=\\\"vm.changeToImportNewFileView()\\\">{{ 'productimport.new' | translate }}</a></li>\\n <li ng-class=\\\"{'active' : vm.importType === 'existingImportFile'}\\\"><a ng-click=\\\"vm.changeToUseExistingFileView()\\\">{{ 'productimport.existing' | translate }}</a></li>\\n </ul>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-sm-12 col-md-12 col-lg-6\\\">\\n <ca-error-list error-list=\\\"vm.errorList\\\" label=\\\"'productimport.validationSummary'\\\"></ca-error-list>\\n <div style=\\\"clear:both; height:1px;\\\"> </div>\\n\\n <div id=\\\"filelistAccordion\\\">\\n <h4 ng-show=\\\"vm.importType === 'newImportFile'\\\">{{ 'productimport.fileSettings' | translate }}</h4>\\n <!-- T1 -->\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\">\\n <ca-form-group-row label=\\\"'productimport.fileType'\\\">\\n <div class=\\\"radio\\\">\\n <label class=\\\"i-checks\\\">\\n <input type=\\\"radio\\\" ng-model=\\\"vm.importFileType\\\" value=\\\"productImport\\\">\\n <i> </i>\\n {{'productimport.productImport' | translate }}\\n </label>\\n </div>\\n <div class=\\\"radio\\\">\\n <label class=\\\"i-checks\\\">\\n <input type=\\\"radio\\\" ng-model=\\\"vm.importFileType\\\" value=\\\"orderImport\\\">\\n <i> </i>\\n {{'productimport.orderImport' | translate }}\\n </label>\\n </div>\\n </ca-form-group-row>\\n </div>\\n \\n\\n <div style=\\\"clear:both;height:1px;\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\"> </div>\\n <!-- T1 -->\\n <ca-import-file-list import-type=\\\"vm.importType\\\" on-import-file-changed=\\\"vm.handleImportFile(file, revalidate)\\\"></ca-import-file-list>\\n\\n <div class=\\\"col-sm-4\\\"> </div>\\n <div class=\\\"col-sm-8\\\">\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'importFileList'\\\"></ca-error-list>\\n </div>\\n <div style=\\\"clear:both; height:1px;\\\"> </div>\\n </div>\\n \\n <div style=\\\"text-align: center;\\\"><span style=\\\"display: inline-block; width:80%; border-bottom:1px solid #eee; height:10px; margin-bottom:5px;\\\"> </span></div>\\n\\n <div id=\\\"othersettings\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\" ng-class=\\\"{ true: 'ca-accordionUnavailable' }[!vm.mandatoryAccordionAvailable()]\\\">\\n <h4>{{ 'productimport.othersettings' | translate }}</h4>\\n <div class=\\\"col-lg-7 m-b-xs\\\">\\n {{ 'productimport.trygetpricesfromproduct' | translate }}:\\n </div>\\n <div class=\\\"col-lg-5 m-b-xs\\\">\\n <div style=\\\"align-items: center; vertical-align: middle; font-size: smaller;\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.usePricesFromExistingProducts.forPurchaseCost\\\" ng-disabled=\\\"!vm.mandatoryAccordionAvailable()\\\" ng-click=\\\"vm.readyForImport = false\\\"/>\\n  {{ 'productimport.purchaseCost' | translate }}\\n </div>\\n <div style=\\\"align-items: center; vertical-align: middle; font-size: smaller;\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.usePricesFromExistingProducts.forSalesPrice\\\" ng-disabled=\\\"!vm.mandatoryAccordionAvailable()\\\" ng-click=\\\"vm.readyForImport = false\\\"/>\\n  {{ 'productimport.salesPrice' | translate }}\\n </div>\\n <div style=\\\"align-items: center; vertical-align: middle; font-size: smaller;\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.usePricesFromExistingProducts.forPreviousPrice\\\" ng-disabled=\\\"!vm.mandatoryAccordionAvailable()\\\" ng-click=\\\"vm.readyForImport = false\\\"/>\\n  {{ 'productimport.previousPrice' | translate }}\\n </div>\\n </div>\\n <div class=\\\"col-lg-12 m-b-xs\\\" ng-show=\\\"vm.usePricesFromExistingProducts.forPurchaseCost || vm.usePricesFromExistingProducts.forSalesPrice || vm.usePricesFromExistingProducts.forPreviousPrice\\\"\\n style=\\\"background-color: gold; color:black; border-color: goldenrod; border-width:1px; border-radius: 10px; font-size: smaller;\\\">\\n <b>{{ 'common.warning' | translate }}:</b> <br> \\n <span ng-bind-html=\\\"vm.getPricesFromProductWarningMessage()\\\">{{ vm.getPricesFromProductWarningMessage() }}</span>\\n </div>\\n\\n <div class=\\\"col-lg-7 m-b-xs m-t-xs\\\" ng-show=\\\"vm.isAllowedToImportSku\\\">\\n {{'productimport.productImportSku' | translate }}: <span style=\\\"font-size:smaller\\\"><i>({{ 'productimport.skunotcommonlyused' | translate }})</i></span>\\n </div>\\n <div class=\\\"col-lg-5 m-b-xs m-t-xs\\\" ng-show=\\\"vm.isAllowedToImportSku\\\">\\n <div style=\\\"align-items: center; vertical-align: middle; font-size: smaller;\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.importSku\\\" ng-disabled=\\\"!vm.mandatoryAccordionAvailable()\\\"/>\\n  {{ 'common.yes' | translate }}\\n </div>\\n </div>\\n <div class=\\\"col-lg-12 m-b-xs\\\" ng-show=\\\"vm.importSku && vm.isAllowedToImportSku\\\"\\n style=\\\"background-color: gold; color:black; border-color: goldenrod; border-width:1px; border-radius: 10px; font-size: smaller;\\\">\\n <b>{{ 'common.warning' | translate }}:</b> <br> \\n {{ 'productimport.skuwarningmessage' | translate }}\\n </div>\\n\\n <div class=\\\"col-lg-7 m-b-xs m-t-xs\\\">\\n {{ 'productimport.getitemgroupfrom' | translate }}:\\n </div>\\n <div class=\\\"col-lg-5 m-b-xs m-t-xs\\\">\\n <div style=\\\"align-items: center; vertical-align: middle; font-size: smaller;\\\">\\n <input type=\\\"radio\\\" ng-checked=\\\"!vm.useMainGroupAndBrand\\\" ng-click=\\\"vm.useMainGroupAndBrand = false\\\" ng-disabled=\\\"!vm.mandatoryAccordionAvailable()\\\">\\n  {{ 'productimport.itemGroupCode' | translate }}\\n </div>\\n <div style=\\\"align-items: center; vertical-align: middle; font-size: smaller;\\\">\\n <input type=\\\"radio\\\" ng-checked=\\\"vm.useMainGroupAndBrand\\\" ng-click=\\\"vm.useMainGroupAndBrand = true\\\" ng-disabled=\\\"!vm.mandatoryAccordionAvailable()\\\">\\n  {{ 'maingroup.maingroupcode' | translate }} & {{ 'brand.brandcode' | translate }}\\n </div>\\n </div>\\n </div>\\n\\n <div style=\\\"text-align: center;\\\"><span style=\\\"display: inline-block; width:80%; border-bottom:1px solid #eee; height:10px; margin-bottom:5px;\\\"> </span></div>\\n \\n <div id=\\\"mandatoryAccordion\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\" ng-class=\\\"{ true: 'ca-accordionUnavailable' }[!vm.mandatoryAccordionAvailable()]\\\">\\n <h4>{{ 'productimport.mandatoryFields' | translate }}</h4>\\n <!-- T2 -->\\n <ca-form-group-row label=\\\"'productimport.supplier'\\\">\\n <ca-map-or-select choices=\\\"vm.suppliers\\\"\\n choice-model=\\\"vm.productImportRequest.supplier\\\"\\n column-model=\\\"vm.importMapping.column.companyCode\\\"\\n choice-order-by=\\\"'supplierName'\\\"\\n choice-item-renderer=\\\"'companyName'\\\"\\n choice-placeholder=\\\"'productimport.supplier'\\\"\\n column-names=\\\"vm.importFileColumnNames\\\"\\n column-order-by=\\\"'name'\\\"\\n column-item-renderer=\\\"'name'\\\"\\n column-placeholder=\\\"'productimport.supplier'\\\"\\n disabled-by=\\\"!vm.mandatoryAccordionAvailable()\\\"></ca-map-or-select>\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'supplier'\\\"></ca-error-list>\\n <div> </div>\\n </ca-form-group-row>\\n <!-- T2 -->\\n <ca-form-group-row label=\\\"'common.locations'\\\" ng-show=\\\"vm.importFileType === 'orderImport'\\\">\\n <ca-map-or-select choices=\\\"vm.locations\\\"\\n choice-model=\\\"vm.productImportRequest.location\\\"\\n column-model=\\\"vm.importMapping.column.locationCode\\\"\\n choice-order-by=\\\"'locationName'\\\"\\n choice-item-renderer=\\\"'locationName'\\\"\\n choice-placeholder=\\\"'common.locations'\\\"\\n column-names=\\\"vm.importFileColumnNames\\\"\\n column-order-by=\\\"'name'\\\"\\n column-item-renderer=\\\"'name'\\\"\\n column-placeholder=\\\"'common.locations'\\\"\\n disabled-by=\\\"!vm.mandatoryAccordionAvailable()\\\"></ca-map-or-select>\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'location'\\\"></ca-error-list>\\n <div> </div>\\n </ca-form-group-row>\\n <!-- T2 -->\\n <ca-form-group-row label=\\\"'common.articleCollection'\\\">\\n <ca-map-or-select choices=\\\"vm.articleCollections\\\"\\n choice-model=\\\"vm.productImportRequest.articleCollection\\\"\\n column-model=\\\"vm.importMapping.column.articleCollectionCode\\\"\\n choice-order-by=\\\"'collectionDescription'\\\"\\n choice-item-renderer=\\\"'collectionDescription'\\\"\\n choice-placeholder=\\\"'common.collection'\\\"\\n column-names=\\\"vm.importFileColumnNames\\\"\\n column-order-by=\\\"'name'\\\"\\n column-item-renderer=\\\"'name'\\\"\\n column-placeholder=\\\"'common.collection'\\\"\\n disabled-by=\\\"!vm.mandatoryAccordionAvailable()\\\"></ca-map-or-select>\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'articleCollection'\\\"></ca-error-list>\\n <div> </div>\\n </ca-form-group-row>\\n <!-- T2 -->\\n <ca-form-group-row label=\\\"'common.orderCollection'\\\" ng-show=\\\"vm.importFileType === 'orderImport'\\\">\\n <ca-map-or-select choices=\\\"vm.orderCollections\\\"\\n choice-model=\\\"vm.productImportRequest.orderCollection\\\"\\n column-model=\\\"vm.importMapping.column.orderCollectionCode\\\"\\n choice-order-by=\\\"'collectionDescription'\\\"\\n choice-item-renderer=\\\"'collectionDescription'\\\"\\n choice-placeholder=\\\"'common.collection'\\\"\\n column-names=\\\"vm.importFileColumnNames\\\"\\n column-order-by=\\\"'name'\\\"\\n column-item-renderer=\\\"'name'\\\"\\n column-placeholder=\\\"'common.collection'\\\"\\n disabled-by=\\\"!vm.mandatoryAccordionAvailable()\\\"></ca-map-or-select>\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'orderCollection'\\\"></ca-error-list>\\n <div> </div>\\n </ca-form-group-row>\\n <!-- T2 -->\\n <ca-form-group-row label=\\\"'productimport.deliveryDate'\\\" ng-show=\\\"vm.importFileType === 'orderImport'\\\">\\n <ca-map-or-date date-model=\\\"vm.productImportRequest.plannedDeliveryDate\\\"\\n column-model=\\\"vm.importMapping.column.plannedDeliveryDate\\\"\\n column-names=\\\"vm.importFileColumnNames\\\"\\n column-order-by=\\\"'name'\\\"\\n column-item-renderer=\\\"'name'\\\"\\n column-placeholder=\\\"'common.date'\\\"\\n disabled-by=\\\"!vm.mandatoryAccordionAvailable()\\\"></ca-map-or-date>\\n <!-- date-min=\\\"new Date(2017,10,01)\\\" date-max=\\\"new Date(2017,10,31)\\\" -->\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'plannedDeliveryDate'\\\"></ca-error-list>\\n <div> </div>\\n </ca-form-group-row>\\n </div>\\n </div>\\n <div class=\\\"col-sm-12 col-md-12 col-lg-6\\\">\\n <div id=\\\"mappingsAccordion\\\" ng-show=\\\"vm.importType === 'newImportFile'\\\" ng-class=\\\"{ true: 'ca-accordionUnavailable' }[!vm.mappingsAccordionAvailable()]\\\">\\n <h4>{{ 'productimport.columns' | translate }}</h4>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.orderNumberExternal'\\\" ng-show=\\\"vm.importFileType === 'orderImport'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.orderNumberExternal\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.alternativeArticleNumber'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.alternativeArticleNumber\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'importMappingAlternativeArticleNumber'\\\"></ca-error-list>\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.articleName'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.articleName\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.articleDescription'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.articleDescription\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T4 -->\\n <ca-form-group-row label=\\\"'productimport.variant1Name'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.variant1Name\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T4 -->\\n <ca-form-group-row label=\\\"'productimport.variant2Name'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.variant2Name\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.barcode'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.barcode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row ng-if=\\\"vm.importSku\\\" label=\\\"'productimport.externalSku'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.externalSku\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n\\n <div style=\\\"text-align: center;\\\"><span style=\\\"display: inline-block; width:80%; border-bottom:1px solid #eee; height:10px; margin-bottom:5px;\\\"> </span></div>\\n\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.quantity'\\\" ng-show=\\\"vm.importFileType === 'orderImport'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.quantity\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.purchaseCost'\\\">\\n <div style=\\\"display: flex; align-items: center;\\\">\\n <i class=\\\"fa fa-times-circle\\\" style=\\\"color:gold\\\" aria-hidden=\\\"true\\\" ng-show=\\\"vm.usePricesFromExistingProducts.forPurchaseCost\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'productimport.validationignored' | translate}}\\\" tooltip-popup-delay=\\\"50\\\"></i> \\n <div ng-show=\\\"vm.isPurchasingCurrencyCodePopulated()\\\" style=\\\"border-radius: 2px; width: 40px; height: 20px; background-color: rgb(160, 160, 160); margin-right: 10px; display: flex; align-items: center; justify-content: center;\\\">\\n <span style=\\\"color: black; font-size: 11px;\\\">{{vm.productImportRequest.supplier.purchasingCurrency.code}}</span>\\n </div>\\n <ca-singleselect style=\\\"flex: 1;\\\" model=\\\"vm.importMapping.column.purchaseCost\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </div>\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'importMappingPurchaseCost'\\\"></ca-error-list>\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.salesPrice'\\\">\\n <div style=\\\"display: flex; align-items: center;\\\">\\n <i class=\\\"fa fa-times-circle\\\" style=\\\"color:gold\\\" aria-hidden=\\\"true\\\" ng-show=\\\"vm.usePricesFromExistingProducts.forSalesPrice\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'productimport.validationignored' | translate}}\\\" tooltip-popup-delay=\\\"50\\\"></i> \\n <ca-singleselect style=\\\"flex: 1;\\\" model=\\\"vm.importMapping.column.salesPrice\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n <ca-error-list error-list=\\\"vm.errorList\\\" filter-by=\\\"'importMappingSalesPrice'\\\"></ca-error-list>\\n </div>\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.previousPrice'\\\">\\n <div style=\\\"display: flex; align-items: center;\\\">\\n <i class=\\\"fa fa-times-circle\\\" style=\\\"color:gold\\\" aria-hidden=\\\"true\\\" ng-show=\\\"vm.usePricesFromExistingProducts.forPreviousPrice\\\"\\n tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'productimport.validationignored' | translate}}\\\" tooltip-popup-delay=\\\"50\\\"></i> \\n <ca-singleselect style=\\\"flex: 1;\\\" model=\\\"vm.importMapping.column.previousPrice\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </div>\\n </ca-form-group-row>\\n <div style=\\\"text-align: center;\\\"><span style=\\\"display: inline-block; width:80%; border-bottom:1px solid #eee; height:10px; margin-bottom:5px;\\\"> </span></div>\\n\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.itemGroupCode'\\\" ng-if=\\\"!vm.useMainGroupAndBrand\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.itemGroupCode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'maingroup.maingroupcode'\\\" ng-if=\\\"vm.useMainGroupAndBrand\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.mainGroupCode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'brand.brandcode'\\\" ng-if=\\\"vm.useMainGroupAndBrand\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.brandCode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.subCategory'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.subCategory\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.productType'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.articleTypeName\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.departmentCode'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.departmentCode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <!-- T3 -->\\n <ca-form-group-row label=\\\"'productimport.intrastatCode'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.intrastatCode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.countryCode'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.countryCode\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n\\n <div style=\\\"text-align: center;\\\"><span style=\\\"display: inline-block; width:80%; border-bottom:1px solid #eee; height:10px; margin-bottom:5px;\\\"> </span></div>\\n \\n <ca-form-group-row label=\\\"'productimport.supplierSku'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.supplierSku\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.length'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.length\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.height'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.height\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.width'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.width\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.weight'\\\">\\n <ca-singleselect model=\\\"vm.importMapping.column.weight\\\" choices=\\\"vm.importFileColumnNames\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"false\\\" disabled-by=\\\"!vm.mappingsAccordionAvailable()\\\" />\\n </ca-form-group-row>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div ng-mouseenter=\\\"showSummaryButton = true\\\" ng-mouseleave=\\\"showSummaryButton = false\\\" ng-init=\\\"showSummaryButton = false\\\" style=\\\"padding:5px 15px; max-width:500px; text-align: right;\\\">\\n <div ng-show=\\\"vm.summaries.length > 0\\\" class=\\\"ca-infoListStyle\\\">\\n <button class=\\\"btn btn-xs\\\" style=\\\"float:right;\\\" ng-click=\\\"vm.showSummaries = !vm.showSummaries\\\" ng-show=\\\"showSummaryButton\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ vm.showSummaries ? 'productimport.hideContents' : 'productimport.showContents' | translate }}\\\" tooltip-popup-delay=\\\"300\\\"\\n >{{ vm.showSummaries ? 'productimport.hide' : 'productimport.show' | translate }}</button> \\n <label style=\\\"font-weight: bold; display:block;\\\">{{ 'productimport.creationSummary' | translate }}</label>\\n <span style=\\\"margin-bottom:20px;\\\" ng-show=\\\"vm.showSummaries\\\">{{ 'productimport.creationSummaryDescription' | translate }}:</span>\\n <ul ng-show=\\\"vm.showSummaries\\\">\\n <li ng-repeat=\\\"summary in vm.summaries\\\" class=\\\"list-item-vertical-spacing-md\\\">\\n {{ summary.title | translate }}: <span style=\\\"font-style: italic;\\\">{{ summary.count }} {{ 'common.piecesAbbr' | translate }}</span>\\n </li>\\n </ul>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" <ui-select ng-model=\\\"vm.placeholderModel\\\" theme=\\\"bootstrap\\\" on-select=\\\"vm.selectionChanged()\\\" uis-open-close=\\\"vm.dropDownToggled(isOpen)\\\">\\n <ui-select-match class=\\\"{{ vm.backgroundClass }}\\\">\\n <span ng-if=\\\"vm.editProperty === 'itemGroupCode'\\\">{{ $select.selected.fullName }}</span>\\n <span ng-if=\\\"vm.editProperty !== 'itemGroupCode'\\\">{{ $select.selected.value }}</span>\\n </ui-select-match>\\n \\n <ui-select-choices repeat=\\\"item in vm.localSelectionOptions\\\" refresh=\\\"vm.refreshSearchItems($select.search)\\\" refresh-delay=\\\"50\\\">\\n <span>{{item.fullName}}</span> \\n </ui-select-choices>\\n </ui-select>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div ng-show=\\\"vm.getNumberOfShownErrors() > 0\\\" ng-mouseenter=\\\"showErrorButton = true\\\" ng-mouseleave=\\\"showErrorButton = false\\\" ng-init=\\\"showErrorButton = false\\\" class=\\\"ca-errorListStyle\\\">\\n <button class=\\\"btn btn-xs\\\" style=\\\"float:right;\\\" ng-click=\\\"vm.showErrors = !vm.showErrors\\\" ng-show=\\\"showErrorButton\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ vm.showErrors ? 'productimport.hideContents' : 'productimport.showContents' | translate }}\\\" tooltip-popup-delay=\\\"300\\\"\\n >{{ vm.showErrors ? 'productimport.hide' : 'productimport.show' | translate }}</button>\\n <div ng-show=\\\"vm.errors.length != 0\\\">\\n <label style=\\\"float:left; font-weight: bold;\\\">{{ 'productimport.validationerrors' | translate }}</label>\\n <div style=\\\"clear: both; height:1px\\\"> </div>\\n </div>\\n <ul ng-show=\\\"vm.getNumberOfShownErrors() != 0 && vm.showErrors\\\">\\n <li ng-repeat=\\\"error in vm.errors\\\" class=\\\"list-item-vertical-spacing-md\\\">\\n {{ error.displayMessage | translate }} ({{error.fileRows.length}} {{(error.fileRows.length === 1) ? ('productimport.row' | translate) : ('productimport.rows' | translate)}})\\n <button class=\\\"btn btn-xs\\\" ng-click=\\\"vm.selectValidationError(error)\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'productimport.showOnlyRowsWithError' | translate }} '{{ error.displayMessage | translate }}'\\\" tooltip-popup-delay=\\\"300\\\"\\n > {{'productimport.filter' | translate}} </button>\\n <div class=\\\"list-item-description\\\">{{ 'productimport.suggestion' | translate }}: {{ error.suggestedSolution | translate }}</div>\\n </li>\\n </ul>\\n</div>\\n<div ng-show=\\\"vm.warnings.length > 0\\\" ng-mouseenter=\\\"showWarningButton = true\\\" ng-mouseleave=\\\"showWarningButton = false\\\" ng-init=\\\"showWarningButton = false\\\" class=\\\"col-lg-5 ca-warningListStyle\\\">\\n <button class=\\\"btn btn-xs\\\" style=\\\"float:right;\\\" ng-click=\\\"vm.showWarnings = !vm.showWarnings\\\" ng-show=\\\"showWarningButton\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ vm.showWarnings ? 'productimport.hideContents' : 'productimport.showContents' | translate }}\\\" tooltip-popup-delay=\\\"300\\\"\\n >{{ vm.showWarnings ? 'productimport.hide' : 'productimport.show' | translate }}</button>\\n <div>\\n <label style=\\\"float:left; font-weight: bold;\\\">{{ 'productimport.validationwarnings' | translate }}</label>\\n <div style=\\\"clear: both; height:1px\\\"> </div>\\n </div>\\n <ul ng-show=\\\"vm.getNumberOfShownWarnings() != 0 && vm.showWarnings\\\">\\n <li ng-hide=\\\"warning.hide\\\" ng-repeat=\\\"warning in vm.warnings\\\" class=\\\"list-item-vertical-spacing-md\\\">\\n {{ warning.displayMessage | translate }} ({{warning.fileRows.length}} {{(warning.fileRows.length === 1) ? ('productimport.row' | translate) : ('productimport.rows' | translate)}}) \\n <button class=\\\"btn btn-xs\\\" ng-click=\\\"vm.selectValidationError(warning)\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'productimport.showOnlyRowsWithWarning' | translate }} '{{ warning.displayMessage | translate }}'\\\" tooltip-popup-delay=\\\"300\\\"\\n > {{'productimport.filter' | translate}} </button>\\n <button class=\\\"btn btn-xs\\\" ng-click=\\\"vm.hideWarning(warning)\\\"\\n tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'productimport.hideTheWarning' | translate }} '{{ warning.displayMessage | translate }}'\\\" tooltip-popup-delay=\\\"300\\\"\\n > {{'productimport.hide' | translate}} </button>\\n <div class=\\\"list-item-description\\\">{{ 'productimport.suggestion' | translate }}: {{ warning.suggestedSolution | translate }}</div>\\n </li>\\n </ul>\\n <div style=\\\"clear:both; height: 1px;\\\"> </div>\\n <div style=\\\"text-align: right;\\\" ng-show=\\\"vm.showWarnings && vm.hiddenWarningDisplayMessages && vm.hiddenWarningDisplayMessages.length > 0 && showWarningButton\\\">\\n <button class=\\\"btn btn-xs\\\" ng-click=\\\"vm.resetWarnings()\\\">{{ 'productimport.showAllWarnings' | translate }}</button>\\n </div>\\n</div>\\n\\n<div style=\\\"max-width:150px; float:left; margin-left:10px;\\\" ng-show=\\\"vm.numberOfFilteredRows > 0\\\">\\n <button class=\\\"btn btn-default btn-sm\\\" ng-click=\\\"vm.resetFilters()\\\">{{ 'productimport.resetfilter' | translate }}</button>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div style=\\\"clear:both; height:1px;\\\"> </div>\\n<div class=\\\"col-lg-12\\\">\\n <style>\\n .table-background {\\n background-color: #fcfcfc;\\n }\\n .ui-select-bootstrap>.ui-select-choices, .ui-select-bootstrap>.ui-select-no-choice {\\n width: inherit;\\n }\\n </style>\\n <table class=\\\"table-hover table-condensed table-readable-compact table-background\\\">\\n <thead>\\n <tr>\\n <th colspan=\\\"{{ vm.displayedColumns.length }}\\\">\\n <div style=\\\"display:flex; flex-direction: row; flex-flow: row nowrap; justify-content: space-around; align-items:center;\\\">\\n <div style=\\\"flex-grow:0;\\\">\\n <span style=\\\"display: block; padding: 5px 5px; float:left; width:150px;\\\">{{ 'productimport.overviewLevel' | translate }}:</span>\\n <ca-form-group-row style=\\\"float:left; max-width:450px; min-width: 300px;\\\">\\n <ca-singleselect model=\\\"vm.currentGroupingLevel\\\" choices=\\\"vm.groupingLevels\\\" item-renderer=\\\"'label'\\\" mandatory=\\\"true\\\" />\\n </ca-form-group-row>\\n </div>\\n <div style=\\\"flex-grow:1; text-align: center;\\\">\\n <div uib-pagination\\n boundary-links=\\\"true\\\"\\n total-items=\\\"vm.displayedGroups.length\\\"\\n items-per-page=\\\"vm.itemsPerPage\\\"\\n max-size=\\\"10\\\"\\n ng-change=\\\"vm.updatePage()\\\"\\n ng-model=\\\"vm.currentPage\\\"\\n class=\\\"pagination-sm\\\"\\n previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\"\\n first-text=\\\"«\\\"\\n last-text=\\\"»\\\"\\n ng-show=\\\"vm.displayedGroups.length != 0 && vm.displayedGroups.length > vm.itemsPerPage\\\"></div>\\n </div>\\n <div style=\\\"flex-grow:0; min-width: 250px; text-align:right;\\\">\\n <span style=\\\"display: inline-block; padding: 5px 5px;\\\">{{ 'common.resultsPerPage' | translate }}:</span>\\n <ui-select ng-model=\\\"vm.itemsPerPage\\\" theme=\\\"bootstrap\\\" class=\\\"fixedMinWidth enterAsTab\\\" style=\\\"float:right; max-width:150px;\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{ $select.selected }}</ui-select-match>\\n <ui-select-choices repeat=\\\"item in vm.fixedItemsPerPageChoices\\\">\\n <span>{{ item }}</span>\\n </ui-select-choices>\\n </ui-select>\\n <div style=\\\"clear:both; height:1px;\\\"> </div>\\n </div>\\n </div>\\n </th>\\n </tr>\\n <tr>\\n <th ng-repeat=\\\"identifier in vm.displayedColumns\\\">\\n {{identifier.label | translate}}\\n <!-- {{(identifier.editPropertyName === 'purchaseCost' || identifier.editPropertyName === 'salesPrice' || identifier.editPropertyName === 'previousPrice') ? ' (' + vm.tenantCurrency.code + ')' : ''}} -->\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"groupRow in vm.currentDisplayedGroups\\\">\\n <td ng-repeat=\\\"identifier in vm.displayedColumns\\\">\\n <!-- Refresh Type -->\\n <span ng-if=\\\"identifier.inputElementType === 'refresh'\\\">\\n <span class=\\\"text-muted text-xs fa fa-bars\\\" ng-show=\\\"groupRow.numberOfRows > 1\\\"> {{ groupRow.numberOfRows }}</span>\\n <i class=\\\"fa fa-spinner fa-spin fa-fw\\\" ng-show=\\\"groupRow.isLoading\\\"></i>\\n </span>\\n </span>\\n <!-- String Type -->\\n <span ng-if=\\\"identifier.inputElementType === 'string'\\\">\\n <input type=\\\"text\\\"\\n class=\\\"form-control no-border no-bg text-sm enterAsTab\\\"\\n ng-style=\\\"vm.getRowInputStyle(identifier.editPropertyName, groupRow)\\\"\\n style=\\\"border:0px;padding:0px;height:auto;text-overflow:ellipsis\\\"\\n ng-model=\\\"groupRow[identifier.editPropertyName]\\\"\\n ng-change=\\\"vm.groupRowChanged(groupRow, identifier.editPropertyName)\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ vm.getInputTooltip(identifier.editPropertyName, groupRow) }}\\\"\\n tooltip-popup-delay=\\\"100\\\"\\n ng-readonly=\\\"vm.isInputReadOnly(identifier.editPropertyName, groupRow)\\\"\\n enter-as-tab />\\n </span>\\n <!-- Price Type -->\\n <span ng-if=\\\"identifier.inputElementType === 'price'\\\">\\n <div style=\\\"float:left\\\">\\n <span style=\\\"display: inline-block\\\">\\n <input type=\\\"text\\\"\\n ng-style=\\\"vm.getRowInputStyle(identifier.editPropertyName, groupRow)\\\"\\n style=\\\"padding:0px; height:auto; text-overflow: ellipsis; width: 50px;\\\"\\n ng-model=\\\"groupRow[identifier.editPropertyName]\\\"\\n ng-change=\\\"vm.groupRowChanged(groupRow, identifier.editPropertyName)\\\"\\n tooltip-placement=\\\"top-left\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ vm.getPriceInTenantCurrency(identifier.editPropertyName, groupRow) }}\\\"\\n tooltip-popup-delay=\\\"100\\\"\\n ng-readonly=\\\"vm.isInputReadOnly(identifier.editPropertyName, groupRow)\\\"\\n enter-as-tab />\\n </span>\\n <span style=\\\"display:inline-block; width: 25px;\\\">\\n {{ identifier.editPropertyName == \\\"purchaseCost\\\" ? groupRow.currencyCode : groupRow.tenantCurrencyCode }}\\n </span>\\n </div>\\n </span>\\n\\n <!-- Delete Type -->\\n <ca-confirm-button confirm-title=\\\"'common.confirmDelete'\\\" on-confirm-pressed=\\\"vm.deleteGroupRow(groupRow)\\\" ng-if=\\\"identifier.inputElementType === 'delete'\\\"></ca-confirm-button>\\n <!-- Dropdown string selection/addition type -->\\n <div ng-if=\\\"identifier.inputElementType === 'textdropdown'\\\">\\n <ca-import-editor-text-dropdown\\n selection-options=\\\"identifier.selectionElements\\\"\\n group-row=\\\"groupRow\\\"\\n edit-property=\\\"identifier.editPropertyName\\\"\\n on-selection-changed=\\\"vm.updateValue(groupRow, editProperty, value)\\\"\\n filter-function=\\\"vm.filterChoices\\\"\\n background-class=\\\"vm.getRowInputClass(identifier.editPropertyName, groupRow)\\\"\\n tooltip-placement=\\\"right\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ vm.getInputTooltip(identifier.editPropertyName, groupRow) }}\\\"\\n tooltip-popup-delay=\\\"100\\\"\\n tooltip-trigger=\\\"'outsideClick'\\\"\\n >\\n </ca-import-editor-text-dropdown>\\n </div>\\n <!-- Multiselect type -->\\n <div ng-if=\\\"identifier.inputElementType === 'multiselect'\\\">\\n <ca-multiselect\\n model=\\\"groupRow[identifier.editPropertyName]\\\"\\n choices=\\\"identifier.selectionElements\\\"\\n item-renderer=\\\"['fullName']\\\"\\n >\\n </ca-multiselect>\\n </div>\\n <!-- label -->\\n <span ng-if=\\\"identifier.inputElementType === 'textlabel'\\\">\\n {{groupRow[identifier.editPropertyName]}}\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary btn-sm\\\" ng-click=\\\"vm.showFinalizeDialog()\\\" ng-disabled=\\\"!vm.isAllowedToFinalize()\\\">{{ 'productimport.finalize' + vm.importFile.importType | translate}}</button>\\n <span>{{ vm.importFile.fileName }} ({{vm.importFile.importDate.substring(0, 10)}}) - {{'productimport.importtype' | translate}}: \\n {{(vm.importFile.importType == 'product') ? ('productimport.product' | translate) : ''}}\\n {{(vm.importFile.importType == 'order') ? ('productimport.order' | translate) : ''}}</span>\\n </div>\\n <div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"panel panel-default\\\" style=\\\"max-width: 1900px;\\\">\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.shouldShowValidationErrorsPanel()\\\">\\n \\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <div style=\\\"display:flex; flex-direction: row; flex-flow: row nowrap; justify-content: space-between;\\\">\\n <div ng-show=\\\"vm.shouldShowValidationErrorsPanel()\\\" style=\\\"flex-grow:2; margin-left:20px;\\\">\\n <ca-import-editor-validation-errors\\n validation-errors=\\\"vm.validationErrors\\\"\\n select-file-rows=\\\"vm.selectFileRows(fileRows, displayMessage)\\\"\\n deselect-file-rows=\\\"vm.resetSelectedImportRows()\\\"\\n number-of-filtered-rows=\\\"vm.selectedFileRowIds ? vm.selectedFileRowIds.length : 0\\\"\\n validation-error-change-count=\\\"vm.validationErrorChangeCount\\\"></ca-import-editor-validation-errors>\\n </div>\\n <div style=\\\"flex-grow: 0; text-align: right;\\\">\\n <ca-import-editor-summary import-file=\\\"vm.importFile\\\" update-summary=\\\"vm.importUpdateCount\\\"></ca-import-editor-summary>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\">\\n <table>\\n <tr>\\n <td>\\n <button ng-click=\\\"vm.saveImportFile()\\\" class=\\\"btn btn-primary\\\"> {{'common.save' | translate}} </button>\\n </td>\\n <td>\\n <button ng-click=\\\"vm.checkForConnectionWithArticleData()\\\" \\n class=\\\"btn btn-default\\\"\\n ng-disabled=\\\"vm.validationErrors.length === 0\\\"\\n uib-tooltip=\\\"{{'productimport.checkForConnectionWithArticleData' | translate}}\\\"\\n tooltip-placement=\\\"topleft\\\"\\n tooltip-append-to-body=\\\"true\\\"> {{'productimport.checkForConnectionWithArticleDataShort' | translate}}\\n </button>\\n </td>\\n <td>\\n <button ng-click=\\\"vm.removeIncorrectCharactersFromBarcodes()\\\" class=\\\"btn btn-default\\\"> {{ 'import.cleanbarcodes' | translate}} </button>\\n </td>\\n </tr> \\n </table>\\n\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <ca-import-rows-grid\\n import-file=\\\"vm.importFile\\\"\\n validation-errors=\\\"vm.validationErrors\\\"\\n check-results=\\\"vm.dataCheckResults\\\"\\n selected-file-row-ids=\\\"vm.selectedFileRowIds\\\"\\n tenant-currency=\\\"vm.defaultCurrency\\\"\\n on-group-row-changed=\\\"vm.updateImportSummary()\\\"\\n validation-error-change-count=\\\"vm.validationErrorChangeCount\\\"\\n currencies=\\\"vm.currencies\\\"\\n component-registration-handler=\\\"vm.registerImportGridComponent(component)\\\">\\n </ca-import-rows-grid>\\n </div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.savePsychologicalPrice()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewPsychologicalPrice\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.psychologicalPrice.name}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'psychologicalPrice.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.psychologicalPrice.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <div ng-class=\\\"{'has-error': !vm.isPsychologicalPriceNameValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.psychologicalPrice.name\\\" enter-as-tab />\\n </div>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'psychologicalPrice.description'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.psychologicalPrice.description}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"description\\\" ng-model=\\\"vm.psychologicalPrice.description\\\" enter-as-tab />\\n </div>\\n </ca-form-group-row>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-xs-12\\\">\\n <table class=\\\"table table-condensed\\\" ng-if=\\\"!vm.isEditing\\\">\\n <thead>\\n <tr>\\n <th class=\\\"ca-numeric\\\">{{'common.min' | translate}}</th>\\n <th class=\\\"ca-numeric\\\">{{'common.max' | translate}}</th>\\n <th class=\\\"ca-numeric\\\">{{'common.value' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr class=\\\"ca-table-listrow\\\" ng-repeat=\\\"priceInterval in vm.psychologicalPrice.priceIntervals | orderBy: 'minValue'\\\">\\n <td class=\\\"ca-numeric\\\">{{priceInterval.minValue| number:2}}</td>\\n <td class=\\\"ca-numeric\\\">{{priceInterval.maxValue| number:2}}</td>\\n <td class=\\\"ca-numeric\\\">{{priceInterval.resultValue| number:2}}</td>\\n </tr>\\n </tbody>\\n </table>\\n <table class=\\\"table table-condensed\\\" ng-if=\\\"vm.isEditing\\\">\\n <thead>\\n <tr>\\n <th class=\\\"ca-numeric\\\">{{'common.min' | translate}}</th>\\n <th class=\\\"ca-numeric\\\">{{'common.max' | translate}}</th>\\n <th class=\\\"ca-numeric\\\">{{'common.value' | translate}}</th>\\n <th class=\\\"ca-numeric\\\"><button class=\\\"btn btn-xs btn-warning\\\" ng-click=\\\"vm.clearIntervals()\\\">{{ 'common.clear' | translate}}</button></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr class=\\\"ca-table-newrow\\\">\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control form-control enterAsTab\\\" ng-model=\\\"vm.newInterval.minValue\\\" enter-as-tab /></td>\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"vm.newInterval.maxValue\\\" enter-as-tab /></td>\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"vm.newInterval.resultValue\\\" enter-as-tab /></td>\\n <td class=\\\"ca-numeric\\\"><button class=\\\"btn btn-sm btn-primary enterAsTab\\\" ng-click=\\\"vm.addInterval(vm.newInterval)\\\">{{ 'common.add' | translate}}</button></td>\\n </tr>\\n\\n <tr class=\\\"ca-table-editrow\\\" ng-repeat=\\\"priceInterval in vm.psychologicalPrice.priceIntervals | orderBy: 'minValue'\\\">\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"priceInterval.minValue\\\" enter-as-tab /></td>\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"priceInterval.maxValue\\\" enter-as-tab /></td>\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"priceInterval.resultValue\\\" enter-as-tab /></td>\\n <td class=\\\"ca-numeric\\\"><button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.removeInterval(priceInterval)\\\">{{ 'common.remove' | translate}}</button></td>\\n </tr>\\n\\n </tbody>\\n </table>\\n\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.psychologicalprices.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.psychologicalprices.psychologicalprice', {psychologicalPriceId: psychologicalPrice.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"psychologicalPrice in vm.psychologicalPrices\\\" ng-class=\\\"{'focus m-l-none': psychologicalPrice.id === vm.selectedPricelistId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': psychologicalPrice.id === vm.psychologicalPrice }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{psychologicalPrice.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveSalesChannel()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewSalesChannel\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.salesChannel.salesChannelCode + \\\" \\\" + vm.salesChannel.salesChannelDescription}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'salesChannel.salesChannelCode'\\\">\\n <div ng-if=\\\"!vm.isNewSalesChannel\\\">{{vm.salesChannel.salesChannelCode}}</div>\\n <div ng-if=\\\"vm.isNewSalesChannel\\\">\\n <div ng-class=\\\"{'has-error': !vm.isSalesChannelCodeValid()}\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"salesChannelCode\\\" ng-model=\\\"vm.salesChannel.salesChannelCode\\\" enter-as-tab />\\n </div>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'salesChannel.salesChannelDescription'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.salesChannel.salesChannelDescription}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"salesChannelDescription\\\" ng-model=\\\"vm.salesChannel.salesChannelDescription\\\" />\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'salesChannel.country'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.salesChannel.country.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.salesChannel.country\\\" choices=\\\"vm.countries\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\" ng-click=\\\"vm.getSalesChannels()\\\" />\\n </div>\\n </ca-form-group-row> \\n <ca-form-group-row label=\\\"'salesChannel.pricelists'\\\">\\n <div ng-repeat=\\\"pricelist in vm.salesChannel.pricelists\\\">{{pricelist.pricelistCode + ' '+ pricelist.pricelistName}}</div>\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.saleschannels.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.saleschannels.saleschannel', {salesChannelId: salesChannel.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"salesChannel in vm.salesChannels\\\" ng-class=\\\"{'focus m-l-none': salesChannel.id === vm.selectedBrandId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': salesChannel.id === vm.selectedBrandId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{salesChannel.salesChannelCode}}</span><span class=\\\"pull-right text-ellipsis lg-label\\\">{{salesChannel.salesChannelDescription}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.subcategories.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChanged()\\\"\\n placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.subcategories.subcategory', {subCategoryId: subCategory.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"subCategory in vm.subCategories\\\" ng-class=\\\"{'focus m-l-none': subCategory.id === vm.selectedSubCategoryId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': subCategory.id === vm.selectedSubCategoryId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{subCategory.subCategoryCode}}</span><span class=\\\"text-ellipsis lg-label\\\">{{subCategory.subCategoryName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <div class=\\\"text-center\\\" ng-show=\\\"vm.totalRows > vm.itemsPerPage\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalRows\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"5\\\" ng-change=\\\"vm.pageChanged()\\\"\\n ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<form name=\\\"categoryForm\\\" ng-submit=\\\"vm.save()\\\" >\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" type=\\\"submit\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"categoryForm.$invalid\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNew\\\"> {{'common.cancel' | translate}} </button>\\n <span> {{vm.subCategory.subCategoryCode + \\\" \\\" + vm.subCategory.subCategoryName}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'subCategory.subCategoryCode'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.subCategory.subCategoryCode }}</span>\\n <div ng-class=\\\"{'has-error': categoryForm.subCategoryCode.$invalid && categoryForm.subCategoryCode.$touched}\\\">\\n <input name=\\\"subCategoryCode\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.subCategory.subCategoryCode\\\" enter-as-tab required ng-minlength=\\\"1\\\" ng-maxLength=\\\"3\\\" />\\n <span class=\\\"help-block\\\" ng-show=\\\"categoryForm.subCategoryCode.$invalid && categoryForm.subCategoryCode.$touched\\\">{{'subCategory.betweenValues' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'subCategory.subCategoryName'\\\">\\n <span ng-if=\\\"!vm.isEditing\\\">{{ vm.subCategory.subCategoryName }}</span>\\n <div ng-class=\\\"{'has-error': categoryForm.subCategoryName.$invalid && categoryForm.subCategoryName.$touched}\\\">\\n <input name=\\\"subCategoryName\\\" ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.subCategory.subCategoryName\\\" enter-as-tab required />\\n <span class=\\\"help-block\\\" ng-show=\\\"categoryForm.subCategoryName.$invalid && categoryForm.subCategoryCode.$touched\\\">{{'subCategory.required' | translate}}</span>\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'subCategory.maingroups'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\" ng-repeat=\\\"mainGroup in vm.subCategory.mainGroups | orderBy:'name'\\\">{{ mainGroup.mainGroupCode + \\\" \\\" + mainGroup.mainGroupDescription }}</div>\\n <div ng-show=\\\"vm.isEditing\\\">\\n <ca-multiselect model=\\\"vm.subCategory.mainGroups\\\" choices=\\\"vm.mainGroups\\\" order-by=\\\"'mainGroupCode'\\\" placeholder=\\\"'subCategory.maingroups'\\\" item-renderer=\\\"['mainGroupCode','mainGroupDescription']\\\" />\\n </div>\\n </ca-form-group-row>\\n <ca-form-group-row ng-if=\\\"vm.intrastats.length > 0\\\" label=\\\"'maingroup.intrastatnumber'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\" class=\\\"editable\\\">\\n <div ng-repeat=\\\"intrastat in vm.subCategory.intrastats\\\" uib-tooltip=\\\"{{intrastat.internalDescription}}\\\">{{intrastat.code}}</div>\\n </div>\\n <ca-multiselect ng-if=\\\"vm.isEditing\\\" model=\\\"vm.subCategory.intrastats\\\" choices=\\\"vm.intrastats\\\" order-by=\\\"'code'\\\" item-renderer=\\\"['code','internalDescription']\\\" />\\n </ca-form-group-row> \\n </div>\\n </div>\\n</form>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveVariantGroup()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNew\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.variantGroup.groupName}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n\\n <div class=\\\"col-xs-12\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>{{'variantgroup.groupName' | translate}}</td>\\n <th>{{'article.variant' | translate}}</td>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <td>\\n <span ng-if=\\\"!vm.isEditing\\\">{{vm.variantGroup.groupName}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"vm.variantGroup.groupName\\\" enter-as-tab>\\n </td>\\n <td>\\n <span>{{ vm.variantGroup.variant.variantName }}</span>\\n <ca-singleselect ng-if=\\\"vm.isNew\\\" model=\\\"vm.selectedVariant\\\" choices=\\\"vm.variants\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'variantName'\\\" /> \\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>{{'article.variant' | translate}}</td>\\n <th>{{'variantdetail.statisticName' | translate}}</td>\\n <th ng-if=\\\"vm.isEditing && vm.variantGroup.variantDetails && vm.variantGroup.variantDetails.length > 1\\\"> </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"variantDetail in vm.variantGroup.variantDetails | orderBy: 'sortOrder'\\\" >\\n <td>\\n <span ng-if=\\\"!vm.isEditing\\\">{{variantDetail.variantDetailName}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"variantDetail.variantDetailName\\\" enter-as-tab> \\n </td>\\n <td>\\n <span ng-if=\\\"!vm.isEditing\\\">{{variantDetail.statisticName}}</span>\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"variantDetail.statisticName\\\" enter-as-tab>\\n </td>\\n <td><button ng-if=\\\"vm.isEditing && variantDetail.id === -1\\\" class=\\\"btn btn-default btn-sm\\\" type=\\\"button\\\" ng-click=\\\"vm.removeVariantDetail(variantDetail)\\\"> X </button> </td>\\n </tr>\\n <tr ng-if=\\\"vm.isEditing\\\">\\n <td colspan=\\\"3\\\">\\n <strong>{{'common.add' | translate}}:</strong><br>\\n <ca-multiselect model=\\\"vm.addedVariantDetails\\\" choices=\\\"vm.variantDetails\\\" order-by=\\\"'variantDetailName'\\\" placeholder=\\\"'article.variant'\\\" item-renderer=\\\"['variantDetailName']\\\"/>\\n </td>\\n </tr> \\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div> \\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.variantgroups.new')\\\">{{'common.new' | translate}}</button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n \\n <a ng-click=\\\"$state.go('product.variantgroups.variantgroup', {variantGroupId: variantGroup.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"variantGroup in vm.variantGroups | orderBy: ['variantName','groupName']\\\" ng-class=\\\"{'focus m-l-none': variantGroup.id === vm.selectedVariantGroupId}\\\">\\n <div class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': variantGroup.id === vm.selectedVariantGroupId }\\\">\\n <div class=\\\"ca-searchlist-detail\\\">{{variantGroup.variantName | uppercase}}</div>\\n <div class=\\\"lg-label\\\">{{variantGroup.groupName | uppercase}}</div>\\n </div>\\n </a>\\n \\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"wrapper b-t text-center\\\">\\n <div class=\\\"text-center\\\" ng-show=\\\"vm.totalItems > vm.itemsPerPage\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"5\\\" ng-change=\\\"vm.loadVariantGroups()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"input-group m-b-xxs search-input\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.filter\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveVariant()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewVariant\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.variant.variantName}}</span>\\n <span style=\\\"margin-right: 20px; float: right;\\\">\\n Visa: <select ng-model=\\\"vm.pageSize\\\" ng-options=\\\"option for option in vm.pageSizeOptions track by option\\\" ng-change=\\\"vm.searchTermChange()\\\">\\n </select>\\n </span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n\\n <div class=\\\"col-xs-12\\\">\\n <table class=\\\"table\\\" ng-if=\\\"!vm.isEditing\\\">\\n <thead>\\n <tr>\\n <th>\\n <span>{{'variantdetail.variantDetailName' | translate}}</span>\\n </th>\\n <th>\\n <span>{{'variantdetail.statisticName' | translate}}</span>\\n </th>\\n <th>\\n <span>{{'variantdetail.sortOrder' | translate}}</span>\\n </th>\\n </tr>\\n </thead>\\n\\n <tbody>\\n <tr ng-repeat=\\\"variantDetail in vm.variantDetails\\\" >\\n <td>{{variantDetail.variantDetailName}}</td>\\n <td>{{variantDetail.statisticName}}</td>\\n <td>{{variantDetail.sortOrder}}</td>\\n </tr>\\n </tbody>\\n </table>\\n <table class=\\\"table\\\" ng-if=\\\"vm.isEditing\\\">\\n <thead>\\n <tr>\\n <th>{{'variantdetail.variantDetailName' | translate}}</th>\\n <th>{{'variantdetail.statisticName' | translate}}</th>\\n <th>{{'variantdetail.sortOrder' | translate}}</th>\\n </tr>\\n </thead>\\n\\n <tbody>\\n\\n <tr ng-repeat=\\\"variantDetail in vm.variantDetails\\\" >\\n <td>{{variantDetail.variantDetailName}}</td>\\n <td><input type=\\\"text\\\" ng-model=\\\"variantDetail.statisticName\\\" /></td>\\n <td><input type=\\\"text\\\" ng-model=\\\"variantDetail.sortOrder\\\" /></td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"wrapper b-t text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.pageSize\\\" max-size=\\\"5\\\" ng-change=\\\"vm.searchTermChange()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.variants.variant', {variantId: variant.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"variant in vm.variants\\\" ng-class=\\\"{'focus m-l-none': variant.id === vm.selectedVariantId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': variant.id === vm.selectedVariantId }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{variant.variantName}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.enableEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveVolumeDiscount()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllInformationValid()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing && !vm.isNewVolumeDiscount\\\"> {{'common.cancel' | translate}} </button>\\n <span>{{vm.volumeDiscount.name}}</span>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'volumeDiscount.name'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.volumeDiscount.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"name\\\" ng-model=\\\"vm.volumeDiscount.name\\\" enter-as-tab />\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'volumeDiscount.quantityGroup'\\\">\\n <div ng-if=\\\"!vm.isEditing\\\">{{vm.volumeDiscount.quantityGroup.name}}</div>\\n <div ng-if=\\\"vm.isEditing\\\">\\n <ca-singleselect model=\\\"vm.volumeDiscount.quantityGroup\\\" choices=\\\"vm.quantityGroups\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\"/>\\n </div>\\n </ca-form-group-row>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-xs-12\\\">\\n <table class=\\\"table table-condensed\\\" ng-if=\\\"!vm.isEditing\\\">\\n <thead>\\n <tr>\\n <th class=\\\"ca-numeric\\\">{{'volumeDiscount.minimumQuantity' | translate}}</th>\\n <th class=\\\"ca-numeric\\\">{{'volumeDiscount.discountPercent' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr class=\\\"ca-table-listrow\\\" ng-repeat=\\\"limit in vm.volumeDiscount.limits | orderBy: 'minimumQuantity'\\\">\\n <td class=\\\"ca-numeric\\\">{{limit.minimumQuantity| number:2}}</td>\\n <td class=\\\"ca-numeric\\\">{{limit.discountPercent| number:2}}</td>\\n </tr>\\n </tbody>\\n </table>\\n <table class=\\\"table table-condensed\\\" ng-if=\\\"vm.isEditing\\\">\\n <thead>\\n <tr>\\n <th class=\\\"ca-numeric\\\">{{'volumeDiscount.minimumQuantity' | translate}}</th>\\n <th class=\\\"ca-numeric\\\">{{'volumeDiscount.discountPercent' | translate}}</th>\\n <th class=\\\"ca-numeric\\\"><button class=\\\"btn btn-xs btn-warning\\\" ng-click=\\\"vm.clearLimits()\\\">{{ 'common.clear' | translate}}</button></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr class=\\\"ca-table-newrow\\\">\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control form-control enterAsTab\\\" ng-model=\\\"vm.newLimit.minimumQuantity\\\" enter-as-tab /></td>\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"vm.newLimit.discountPercent\\\" enter-as-tab /></td>\\n <td class=\\\"ca-numeric\\\"><button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.addLimit(vm.newLimit)\\\">{{ 'common.add' | translate}}</button></td>\\n </tr>\\n\\n <tr class=\\\"ca-table-editrow\\\" ng-repeat=\\\"limit in vm.volumeDiscount.limits | orderBy: 'minValue'\\\">\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"limit.minimumQuantity\\\" enter-as-tab /></td>\\n <td><input type=\\\"number\\\" class=\\\"ca-table-cell ca-numeric form-control enterAsTab\\\" ng-model=\\\"limit.discountPercent\\\" enter-as-tab /></td>\\n <td class=\\\"ca-numeric\\\"><button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.removeLimit(limit)\\\">{{ 'common.remove' | translate}}</button></td>\\n </tr>\\n\\n </tbody>\\n </table>\\n\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"$state.go('product.volumediscounts.new')\\\">\\n {{'common.new' | translate}}\\n </button>\\n </span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('product.volumediscounts.volumediscount', {volumeDiscountId: volumeDiscount.id})\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"volumeDiscount in vm.volumeDiscounts\\\" ng-class=\\\"{'focus m-l-none': volumeDiscount.id === vm.selectedPricelistId}\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': volumeDiscount.id === vm.volumeDiscount }\\\">\\n <span class=\\\"pull-left text-ellipsis sm-label\\\">{{volumeDiscount.name}}</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .orderhead-color{\\n color:#7266ba;\\n font-weight:bolder;\\n font-size: 17px;\\n }\\n</style>\\n\\n<div ng-click=\\\"vm.collapseHeader = !vm.collapseHeader\\\" class=\\\"orderhead-color\\\">\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"vm.collapseHeader\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"!vm.collapseHeader\\\"></i>\\n </span>\\n <span class=\\\"orderhead-color\\\" ng-show=\\\"vm.collapseHeader\\\">{{ 'resellerorder.showOrderHead' | translate }}</span>\\n <span class=\\\"orderhead-color\\\" ng-show=\\\"!vm.collapseHeader\\\">{{ 'resellerorder.hideOrderHead' | translate }}</span>\\n</div>\\n\\n<!-- Collapsed reseller order head -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:75%;\\\" ng-show=\\\"vm.collapseHeader\\\">\\n <table class=\\\"table table-condensed\\\">\\n <tr>\\n <td>{{ 'resellerorder.orderNumber' | translate }}: {{ vm.resellerOrder.orderNumber }} 44</td>\\n <td>{{'resellerorder.reseller' | translate}}: {{ vm.resellerOrder.reseller }}</td>\\n <td>{{'resellerorder.status' | translate}}: <span style=\\\"font-weight: bold;\\\">{{ vm.getStatusTranslation(vm.resellerOrder.status) }}</span></td>\\n <td>{{'resellerorder.createdDate' | translate}}: <span tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ vm.resellerOrder.createdDate | date:'yyyy-MM-dd HH:mm:ss' }}\\\">{{ vm.resellerOrder.createdDate | date:'yyyy-MM-dd' }}</span></td>\\n </tr>\\n </table>\\n</div>\\n\\n<!-- Reseller order head -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:33%;\\\" ng-hide=\\\"vm.collapseHeader\\\">\\n <div>{{'resellerorder.orderHead' | translate}}:</div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td style=\\\"width:150px;\\\">{{ 'resellerorder.orderNumber' | translate }}</td>\\n <td>{{ vm.resellerOrder.orderNumber }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.status' | translate}}</td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getStatusTranslation(vm.resellerOrder.status) }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.salelocation' | translate}}</td>\\n <td>{{ vm.resellerOrder.saleLocation }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.warehouse' | translate}}</td>\\n <td>{{ vm.resellerOrder.warehouse }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.createdDate' | translate}}</td>\\n <td tooltip-placement=\\\"top-left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ vm.resellerOrder.createdDate | date:'yyyy-MM-dd HH:mm:ss' }}\\\">{{ vm.resellerOrder.createdDate | date:'yyyy-MM-dd' }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.currency' | translate}}</td>\\n <td>{{ vm.resellerOrder.currencyCode }}</td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\\n<!-- Reseller information -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:33%; margin-left:30px;\\\" ng-hide=\\\"vm.collapseHeader\\\">\\n <div>{{'resellerorder.reseller' | translate}}:</div>\\n <div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td style=\\\"width:150px;\\\">{{'resellerorder.reseller' | translate}}</td>\\n <td>{{ vm.resellerOrder.reseller }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.deliveryTerms' | translate}}</td>\\n <td>{{ vm.resellerOrder.deliveryTerms }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.paymentTerms' | translate}}</td>\\n <td>{{ vm.resellerOrder.paymentTerms }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.shippingMethod' | translate}}</td>\\n <td>{{ vm.resellerOrder.shippingMethod }}</td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.resellerPriceList' | translate}}</td>\\n <td>{{ vm.resellerOrder.priceList }}</td>\\n </tr>\\n <tr>\\n <td>{{'pricelist.salesChannel' | translate}}</td>\\n <td>{{ vm.resellerOrder.salesChannel }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n</div>\\n\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; min-width:10%; max-width:20%; margin-left:30px;\\\" ng-hide=\\\"vm.collapseHeader\\\">\\n <div>{{'resellerorder.deliveryadress' | translate}}:</div>\\n <div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{vm.formatAddress(vm.resellerOrder.deliveryAddress)}}</td>\\n <td>\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.setOrderDeliveryAddress()\\\" ng-if=\\\"vm.canSetOrderDeliveryAddress()\\\"><i class=\\\"fa fa-cog\\\" aria-hidden=\\\"true\\\"></i></button>\\n </td>\\n </tr>\\n <tr>\\n <td colspan=\\\"2\\\">{{vm.formatCityAndCountry(vm.resellerOrder.deliveryAddress)}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n</div>\\n\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; min-width:10%; max-width:20%; margin-left:30px;\\\" ng-hide=\\\"vm.collapseHeader\\\">\\n <div>{{'resellerorder.invoiceaddress' | translate}}:</div>\\n <div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{vm.formatAddress(vm.resellerOrder.invoiceAddress)}}</td>\\n <td>\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.setOrderInvoiceAddress()\\\" ng-if=\\\"vm.canSetOrderInvoiceAddress()\\\"><i class=\\\"fa fa-cog\\\" aria-hidden=\\\"true\\\"></i></button>\\n </td>\\n </tr>\\n <tr>\\n <td colspan=\\\"2\\\">{{vm.formatCityAndCountry(vm.resellerOrder.invoiceAddress)}}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .breadcrumbsDiv {\\n padding-left: 0px;\\n padding-bottom: 10px;\\n }\\n a.breadcrumbsLink {\\n color:#58666e;\\n padding: 3px;\\n padding-left: 0px;\\n }\\n a.breadcrumbsLink:hover {\\n color:#aaa;\\n }\\n .breadcrumbsDiv span {\\n padding: 3px;\\n padding-left: 0px;\\n }\\n</style>\\n<div class=\\\"breadcrumbsDiv\\\">\\n <a class=\\\"breadcrumbsLink\\\" ng-click=\\\"vm.transitionToState('resellerorder.resellerordersearch')\\\">{{ 'resellerorder.resellerorders' | translate }}</a>\\n <span>></span>\\n <span>{{ vm.currentPage.order.orderNumber }}</span>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div style=\\\"padding-bottom: 30px;\\\">\\n <div style=\\\"margin-bottom: 25px;\\\">\\n <table style=\\\"width: 1000px; margin-left:25px; padding-right:1%; float: left;\\\">\\n <tr class=\\\"b-b\\\">\\n <th style=\\\"width:400px;padding-left:25px\\\">{{'common.search' | translate}} {{'resellerorder.resellerorder' | translate}}</th>\\n <th style=\\\"width:50px\\\"></th>\\n <th style=\\\"width:50px\\\"></th>\\n <th style=\\\"width:50px\\\"></th>\\n <th style=\\\"width:50px\\\"></th>\\n <th style=\\\"width:50px\\\"></th>\\n </tr>\\n <tr class=\\\"b-b\\\">\\n <td>\\n <div class=\\\"input-group m-b-xxs list-menu\\\" style=\\\"margin-left:10px; float: left\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\"\\n ng-model=\\\"vm.searchTerm.term\\\"\\n ng-model-options=\\\"{debounce: 500}\\\"\\n ng-change=\\\"vm.filterAllOrders()\\\"\\n placeholder=\\\"{{'common.search' | translate}} ({{ 'resellerorder.orderNumber' | translate }}, {{ 'resellerorder.reseller' | translate }}, {{ 'resellerorder.fromlocation' | translate }}, {{ 'resellerorder.warehouse' | translate }})\\\">\\n </div>\\n </td>\\n <td style=\\\"width:5px\\\"></td>\\n <td style=\\\"font-size:12px;\\\">\\n <button ng-style=\\\"{'visibility' : vm.isFilterOrderForInvoice ? 'hidden' : 'visible'}\\\" style=\\\"margin-top:-1px; margin-left:6px; margin-right:6px\\\" ng-click=\\\"vm.createNewOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}}\\n </button>\\n </td>\\n \\n <td style=\\\"width:5px\\\"></td>\\n <td style=\\\"width:50px\\\">\\n <button ng-style=\\\"{'visibility' : vm.isFilterOrderForInvoice ? 'hidden' : 'visible'}\\\" style=\\\"margin-top:-1px; margin-left:-1px;\\\" ng-click=\\\"vm.createNewReturnOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}} {{'resellerorder.resellerreturnordershort' | translate}}\\n </button>\\n </td>\\n <td style=\\\"width:50px\\\">\\n <td>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.readyForSale()\\\" ng-hide=\\\"vm.isFilterOrderForInvoice\\\" ng-disabled=\\\"vm.isProcessing\\\">{{ 'customerinvoice.invoice' | translate }}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.readyForSale()\\\" ng-hide=\\\"!vm.isFilterOrderForInvoice\\\" ng-disabled=\\\"vm.isProcessing\\\">{{ 'common.cancel' | translate }}</button>\\n <i class=\\\"fa fa-spinner fa-spin fa-fw\\\" ng-show=\\\"vm.isProcessing\\\"></i>\\n </td>\\n </tr>\\n </table>\\n </div>\\n\\n <table ng-style=\\\"{'visibility' : vm.isFilterOrderForInvoice ? 'hidden' : 'visible'}\\\" style=\\\"width: 95%; margin-top: 20px; margin-right:25px; margin-left:25px; padding-right:1%; float: left;\\\">\\n <tr class=\\\"b-b\\\">\\n <th colspan=\\\"3\\\" style=\\\"padding-left:5px; overflow: hidden; white-space: nowrap;\\\">{{'common.filter' | translate}} {{'common.all' | translate}}:</th>\\n <th style=\\\"width:50px\\\"></th>\\n <th colspan=\\\"6\\\" style=\\\"padding-left:5px\\\">{{'common.filter' | translate}} {{'resellerorder.orderStatus' | translate}}:</th>\\n <th style=\\\"width:50px\\\"></th>\\n <th colspan=\\\"4\\\" style=\\\"padding-left:5px\\\">{{'common.filter' | translate}} {{'order.ordertype' | translate}}:</th>\\n <th style=\\\"width:48%;padding-left:25px\\\"></th>\\n </tr>\\n <tr class=\\\"b-b\\\">\\n <td style=\\\"width:50px\\\"></td>\\n <td style=\\\"font-size:12px;\\\">{{'common.all' | translate}}:</td>\\n <td style=\\\"width:20px;padding-top: 3px;\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterAll\\\" ng-change=\\\"vm.filterAllOrders(true)\\\" checked></td>\\n <td style=\\\"width:50px\\\"></td>\\n <td style=\\\"width:50px\\\"></td>\\n <td style=\\\"font-size:12px; white-space: nowrap;\\\">{{'resellerorder.statusCreated' | translate}}:</td>\\n <td style=\\\"width:20px;padding-top: 3px; white-space: nowrap;\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterCreated\\\" ng-change=\\\"vm.filterAllOrders()\\\" checked></td>\\n <td style=\\\"font-size:12px;\\\">{{'resellerorder.statusOpen' | translate}}:</td>\\n <td style=\\\"width:20px;padding-top: 3px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterOpen\\\" ng-change=\\\"vm.filterAllOrders()\\\" checked></td>\\n <td style=\\\"font-size:12px; white-space: nowrap;\\\">{{'resellerorder.statusClosed' | translate}}:</td>\\n <td style=\\\"width:20px;padding-top: 3px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterClosed\\\" ng-change=\\\"vm.filterAllOrders()\\\" checked></td>\\n <td style=\\\"width:50px\\\"></td>\\n <td style=\\\"font-size:12px;\\\">{{'order.order' | translate}}:</td>\\n <td style=\\\"width:20px;padding-top: 3px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterOrder\\\" ng-change=\\\"vm.filterAllOrders()\\\" checked></td>\\n <td style=\\\"font-size:12px;\\\">{{'order.returnorder' | translate}}:</td>\\n <td style=\\\"width:20px;padding-top: 3px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterReturnOrder\\\" ng-change=\\\"vm.filterAllOrders()\\\" checked></td>\\n <td style=\\\"width:300px; \\\"><ca-reseller-order-scanner-navigation init-collapsed=\\\"false\\\" init-focused=\\\"false\\\" navigate-to-state-name=\\\"'resellerorder.manageorders'\\\"> </ca-reseller-order-scanner-navigation></td>\\n </tr>\\n </table>\\n</div>\\n<!-- <div class=\\\"col-lg-12 b-t\\\"> </div> -->\\n\\n<div class=\\\"wrapper text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.filterAllOrders()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n</div>\\n<div class=\\\"col-lg-12\\\" style=\\\"float:right; text-align: right;\\\" ng-hide=\\\"vm.isFilterOrderForInvoice\\\">\\n <button style=\\\"float:left; margin-left:10px\\\" ng-click=\\\"vm.printAllSelectedResellerOrders()\\\" class=\\\"btn btn-sm btn-primary\\\" ng-disabled=\\\"vm.resellerOrderPrintList.length === 0\\\">{{ 'time.print' | translate }}</button>\\n <div ng-show=\\\"checkall\\\" style=\\\"float:left; margin-left:14px; margin-top:4px\\\">\\n <input style=\\\"margin-right:6px\\\" type=\\\"checkbox\\\" ng-model=\\\"checkeverything\\\"> {{ 'common.include' | translate }} {{ 'common.all' | translate }}? (<b>{{ vm.getAllCheckedToPrintList() }}</b> {{ 'common.totalResults' | translate }})\\n </div>\\n</div>\\n<div class=\\\"col-lg-12\\\" style=\\\"float:right; text-align: right;\\\" ng-hide=\\\"!vm.isFilterOrderForInvoice\\\">\\n <button style=\\\"float:left; margin-left:10px\\\" ng-click=\\\"vm.generateSales()\\\" class=\\\"btn btn-sm btn-primary\\\" ng-disabled=\\\"vm.resellerOrderSaleList.length === 0 || vm.isProcessing\\\">{{ 'common.confirm' | translate }}</button>\\n <div ng-show=\\\"checkall\\\" style=\\\"float:left; margin-left:14px; margin-top:4px\\\">\\n <input style=\\\"margin-right:6px\\\" type=\\\"checkbox\\\" ng-model=\\\"checkeverything\\\"> {{ 'common.include' | translate }} {{ 'common.all' | translate }}? (<b>{{ vm.getAllCheckedToSaleList() }}</b> {{ 'common.totalResults' | translate }})\\n </div>\\n</div>\\n<div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-condensed\\\">\\n <thead>\\n <td style=\\\"width:5%; text-align:center;\\\" ><input ng-disabled=\\\"vm.resellerOrders.length === 0\\\" type=\\\"checkbox\\\" style=\\\"margin-top:10px\\\" ng-model=\\\"checkall\\\" tooltip-placement=\\\"left\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'common.select' | translate}} {{'order.allorders' | translate}}\\\" ng-click=\\\"vm.isFilterOrderForInvoice ? vm.checkAllToSaleList(checkall): vm.checkAllToPrintList(checkall)\\\"></th>\\n <th style=\\\"padding-left:5px; white-space: nowrap;\\\">{{'resellerorder.orderNumber' | translate}}</th>\\n <th style=\\\"padding-left:5px; white-space: nowrap;\\\">{{'resellerorder.orderReference' | translate}}</th>\\n <th style=\\\"padding-right:0px;padding-left:0px;\\\">{{'stocktransaction.transactionType' | translate}}</th>\\n <th>{{'resellerorder.orderStatus' | translate}}</th>\\n <th>{{'article.articlecollection' | translate}}</th>\\n <th>{{'resellerorder.reseller' | translate}}</th>\\n <th>{{'resellerorder.fromlocation' | translate}}</th>\\n <th>{{'resellerorder.warehouse' | translate}}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.orderedQuantitySum' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">\\n {{'resellerorder.orderedQuantitySumShort' | translate}}</th> \\n <th uib-tooltip=\\\"{{ 'resellerorder.fulfillableQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">\\n {{ 'resellerorder.fulfillableQuantityShort' | translate }}\\n </th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.fulfilledQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">\\n {{ 'resellerorder.fulfilledQuantityShort' | translate }}\\n </th>\\n <th>{{'resellerorder.invoiced' | translate}}</th>\\n <th style=\\\"white-space: nowrap;\\\">{{'resellerorder.notinvoiced' | translate}}</th>\\n <th>{{'order.orderDate' | translate}}</th>\\n <th></th>\\n </thead>\\n <tbody ng-repeat=\\\"order in vm.resellerOrders\\\">\\n <tr ng-class=\\\"{ caRowSelected: order.id === vm.selectedOrder.id }\\\">\\n <td style=\\\"width:5%; vertical-align: middle; text-align:center;\\\" ><input \\n type=\\\"checkbox\\\" ng-checked=\\\"checkall\\\" ng-click=\\\"vm.isFilterOrderForInvoice? vm.checkToSaleList(order.id) : vm.checkToPrintList(order.id)\\\">\\n <td style=\\\"padding-left:5px; vertical-align: middle;\\\"><a ng-click=\\\"vm.selectOrder(order)\\\" class=\\\"ca-celllink\\\">{{ order.orderNumber }}</a></td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.orderReference }}</td>\\n <td style=\\\"padding-right:0px;padding-left:0px; vertical-align: middle;\\\">{{ vm.getOrderType(order.orderType)}}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ vm.getStatusTranslation(order.status) }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.collectionName }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.resellerCompanyName }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.saleLocationName }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.warehouseName }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.totalLineItemQuantity}}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.totalLineItemFulfillableQuantity }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.totalLineItemFulfilledQuantity }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.totalInvoicedQuantity }}</td>\\n <td style=\\\"vertical-align: middle;\\\">{{ order.totalReadyToBeInvoicedQuantity }}</td>\\n <td style=\\\"vertical-align: middle;\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ order.createdDate | date:'yyyy-MM-dd HH:mm:ss' }}\\\">{{ order.createdDate | date:'yyyy-MM-dd' }}</td>\\n <td style=\\\"white-space: nowrap; vertical-align: middle;\\\">\\n <button class=\\\"btn btn-warning btn-xs\\\" ng-style=\\\"{'visibility' : vm.disableMakeReturnOrder(order) ? 'hidden' : 'visible'}\\\" ng-click=\\\"vm.createReturnOrderFromOrder(order)\\\">\\n <i class=\\\"fa fa-recycle\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'common.new' | translate}} {{'resellerorder.resellerreturnordershort' | translate}}\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n <button class=\\\"btn btn-primary btn-xs\\\" ng-click=\\\"vm.printSelectedResellerOrder(order.id)\\\">\\n <i class=\\\"fa fa-print\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'time.print' | translate }}\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n <button class=\\\"btn btn-danger btn-xs\\\" ng-style=\\\"{'visibility' : vm.disableDeleteOrder(order) ? 'hidden' : 'visible'}\\\" ng-click=\\\"vm.deleteResellerOrder(order)\\\">\\n <i class=\\\"fa fa-trash\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.remove' | translate }}\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .breadcrumbsDiv {\\n padding-left: 0px;\\n padding-bottom: 10px;\\n }\\n a.breadcrumbsLink {\\n color:#58666e;\\n padding: 3px;\\n padding-left: 0px;\\n }\\n a.breadcrumbsLink:hover {\\n color:#aaa;\\n }\\n .breadcrumbsDiv span {\\n padding: 3px;\\n padding-left: 0px;\\n }\\n</style>\\n<div class=\\\"breadcrumbsDiv\\\">\\n <a class=\\\"breadcrumbsLink\\\" ng-click=\\\"vm.transitionToState('resellerorder.resellerordersearch')\\\">Ã…terförsäljarorder</a>\\n <span>></span>\\n <span>{{ vm.currentPage.order.orderNumber }}</span>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-lg-12\\\" ng-show=\\\"!vm.initCollapsed\\\">\\r\\n <input id=\\\"resellerOrderScannerNavigationField\\\" type=\\\"text\\\" class=\\\"form-control input-sm b-b no-bg text-md\\\" ng-model=\\\"vm.scannerInput\\\" placeholder=\\\"{{'order.scan' | translate}}\\\">\\r\\n</div>\\r\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<!-- Reseller order head -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:33%;\\\" >\\n <div>{{'resellerorder.orderHead' | translate}}:</div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'resellerorder.salelocation' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedSaleLocation\\\" choices=\\\"vm.stores\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\" ></ca-singleselect></td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.warehouse' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedWarehouse\\\" choices=\\\"vm.warehouses\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\" ></ca-singleselect></td>\\n </tr>\\n <tr>\\n <td>{{'article.collection' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedCollection\\\" choices=\\\"vm.collections\\\" order-by=\\\"'collectionDescription'\\\" item-renderer=\\\"'collectionDescription'\\\" filter-by=\\\"['collectionDescription']\\\" /></td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.orderReference' | translate}}</td>\\n <td><input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{ 'resellerorder.externalOrderNumber' | translate }} ({{ 'common.optional' | translate }})\\\"\\n ng-model=\\\"vm.resellerOrder.externalOrderNumber\\\" /></td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\\n<!-- Reseller information -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:33%; margin-left:30px;\\\">\\n <div>{{'resellerorder.reseller' | translate}}:</div>\\n <div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'resellerorder.reseller' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedReseller\\\" choices=\\\"vm.resellers\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\" ></ca-singleselect></td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\">\\n <style>\\n div.ca-hover-background:hover {\\n background-color: #f6f6f6;\\n }\\n </style>\\n <div class=\\\"b-t b-b\\\" style=\\\"margin-left: 0px;margin-right: 0px; margin-bottom: 25px;\\\">\\n <button style=\\\"margin-top:-1px; margin-left:4px;\\\" ng-click=\\\"vm.createNewReturnOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}} {{'resellerorder.resellerreturnordershort' | translate}}</button>\\n </div>\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>{{'resellerorder.createresellerorder' | translate}}</h3>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width: 100%;\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.createOrderHeader()\\\" ng-disabled=\\\"!vm.canCreateOrderHeader()\\\">{{ 'resellerorder.createOrder' | translate }}</button>\\n </span>\\n </div>\\n </div>\\n <div style=\\\"margin-top:20px;\\\">\\n <create-reseller-order-header reseller-order=\\\"vm.resellerOrder\\\"></create-reseller-order-header>\\n\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\\n<style>\\n .checkbox-size{\\n transform: scale(1.2);\\n }\\n .greyBackground:hover {\\n background-color:#f3f3f3;\\n }\\n .greyBackground td:hover {\\n background-color: #eaeaea;\\n }\\n .right-align {\\n text-align: right;\\n }\\n .fontBold {\\n font-weight: bold;\\n }\\n\\n .btn-container{\\n display: flex; \\n flex-direction: row;\\n justify-content: flex-end;\\n width:100%;\\n }\\n .date-container{\\n display: flex; \\n flex-direction: columns;\\n }\\n .all-checkbox-container{\\n display: flex;\\n flex-direction: row;\\n }\\n .all-date-container{\\n display: flex;\\n flex-direction: column;\\n }\\n\\n .label-date-container{\\n display: flex;\\n flex-direction: column;\\n }\\n .checkbox-container{\\n display:flex;\\n flex-direction: row; \\n }\\n\\n .label-container{\\n margin-right: 10px;\\n }\\n .label-checkbox-spacing{\\n margin-bottom: 10px;\\n margin-top: 25px;\\n }\\n\\n</style>\\n<div class=\\\"col-sm-12\\\">\\n <table class=\\\"table full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.supplier' | translate }}</th>\\n <th tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.stockQuantity' | translate }}\\\">\\n {{ 'resellerorder.stockQuantityShort' | translate }}</th>\\n <th tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.unfulfilledQuantity' | translate }}\\\">\\n {{ 'resellerorder.unfulfilledQuantityShort' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ vm.selectedProduct.displayArticleNumber }}</td>\\n <td>{{ vm.selectedProduct.articleName }}</td>\\n <td>{{ vm.selectedProduct.variantDetail1Name }}</td>\\n <td>{{ vm.selectedProduct.supplier }}</td>\\n <td>{{ vm.selectedProduct.stockQuantity }}</td>\\n <td>{{ vm.selectedProduct.unfulfilledQuantity }}</td>\\n </tr>\\n </tbody>\\n </table>\\n\\n <table class=\\\"table-full-width table-hover\\\">\\n <thead ng-if=\\\"vm.selectedProduct.variants && vm.selectedProduct.variants.length > 0\\\">\\n <tr style=\\\"margin-bottom: 20px;\\\"> \\n <th style=\\\"min-width: 100px;\\\">{{ 'resellerorder.orderNumber' | translate }}</th>\\n <th style=\\\"min-width: 100px;\\\">{{ 'resellerorder.reseller' | translate }}</th>\\n <th style=\\\"min-width: 100px;\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.resellerPriority' | translate }}\\\">{{ 'resellerorder.resellerPriorityShort' | translate }}</th>\\n <th style=\\\"min-width: 100px;\\\">Kund</th>\\n <th style=\\\"min-width: 100px;\\\">Antal</th>\\n <th style=\\\"min-width: 100px;\\\">{{'order.planneddeliverydate' | translate}}</th>\\n \\n \\n </tr>\\n </thead>\\n <tbody ng-if=\\\"!vm.selectedProduct.variants || vm.selectedProduct.variants.length === 0\\\">\\n <tr class=\\\"greyBackground\\\">\\n <td colspan=\\\"7\\\" style=\\\"font-style: italic; text-align: center;\\\">{{ 'resellerorder.allRowsMustHaveMinimumAvailableStock' | translate }}</td>\\n </tr>\\n </tbody>\\n <div class=\\\"all-checkbox-container\\\">\\n <div class=\\\"checkbox-container label-checkbox-spacing\\\" >\\n <label class=\\\"label-container\\\"style=\\\"font-size: 17px;margin-left:20px\\\"> {{'common.all' | translate}}</label>\\n <input class=\\\"checkbox-size\\\" type=\\\"checkbox\\\" style=\\\" margin-top: 6px; margin-right: 165px;\\\" ng-model=\\\"vm.IsChecked\\\" ng-init =\\\"vm.IsChecked =false\\\">\\n </div>\\n \\n <div class=\\\"label-date-container\\\" style=\\\"margin-bottom: 40px;\\\">\\n <label class=\\\"label-container\\\"style=\\\"font-size: 17px;margin-bottom:5px\\\"> {{'resellerorder.deliveryDate' | translate}}</label>\\n <wj-input-date\\n value=\\\"vm.allDeliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:300px\\\"\\n id=\\\"deliveryDate\\\"\\n ng-disabled=\\\"!vm.IsChecked\\\"\\n ng-model=\\\"vm.allDeliveryDate\\\"> \\n </wj-input-date>\\n </div> \\n </div>\\n \\n <tbody>\\n <tr ng-repeat=\\\"displayItem in vm.displayItems\\\" class=\\\"greyBackground\\\">\\n <td>\\n <a ng-click=\\\"vm.goToOrder(variant.orderId)\\\" class=\\\"ca-celllink\\\">{{ displayItem.orderNumber }}</a>\\n </td>\\n <td>{{ displayItem.resellerName }}</td>\\n <td>{{ displayItem.resellerPriority.toUpperCase() }}</td> \\n <td>{{ displayItem.tenantName }}</td> \\n <td>{{ displayItem.quantity }}</td>\\n <td> \\n <div>\\n <wj-input-date\\n value=\\\"displayItem.deliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:300px\\\"\\n ng-disabled=\\\"vm.IsChecked\\\">\\n </wj-input-date>\\n </div> \\n </td>\\n </tr>\\n </tr> \\n </tbody>\\n </table>\\n <div class=\\\"btn-container\\\">\\n <button class=\\\"btn btn-primary\\\" \\n ng-click=\\\"vm.applyDeliveryDate()\\\">\\n {{ 'common.confirm' | translate }}\\n </button> \\n </div> \\n <!-- ng-disabled=\\\"!vm.canApplyFulfillment()\\\"\\n ng-click=\\\"vm.applyFulfillment()\\\"> -->\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .createVariantFulfillmentDialogServiceController-size {\\n width:90%;\\n }\\n .modal-super {\\n width: 90%;\\n max-width: 1200px;\\n }\\n</style>\\n<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">\\n Bekräfta Leveransdatum\\n <!-- {{'resellerorder.applyFulfillment' | translate}} -->\\n <span class=\\\"pull-right\\\">\\n <i class=\\\"fa fa-times\\\" aria-hidden=\\\"true\\\"\\n ng-click=\\\"vm.closeModal(false)\\\"\\n uib-tooltip=\\\"{{'common.cancel' | translate}}\\\"\\n tooltip-placement=\\\"left\\\"\\n ></i>\\n </span>\\n <div style=\\\"height: 1px; clear:both\\\"> </div>\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n <create-resellerorder-delivery-date-variants\\n selected-product=\\\"vm.fulfillableProduct\\\"\\n selected-warehouse=\\\"vm.selectedWarehouse\\\"\\n minimum-available-stock=\\\"vm.minimumAvailableStock\\\"\\n on-applied-fulfillment=\\\"vm.fulfillmentApplied(itemsToFulfill)\\\">\\n </create-resellerorder-delivery-date-variants>\\n </div>\\n \\n <div style=\\\"clear:both\\\"> </div>\\n<!-- \\n <div style=\\\"height: 1px; clear:both\\\"> </div> --> \\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .createVariantFulfillmentDialogServiceController-size {\\n width:90%;\\n }\\n .modal-super {\\n width: 90%;\\n max-width: 1200px;\\n }\\n</style>\\n<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">\\n {{'resellerorder.applyFulfillment' | translate}}\\n <span class=\\\"pull-right\\\">\\n <i class=\\\"fa fa-times\\\" aria-hidden=\\\"true\\\"\\n ng-click=\\\"vm.closeModal(false)\\\"\\n uib-tooltip=\\\"{{'common.cancel' | translate}}\\\"\\n tooltip-placement=\\\"left\\\"\\n ></i>\\n </span>\\n <div style=\\\"height: 1px; clear:both\\\"> </div>\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n <create-resellerorder-fulfillment-variants\\n selected-product=\\\"vm.fulfillableProduct\\\"\\n selected-warehouse=\\\"vm.selectedWarehouse\\\"\\n minimum-available-stock=\\\"vm.minimumAvailableStock\\\"\\n on-applied-fulfillment=\\\"vm.fulfillmentApplied(itemsToFulfill)\\\">\\n </create-resellerorder-fulfillment-variants>\\n </div>\\n\\n <div style=\\\"clear:both\\\"> </div>\\n<!-- \\n <div style=\\\"height: 1px; clear:both\\\"> </div> -->\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .greyBackground:hover {\\n background-color:#f3f3f3;\\n }\\n .greyBackground td:hover {\\n background-color: #eaeaea;\\n }\\n .right-align {\\n text-align: right;\\n }\\n .fontBold {\\n font-weight: bold;\\n }\\n .row-container{\\n display:flex; \\n flex-direction: row;\\n justify-content: space-between;\\n \\n }\\n .options-container{\\n display:flex;\\n flex-direction: row; \\n\\n }\\n\\n .options-margin{\\n margin-top: 15px;\\n }\\n .confirm-btn-align{\\n display:flex; \\n flex-direction: row-reverse;\\n \\n }\\n</style>\\n<div>\\n \\n <table class=\\\"table full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.supplier' | translate }}</th>\\n <th tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.stockQuantity' | translate }}\\\">\\n {{ 'resellerorder.stockQuantityShort' | translate }}</th>\\n <th tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.unfulfilledQuantity' | translate }}\\\">\\n {{ 'resellerorder.unfulfilledQuantityShort' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ vm.selectedProduct.displayArticleNumber }}</td>\\n <td>{{ vm.selectedProduct.articleName }}</td>\\n <td>{{ vm.selectedProduct.variantDetail1Name }}</td>\\n <td>{{ vm.selectedProduct.supplier }}</td>\\n <td>{{ vm.selectedProduct.stockQuantity }}</td>\\n <td>{{ vm.selectedProduct.unfulfilledQuantity }}</td>\\n </tr>\\n </tbody>\\n </table>\\n \\n <div class=\\\"options-container\\\">\\n\\n <table class =\\\"table full-width table-hover\\\">\\n <thead ng-if=\\\"vm.selectedProduct.variants && vm.selectedProduct.variants.length > 0\\\">\\n <tr>\\n <th style=\\\"min-width: 100px;\\\"></th> \\n <th style=\\\"min-width: 100px;\\\">{{ 'resellerorder.orderNumber' | translate }}</th>\\n <th style=\\\"min-width: 100px;\\\">{{ 'resellerorder.reseller' | translate }}</th>\\n <th style=\\\"min-width: 100px;\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.resellerPriority' | translate }}\\\">{{ 'resellerorder.resellerPriorityShort' | translate }}</th>\\n <th ng-repeat=\\\"variantName in vm.selectedProduct.variantList\\\">\\n {{ variantName.variant2DetailName }}\\n </th> \\n \\n </tr>\\n </thead>\\n <tbody ng-if=\\\"!vm.selectedProduct.variants || vm.selectedProduct.variants.length === 0\\\">\\n <tr class=\\\"greyBackground\\\">\\n <td colspan=\\\"7\\\" style=\\\"font-style: italic; text-align: center;\\\">{{ 'resellerorder.allRowsMustHaveMinimumAvailableStock' | translate }}</td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr ng-repeat=\\\"variant in vm.selectedProduct.variants\\\" class=\\\"greyBackground \\\">\\n <td style=\\\"padding-left:5px;\\\">\\n <div class=\\\"row-container\\\"> \\n <label style=\\\"padding-right:0px\\\" class=\\\"i-checks m-t-xs\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.keepRemainder' | translate }}\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"variant.keepRemainder\\\" />\\n <i></i>\\n </label>\\n <!-- <div style=\\\"height: 1px; clear: both;\\\"> </div> -->\\n <button ng-click=\\\"vm.clearRowQuantities(variant)\\\" class=\\\"btn btn-default\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.clearRowQuantities' | translate }}\\\"><i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i></button>\\n <button ng-click=\\\"vm.resetRowQuantities(variant)\\\" ng-disabled=\\\"!vm.canResetRowQuantities(variant)\\\" class=\\\"btn btn-default\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.resetRowQuantities' | translate }}\\\"><i class=\\\"fa fa-refresh\\\" aria-hidden=\\\"true\\\"></i></button>\\n </div>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToOrder(variant.orderId)\\\" class=\\\"ca-celllink\\\">{{ variant.orderNumber }}</a>\\n </td>\\n <td>{{ variant.resellerName }}</td>\\n <td>{{ variant.resellerPriority.toUpperCase() }}</td>\\n <td ng-repeat=\\\"lineItem in variant.lineItems\\\" class=\\\"right-align\\\"style=\\\"padding-right: 0px\\\">\\n <input type=\\\"number\\\" ng-model=\\\"lineItem.fulfillableQuantity\\\" ng-hide=\\\"lineItem.isFake\\\" class=\\\"width-50 fulfillable-quantity-input enterAsTab\\\" enter-as-tab disabled>\\n <input type=\\\"number\\\" ng-model=\\\"lineItem.quantity\\\" ng-hide=\\\"lineItem.isFake\\\" class=\\\"width-50 quantity-input enterAsTab\\\" ng-change=\\\"vm.preventInputLessThanZero(lineItem)\\\" enter-as-tab>\\n <div style=\\\"height: 1px; clear:both;\\\"> </div>\\n </td>\\n \\n </tr>\\n <tr class=\\\"greyBackground\\\">\\n <td style=\\\"padding-left:5px;\\\">\\n <div class=\\\"row-container\\\"> \\n \\n </div>\\n </td>\\n <td colspan=\\\"3\\\" class=\\\"right-align\\\">{{ 'resellerorder.availableStockQuantity' | translate }}:</td>\\n <td ng-repeat=\\\"variantName in vm.selectedProduct.variantNames\\\" class=\\\"right-align\\\">\\n <input type=\\\"number\\\" class=\\\"fulfillable-quantity-input clean-look-input\\\" disabled ng-value=\\\"\\\">\\n <input type=\\\"number\\\" class=\\\"fulfillable-quantity-input clean-look-input\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.stockQuantity' | translate }}\\\" disabled ng-value=\\\"vm.getStockQuantity(variantName)\\\">\\n </td>\\n <td colspan=\\\"3\\\"> </td>\\n </tr>\\n <tr class=\\\"greyBackground\\\">\\n <td style=\\\"padding-left:5px;\\\">\\n <div class=\\\"row-container\\\"> \\n \\n </div>\\n </td>\\n <td colspan=\\\"3\\\" class=\\\"right-align\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.orderedQuantitySum' | translate }}\\\">{{ 'resellerorder.orderedQuantitySumShort' | translate }}:</td>\\n <td ng-repeat=\\\"variantName in vm.selectedProduct.variantNames\\\" class=\\\"right-align\\\">\\n <span class=\\\"width-50 fulfillable-quantity-input clean-look-input\\\" style=\\\"padding-right:15px\\\">{{ vm.getFulfillableQuantitySum(variantName) }}</span>\\n <span class=\\\"width-50 fulfillable-quantity-input clean-look-input\\\" style=\\\"padding-right:15px\\\">{{ vm.getQuantitySum(variantName) }}</span>\\n </td>\\n <td colspan=\\\"3\\\"> </td>\\n </tr>\\n <tr class=\\\"greyBackground\\\">\\n <td style=\\\"padding-left:5px;\\\">\\n <div class=\\\"row-container\\\"> \\n \\n </div>\\n </td>\\n <td colspan=\\\"3\\\" class=\\\"right-align fontBold\\\">{{ 'resellerorder.stockQuantityAfterFulfillment' | translate }}:</td>\\n <td ng-repeat=\\\"variantName in vm.selectedProduct.variantNames\\\" class=\\\"right-align fontBold\\\">\\n <input type=\\\"number\\\" class=\\\"fulfillable-quantity-input clean-look-input\\\" disabled>\\n <span\\n class=\\\"fulfillable-quantity-input clean-look-input\\\"\\n style=\\\"padding-right:15px\\\"\\n ng-class=\\\"(vm.getDifference(variantName) < 0) ? 'red-difference' : ''\\\">\\n {{ vm.formatDifference(vm.getDifference(variantName)) }}</span>\\n </td>\\n </tr>\\n </tbody>\\n </table> \\n </div>\\n<div class=\\\"confirm-btn-align\\\" colspan=\\\"3\\\" style=\\\"padding-left:5px; text-align: right;\\\">\\n <button class=\\\"btn btn-default\\\"\\n ng-show=\\\"!vm.canApplyFulfillment()\\\"\\n ng-disabled=\\\"!vm.canApplyFulfillment()\\\"\\n ng-click=\\\"vm.applyFulfillment()\\\"\\n uib-tooltip=\\\"{{ vm.getApplyFulfillmentTooltipText() }}\\\"\\n tooltip-append-to-body=\\\"true\\\">\\n {{ 'common.confirm' | translate }}\\n </button>\\n <button class=\\\"btn btn-success\\\"\\n ng-show=\\\"vm.canApplyFulfillment()\\\"\\n ng-click=\\\"vm.applyFulfillment()\\\">\\n {{ 'common.confirm' | translate }}\\n </button>\\n</div> \\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n\\n .fulfillable-quantity-input {\\n margin: 0;\\n width: 50%;\\n float: left;\\n }\\n\\n .quantity-input {\\n margin: 0;\\n width: 50%;\\n float: left;\\n }\\n\\n .deselect-warehouse-btn {\\n float: right;\\n }\\n\\n .red-difference {\\n color: red;\\n }\\n\\n .right-align {\\n text-align: right;\\n }\\n\\n .right-align input {\\n text-align: right;\\n padding-right: 0px;\\n }\\n\\n input.clean-look-input {\\n background-color: initial;\\n color: initial;\\n border: none;\\n }\\n</style>\\n<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default max-width-half\\\">\\n <div class=\\\"panel-body fulfillmentContainer\\\">\\n <div style=\\\"border-bottom: 1px solid darkgray;\\\">\\n <h3>{{'resellerorder.createfulfillment' | translate}}</h3>\\n </div>\\n\\n <div>\\n <div class=\\\"col-sm-6\\\" style=\\\"margin-top:20px;\\\">\\n <ca-form-group-row label=\\\"'resellerorder.warehouse'\\\">\\n <ca-singleselect model=\\\"vm.selectedWarehouse\\\" mandatory=\\\"true\\\" choices=\\\"vm.warehouses\\\"\\n order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\"></ca-singleselect>\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"col-sm-6\\\" style=\\\"margin-top:20px;\\\">\\n <ca-form-group-row label=\\\"'resellerorder.minimumAvailableStock'\\\">\\n <input type=\\\"number\\\" ng-model=\\\"vm.minimumAvailableStock\\\"\\n placeholder=\\\"{{ 'resellerorder.minimumAvailableStock' | translate }}\\\"\\n class=\\\"form-control input-sm\\\">\\n </ca-form-group-row>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.fulfillableProducts && vm.fulfillableProducts.length > 0\\\">\\n <span class=\\\"pull-left\\\" style=\\\"width:90%;\\\">\\n <input class=\\\"form-control small-width\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{ 'common.filter' | translate }}\\\"\\n ng-model-options=\\\"{debounce: 300}\\\"\\n ng-change=\\\"vm.filterFulfillableProducts()\\\"\\n ng-model=\\\"vm.fulfillableProductsFilter\\\"\\n />\\n </span>\\n <span class=\\\"pull-right\\\" style=\\\"width:9%;\\\">\\n <ca-singleselect model=\\\"vm.selectedPageSize\\\" choices=\\\"vm.pageSizes\\\" mandatory=\\\"true\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'val'\\\"/>\\n </span>\\n <div style=\\\"height: 1px; clear: both;\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.filteredFulfillableProducts && vm.filteredFulfillableProducts.length > 0\\\" style=\\\"margin-top:20px;\\\">\\n <table class=\\\"table full-width table-full-width\\\">\\n <thead>\\n <tr>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.supplier' | translate }}</th>\\n <th tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.stockQuantity' | translate }}\\\">\\n {{ 'resellerorder.stockQuantityShort' | translate }}</th>\\n <th tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.unfulfilledQuantity' | translate }}\\\">\\n {{ 'resellerorder.unfulfilledQuantityShort' | translate }}</th>\\n <th> </th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"fulfillableProduct in vm.filteredFulfillableProducts\\\">\\n <tr>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(fulfillableProduct.articleId)\\\" class=\\\"ca-celllink\\\">{{ fulfillableProduct.displayArticleNumber }}</a>\\n </td>\\n <td>{{ fulfillableProduct.articleName }}</td>\\n <td>{{ fulfillableProduct.variantDetail1Name }}</td>\\n <td>{{ fulfillableProduct.supplier }}</td>\\n <td>{{ fulfillableProduct.stockQuantity }}</td>\\n <td>{{ fulfillableProduct.unfulfilledQuantity }}</td>\\n <td>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.showCreateVariantDeliveryDatePopup(fulfillableProduct)\\\" style=\\\"margin-right: 10px;\\\">Leveransdatum</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.showCreateVariantFulfillmentPopup(fulfillableProduct)\\\">{{'resellerorder.createfulfillment' | translate}}</button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n\\n .fulfillable-quantity-input {\\n margin: 0;\\n width: 50%;\\n float: left;\\n }\\n\\n .quantity-input {\\n margin: 0;\\n width: 50%;\\n float: left;\\n }\\n\\n .deselect-warehouse-btn {\\n float: right;\\n }\\n\\n .red-difference {\\n color: red;\\n }\\n\\n .right-align {\\n text-align: right;\\n }\\n\\n .right-align input {\\n text-align: right;\\n padding-right: 0px;\\n }\\n\\n input.clean-look-input {\\n background-color: initial;\\n color: initial;\\n border: none;\\n }\\n</style>\\n<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default max-width-half\\\">\\n <div class=\\\"panel-body fulfillmentContainer\\\">\\n <div style=\\\"border-bottom: 1px solid darkgray;\\\">\\n <h3>{{'resellerorder.manageOrderFulfillments' | translate}}</h3>\\n </div>\\n\\n <div>\\n <ca-reseller-order-scanner-navigation init-collapsed=\\\"!vm.usingScannerNavigation\\\" init-focused=\\\"true\\\" navigate-to-state-name=\\\"'resellerorder.manageorders'\\\"> </ca-reseller-order-scanner-navigation>\\n </div>\\n\\n <div>\\n <div class=\\\"col-sm-6\\\" style=\\\"margin-top:20px; width:500px\\\">\\n <ca-form-group-row label=\\\"'resellerorder.warehouse'\\\">\\n <ca-singleselect model=\\\"vm.selectedFulfilledOrdersWarehouse\\\" mandatory=\\\"true\\\"\\n choices=\\\"vm.warehouses\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\">\\n </ca-singleselect>\\n </ca-form-group-row>\\n </div>\\n <div style=\\\"float:left\\\">\\n <table style=\\\"float:left;width: 600px;\\\">\\n <tr>\\n <th colspan=\\\"8\\\">\\n {{'productimport.filter' | translate}}:\\n </th>\\n </tr>\\n <tr>\\n <td style=\\\"width: 75px\\\">{{'resellerorder.pickableQuantityShort' | translate}}:</td>\\n <td style=\\\"width: 75px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.openCheck\\\" ng-change=\\\"vm.loadFulfilledOrders()\\\" checked></td>\\n <td style=\\\"width: 75px;\\\">{{'resellerorder.pickedQuantityShort' | translate}}:</td>\\n <td style=\\\"width: 75px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.closedCheck\\\" ng-change=\\\"vm.loadFulfilledOrders()\\\" checked></td>\\n <td style=\\\"width: 75px\\\">{{'resellerorder.printOrderPickingListPdf' | translate}} {{'resellerorder.hasBeenPrinted' | translate}}:</td>\\n <td style=\\\"width: 75px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterPickPrinted\\\" ng-change=\\\"vm.loadFulfilledOrders()\\\"></td>\\n <td style=\\\"width: 75px;\\\">{{'resellerorder.printOrderDeliveryNotePdf' | translate}} {{'resellerorder.hasBeenPrinted' | translate}}:</td>\\n <td style=\\\"width: 75px\\\"><input type=\\\"checkbox\\\" ng-model=\\\"vm.filterDeliveryPrinted\\\" ng-change=\\\"vm.loadFulfilledOrders()\\\"></td>\\n </tr>\\n </table>\\n <div style=\\\"float:left; margin-top:30px; margin-right:6px\\\">\\n {{'resellerorder.createdDate' | translate}}:\\n </div>\\n <div style=\\\"float:left;width:60px;margin-top:22px\\\">\\n <ca-singleselect style=\\\"float:left;width:60px\\\" model=\\\"vm.selectedDateMonth\\\" choices=\\\"vm.monthDates\\\" mandatory=\\\"true\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'val'\\\"/>\\n </div>\\n <div style=\\\"float:left; margin-top:30px; margin-left:6px\\\">\\n {{'purchaseorderanalysis.monthsBack' | translate}}:\\n </div>\\n </div>\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.fulfilledOrders && vm.fulfilledOrders.length > 0\\\">\\n <span class=\\\"pull-left\\\" style=\\\"width:80%;\\\">\\n <input class=\\\"form-control small-width\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{ 'common.filter' | translate }}\\\"\\n ng-model-options=\\\"{debounce: 300}\\\"\\n ng-change=\\\"vm.filterFulfilledOrders()\\\"\\n ng-model=\\\"vm.fulfilledOrdersFilter\\\"\\n />\\n </span>\\n <span class=\\\"pull-right\\\" style=\\\"width:9%;\\\">\\n <ca-singleselect model=\\\"vm.selectedPageSize\\\" choices=\\\"vm.pageSizes\\\" mandatory=\\\"true\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'val'\\\"/>\\n </span>\\n <div style=\\\"height: 1px; clear: both;\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.filteredFulfilledOrders && vm.filteredFulfilledOrders.length > 0\\\"\\n style=\\\"margin-top:20px;\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i\\n class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.orderNumber' | translate }}</th>\\n <th>{{ 'resellerorder.reseller' | translate }}</th>\\n <th tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.resellerPriority' | translate }}\\\" tooltip>\\n {{ 'resellerorder.resellerPriorityShort' | translate }}</th>\\n <th>{{ 'resellerorder.createdDate' | translate }}</th>\\n <th><button ng-click=\\\"vm.printAllResellerOrderPickingLists()\\\"\\n class=\\\"btn btn-default\\\">{{ 'common.printAll' | translate }}</th>\\n <th>{{ 'resellerorder.deliveryDate' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"order in vm.filteredFulfilledOrders\\\">\\n <tr>\\n <td ng-click=\\\"order.showOrderVariants = !order.showOrderVariants\\\">\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\"\\n ng-show=\\\"!order.showOrderVariants\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\"\\n ng-show=\\\"order.showOrderVariants\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToOrder(order.id)\\\" class=\\\"ca-celllink\\\">{{ order.orderNumber }}</a>\\n </td>\\n <td ng-click=\\\"order.showOrderVariants = !order.showOrderVariants\\\">\\n {{ order.resellerName }}\\n </td>\\n <td ng-click=\\\"order.showOrderVariants = !order.showOrderVariants\\\">\\n {{ order.resellerPriority.toUpperCase() }}\\n </td>\\n <td ng-click=\\\"order.showOrderVariants = !order.showOrderVariants\\\">\\n {{ order.createdDate | date: 'yyyy-MM-dd' }}\\n </td>\\n <td>\\n <button ng-click=\\\"vm.printResellerOrderPickingList(order.id)\\\"\\n class=\\\"btn btn-sm btn-default\\\">\\n {{ 'resellerorder.printPickingListPdf' | translate }}\\n\\n <span ng-show=\\\"vm.hasBeenPrinted(order, 'ResellerOrderPickingList')\\\">\\n <i class=\\\"fa fa-check-circle\\\" style=\\\"padding-left:6px; vertical-align: center;\\\" aria-hidden=\\\"true\\\"\\n uib-tooltip=\\\"{{ vm.getLatestPrint(order, 'ResellerOrderPickingList') }}\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" >\\n </i>\\n </span>\\n </button>\\n \\n <button style=\\\"margin-left: 8px\\\" ng-show=\\\"vm.canPrintDeliveryNote(order)\\\" ng-click=\\\"vm.getResellerOrderDeliveryNotePdf(order.id)\\\"\\n class=\\\"btn btn-sm btn-success\\\">{{ 'resellerorder.printDeliveryNotePdf' | translate }}\\n <span ng-show=\\\"vm.hasBeenPrinted(order, 'ResellerOrderDeliveryNote')\\\">\\n <i class=\\\"fa fa-check-circle\\\" style=\\\"padding-left:6px; vertical-align: center;\\\" aria-hidden=\\\"true\\\"\\n uib-tooltip=\\\"{{ vm.getLatestPrint(order, 'ResellerOrderDeliveryNote') }}\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" >\\n </i>\\n </span>\\n </button>\\n <span uib-tooltip=\\\"{{'resellerorder.nothingHasBeenPickedOnThisOrderYet' | translate}}\\\" tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\">\\n <button style=\\\"margin-left: 8px\\\" ng-disabled=\\\"!vm.canPrintDeliveryNote(order)\\\" ng-show=\\\"!vm.canPrintDeliveryNote(order)\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{ 'resellerorder.printDeliveryNotePdf' | translate }}</button>\\n </span>\\n </td>\\n <td ng-click=\\\"order.showOrderVariants = !order.showOrderVariants\\\">\\n {{order.plannedDeliveryDate | date: 'yyyy-MM-dd'}}\\n </td>\\n </tr>\\n <tr ng-show=\\\"order.showOrderVariants\\\">\\n <td> </td>\\n <td colspan=\\\"5\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.variant2' | translate }}</th>\\n <th>{{ 'resellerorder.createdDate' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.fulfilledQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.fulfilledQuantityShort' | translate }}\\n </th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.pickedQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.pickedQuantityShort' | translate }}\\n </th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.pickableQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.pickableQuantityShort' | translate }}\\n </th>\\n <th>\\n <button ng-click=\\\"vm.confirmPickAll(order)\\\"\\n ng-show=\\\"vm.canPickAll(order) && order.fulfillmentLineItems.length > 1\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.confirmAllPicks' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n class=\\\"btn btn-sm btn-default\\\">{{ 'resellerorder.confirmAllPicksShort' | translate }}</button>\\n </th>\\n <th>\\n <label class=\\\"i-checks m-t-xs\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.toggleAllCloseOrderRowAfterPick' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n ng-show=\\\"vm.canPickAll(order) && order.fulfillmentLineItems.length > 1\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\"\\n ng-model=\\\"order.closeAllPickings\\\"\\n ng-change=\\\"vm.toggleClosePicking(order)\\\" />\\n <i></i>\\n </label>\\n </th>\\n </thead>\\n <tbody ng-repeat=\\\"lineItem in order.fulfillmentLineItems\\\">\\n <tr>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(lineItem.articleId)\\\" class=\\\"ca-celllink\\\" ng-if=\\\"order.fulfillmentLineItems[$index - 1].displayArticleNumber !== lineItem.displayArticleNumber\\\">{{ lineItem.displayArticleNumber }}</a>\\n </td>\\n <td>\\n <span ng-if=\\\"order.fulfillmentLineItems[$index - 1].articleName !== lineItem.articleName\\\">{{ lineItem.articleName }}</span>\\n </td>\\n <td>{{ lineItem.variantDetail1Name }}</td>\\n <td>{{ lineItem.variantDetail2Name }}</td>\\n <td uib-tooltip=\\\"{{ lineItem.fulfillmentDateCreated | date: 'yyyy-MM-dd hh:mm:dd' }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top-left\\\"\\n >{{ lineItem.fulfillmentDateCreated | date: 'yyyy-MM-dd' }}</td>\\n <td>{{ lineItem.quantity }}</td>\\n <td>{{ lineItem.pickedQuantity }}</td>\\n <td>\\n <input type=\\\"number\\\" min=\\\"0\\\"\\n ng-show=\\\"vm.canPick(lineItem)\\\"\\n ng-model=\\\"lineItem.pickableQuantity\\\">\\n <span ng-show=\\\"!vm.canPick(lineItem)\\\">{{ lineItem.pickableQuantity }}</span>\\n </td>\\n <td>\\n <button ng-click=\\\"vm.confirmPicking(lineItem)\\\"\\n ng-show=\\\"vm.canPick(lineItem)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.confirmPick' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n class=\\\"btn btn-sm btn-default\\\">{{ 'resellerorder.confirmPickShort' | translate }}</button>\\n </td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.closeOrderRowAfterPick' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n ng-show=\\\"vm.canPick(lineItem)\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"lineItem.closePicking\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n\\n .fulfillable-quantity-input {\\n margin: 0;\\n width: 50%;\\n float: left;\\n }\\n\\n .quantity-input {\\n margin: 0;\\n width: 50%;\\n float: left;\\n }\\n\\n .deselect-warehouse-btn {\\n float: right;\\n }\\n\\n .red-difference {\\n color: red;\\n }\\n\\n .right-align {\\n text-align: right;\\n }\\n\\n .right-align input {\\n text-align: right;\\n padding-right: 0px;\\n }\\n\\n input.clean-look-input {\\n background-color: initial;\\n color: initial;\\n border: none;\\n }\\n</style>\\n<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default max-width-half\\\">\\n <div class=\\\"panel-body fulfillmentContainer\\\">\\n <div style=\\\"border-bottom: 1px solid darkgray;\\\">\\n <h3>{{'resellerorder.manageProductFulfillments' | translate}}</h3>\\n </div>\\n\\n <div>\\n <ca-reseller-order-scanner-navigation init-collapsed=\\\"!vm.usingScannerNavigation\\\" init-focused=\\\"true\\\" navigate-to-state-name=\\\"'resellerorder.manageproducts'\\\"> </ca-reseller-order-scanner-navigation>\\n </div>\\n\\n <div>\\n <div class=\\\"col-sm-6\\\" style=\\\"margin-top:20px;\\\">\\n <ca-form-group-row label=\\\"'resellerorder.warehouse'\\\">\\n <ca-singleselect model=\\\"vm.selectedFulfilledProductsWarehouse\\\" mandatory=\\\"true\\\"\\n choices=\\\"vm.warehouses\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\">\\n </ca-singleselect>\\n </ca-form-group-row>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.fulfilledProducts && vm.fulfilledProducts.length > 0\\\">\\n <span class=\\\"pull-left\\\" style=\\\"width:90%;\\\">\\n <input class=\\\"form-control small-width\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{ 'common.filter' | translate }}\\\"\\n ng-model-options=\\\"{debounce: 300}\\\"\\n ng-change=\\\"vm.filterFulfilledProducts()\\\"\\n ng-model=\\\"vm.fulfilledProductsFilter\\\"\\n />\\n </span>\\n <span class=\\\"pull-right\\\" style=\\\"width:9%;\\\">\\n <ca-singleselect model=\\\"vm.selectedPageSize\\\" choices=\\\"vm.pageSizes\\\" mandatory=\\\"true\\\" order-by-desc=\\\"'id'\\\" item-renderer=\\\"'val'\\\"/>\\n </span>\\n <div style=\\\"height: 1px; clear: both;\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-sm-12\\\" ng-show=\\\"vm.filteredFulfilledProducts && vm.filteredFulfilledProducts.length > 0\\\"\\n style=\\\"margin-top:20px;\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAllProducts()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i\\n class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th><button ng-click=\\\"vm.printAllResellerOrderPickingLists()\\\"\\n class=\\\"btn btn-default\\\">{{ 'common.printAll' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"product in vm.filteredFulfilledProducts\\\">\\n <tr>\\n <td ng-click=\\\"product.showOrders = !product.showOrders\\\">\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\"\\n ng-show=\\\"!product.showOrders\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\"\\n ng-show=\\\"product.showOrders\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(product.id)\\\" class=\\\"ca-celllink\\\">{{ product.displayArticleNumber }}</a>\\n </td>\\n <td ng-click=\\\"product.showOrders = !product.showOrders\\\">\\n {{ product.articleName }}</td>\\n <td>\\n <button ng-click=\\\"vm.printResellerOrderPickingList(product.id)\\\"\\n class=\\\"btn btn-default\\\">{{ 'resellerorder.printPickingListPdf' | translate }}</button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"product.showOrders\\\">\\n <td colspan=\\\"4\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAllOrders(product)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i\\n class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.orderNumber' | translate }}</th>\\n <th>{{ 'resellerorder.reseller' | translate }}</th>\\n <th tooltip-append-to-body=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.resellerPriority' | translate }}\\\" tooltip>\\n {{ 'resellerorder.resellerPriorityShort' | translate }}</th>\\n <th>{{ 'resellerorder.createdDate' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.fulfilledQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.fulfilledQuantityShort' | translate }}\\n </th>\\n <th> </th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"order in product.orders\\\">\\n <tr>\\n <td ng-click=\\\"order.showOrderRows = !order.showOrderRows\\\">\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\"\\n ng-show=\\\"!order.showOrderRows\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\"\\n ng-show=\\\"order.showOrderRows\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToOrder(order.id)\\\" class=\\\"ca-celllink\\\">{{ order.orderNumber }}</a>\\n </td>\\n <td>{{ order.resellerName }}</td>\\n <td>{{ order.resellerPriority }}</td>\\n <td uib-tooltip=\\\"{{ order.dateCreated | date: 'yyyy-MM-dd hh:mm:dd' }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n >{{ order.dateCreated | date: 'yyyy-MM-dd' }}</td>\\n <td>{{ order.totalLineItemFulfilledQuantity }}</td>\\n <td>\\n <span ng-show=\\\"vm.hasBeenPrinted(order)\\\">\\n <i class=\\\"fa fa-check-circle\\\" aria-hidden=\\\"true\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.hasBeenPrinted' | translate }}: {{ vm.getLatestPrint(order) }}\\\"\\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" \\n ></i>\\n </span>\\n </td>\\n </tr>\\n <tr ng-show=\\\"order.showOrderRows\\\">\\n <td> </td>\\n <td colspan=\\\"6\\\"><!-- Fulfillment lineitems -->\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.variant2' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.fulfilledQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.fulfilledQuantityShort' | translate }}\\n </th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.pickedQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.pickedQuantityShort' | translate }}\\n </th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.pickableQuantity' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">\\n {{ 'resellerorder.pickableQuantityShort' | translate }}\\n </th>\\n <th>\\n <button ng-click=\\\"vm.confirmPickAll(order)\\\"\\n ng-show=\\\"vm.canPickAll(order) && order.fulfillmentLineItems.length > 1\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.confirmAllPicks' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n class=\\\"btn btn-default\\\">{{ 'resellerorder.confirmAllPicksShort' | translate }}</button>\\n </th>\\n <th>\\n <label class=\\\"i-checks m-t-xs\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.toggleAllCloseOrderRowAfterPick' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n ng-show=\\\"vm.canPickAll(order) && order.fulfillmentLineItems.length > 1\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\"\\n ng-model=\\\"order.closeAllPickings\\\"\\n ng-change=\\\"vm.toggleClosePicking(order)\\\" />\\n <i></i>\\n </label>\\n </th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItem in order.fulfillmentLineItems\\\">\\n <tr>\\n <td>\\n <span ng-if=\\\"$index === 0\\\"><a ng-click=\\\"vm.goToProduct(lineItem.articleId)\\\" class=\\\"ca-celllink\\\" ng-if=\\\"$index === 0\\\">{{ product.displayArticleNumber }}</a></span>\\n </td>\\n <td>\\n <span ng-if=\\\"$index === 0\\\">{{ product.articleName }}</span>\\n </td>\\n <td>{{ lineItem.variantDetail1Name }}</td>\\n <td>{{ lineItem.variantDetail2Name }}</td>\\n <td>{{ lineItem.quantity }}</td>\\n <td>{{ lineItem.pickedQuantity }}</td>\\n <td>\\n <input type=\\\"number\\\" min=\\\"0\\\"\\n ng-show=\\\"vm.canPick(lineItem)\\\"\\n ng-model=\\\"lineItem.pickableQuantity\\\">\\n <span ng-show=\\\"!vm.canPick(lineItem)\\\">{{ lineItem.pickableQuantity }}</span>\\n </td>\\n <td>\\n <button ng-click=\\\"vm.confirmPicking(lineItem)\\\"\\n ng-show=\\\"vm.canPick(lineItem)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.confirmPick' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n class=\\\"btn btn-default\\\">{{ 'resellerorder.confirmPickShort' | translate }}</button>\\n </td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.closeOrderRowAfterPick' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n ng-show=\\\"vm.canPick(lineItem)\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"lineItem.closePicking\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-sm-12\\\">\\n <div class=\\\"col-sm-8\\\">\\n <ca-form-group-row label=\\\"'resellerorder.addproduct'\\\">\\n <ca-reseller-order-product-search-multi-select\\n order-id=\\\"vm.resellerOrder.id\\\"\\n select-same-twice-allowed=\\\"false\\\"\\n articles-to-exclude=\\\"vm.excludedArticles\\\"\\n on-articles-retrieved=\\\"vm.receiveArticles(articles)\\\"\\n disabled=\\\"!vm.canModifyLineItems()\\\" />\\n </ca-form-group-row>\\n </div>\\n</div>\\n\\n<div class=\\\"col-lg-12\\\">\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.quantity}\\\"><a ng-click=\\\"vm.changeToTab('quantity')\\\">{{'resellerorder.registerQuantity' | translate}}</a></li>\\n <!-- <li ng-class=\\\"{'active' : vm.tabSelection.amount}\\\"><a ng-click=\\\"vm.changeToTab('amount')\\\">{{'resellerorder.registerPrice' | translate}}</a></li> -->\\n <li ng-class=\\\"{'active' : vm.tabSelection.overview}\\\"><a ng-click=\\\"vm.changeToTab('overview')\\\">{{'resellerorder.verticalOverview' | translate}}</a></li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0 && vm.tabSelection.quantity\\\">\\n <create-reseller-order-articles-quantity reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\" on-variant-changed=\\\"vm.saveVariant(variant)\\\"></create-reseller-order-articles-quantity>\\n </div>\\n\\n <!-- <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0 && vm.tabSelection.amount\\\">\\n <create-reseller-order-articles-amount reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\"></create-reseller-order-articles-amount>\\n </div> -->\\n \\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0 && vm.tabSelection.overview\\\">\\n <create-reseller-order-articles-overview reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\"></create-reseller-order-articles-overview>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n .table-initial-width {\\n width: initial;\\n }\\n .lineItemTable thead tr th, .lineItemTable tbody tr td {\\n padding: 3px;\\n }\\n .lineItemTable thead tr th:first-child {\\n padding-right: 10px;\\n }\\n .lineItemTable tbody tr td input {\\n padding-right: 2px;\\n }\\n .max-width {\\n max-width: 30px;\\n }\\n .small-width {\\n max-width: 100px;\\n }\\n .right-aligned-header {\\n text-align: right;\\n }\\n .grey-td {\\n background-color: #ccc;\\n }\\n .grey-td input {\\n background-color: #fff;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<table class=\\\"table table-full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\" uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\" tooltip-append-to-body=\\\"true\\\"><span>+ / -</span></th>\\n <th>{{ 'resellerorder.articleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.grossPriceSum' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItemArticle in vm.lineItemsGroupedByArticle\\\">\\n <tr ng-click=\\\"lineItemArticle.article.showRows = !lineItemArticle.article.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.showArticleVariantRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.hideArticleVariantRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n {{ lineItemArticle.article.displayArticleNumber }}\\n </td>\\n <td>\\n {{ lineItemArticle.article.articleName }}\\n </td>\\n <td>\\n <span tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.price' | translate }} * {{ 'resellerorder.quantity' | translate }}\\\">{{ vm.getProductGrossPriceSum(lineItemArticle) }}</span>\\n </td>\\n <td class=\\\"right-aligned-header\\\">\\n <button ng-click=\\\"vm.removeArticleFromOrder(lineItemArticle)\\\" ng-if=\\\"vm.canDeleteArticleFromOrder(lineItemArticle.lineItemsGroupedOnVariant1)\\\" class=\\\"btn btn-sm btn-primary\\\"><i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i></button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"lineItemArticle.article.showRows\\\">\\n <td colspan=\\\"5\\\">\\n <table class=\\\"table-initial-width lineItemTable table-td-min-width\\\">\\n <thead>\\n <th><strong>{{ 'resellerorder.variant' | translate }}</strong></th>\\n <th ng-repeat=\\\"variant2 in vm.getVariant2s(lineItemArticle.lineItemsGroupedOnVariant1[0].lineItems)\\\">{{ variant2 }}</th>\\n <th>{{ 'resellerorder.averagePrice' | translate }}</th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"variant1 in lineItemArticle.lineItemsGroupedOnVariant1\\\">\\n <td>{{ variant1.variantDetail1Name }}</td>\\n <td ng-repeat=\\\"lineItem in variant1.lineItems\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\" type=\\\"number\\\"\\n placeholder=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\" min=\\\"0\\\" step=\\\"1\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.amount\\\" /></td>\\n <td>{{ vm.getVariantPriceAverage(variant1) }}</td>\\n <!-- <td class=\\\"grey-td right-align\\\" style=\\\"width: 100px;\\\" ng-if=\\\"vm.canUpdateWholeRow(variant1)\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width\\\" type=\\\"number\\\"\\n placeholder=\\\"<--\\\" min=\\\"0\\\" step=\\\"1\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.updateWholeRow(variant1, variant1.wholeRowAmount)\\\"\\n ng-model=\\\"variant1.wholeRowAmount\\\" />\\n </td> -->\\n <td class=\\\"right-align\\\" ng-if=\\\"vm.canClearRow(variant1)\\\" style=\\\"padding-right:0;\\\">\\n <button ng-click=\\\"vm.confirmClearRow(variant1)\\\" class=\\\"btn btn-sm btn-primary\\\"><i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i></button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n</table>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n .table-initial-width {\\n width: initial;\\n }\\n .padding-bottom td:last-child {\\n padding-bottom: 10px;\\n }\\n .max-width {\\n max-width: 30px;\\n }\\n .small-width {\\n max-width: 100px;\\n }\\n td.right-align {\\n text-align: right;\\n padding-left:5px;\\n padding-right:5px;\\n }\\n .right-align input {\\n float:right;\\n text-align: right;\\n padding-right: 0px;\\n }\\n .center-aligned-header {\\n text-align: center;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<table class=\\\"table table-full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\" tooltip-append-to-body=\\\"true\\\">{{ 'resellerorder.grossPricePerPieceShort' | translate }}</th>\\n <th>{{ 'resellerorder.grossPriceSum' | translate }}</th>\\n <th>{{ 'resellerorder.totalQuantitySum' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItemArticle in vm.lineItemsGroupedByArticle\\\">\\n <tr ng-click=\\\"lineItemArticle.article.showRows = !lineItemArticle.article.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.showArticleVariantRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.hideArticleVariantRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(lineItemArticle.article.id)\\\" class=\\\"ca-celllink\\\">{{ lineItemArticle.article.displayArticleNumber }}</a>\\n </td>\\n <td>\\n {{ lineItemArticle.article.articleName }}\\n </td>\\n <td>{{ vm.getProductGrossPrice(lineItemArticle).toFixed(2) }}</td>\\n <td>\\n <span tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.price' | translate }} * {{ 'resellerorder.quantity' | translate }}\\\">{{ vm.getProductGrossPriceSum(lineItemArticle).toFixed(2) }}</span>\\n </td>\\n <td>{{ vm.getProductQuantitySum(lineItemArticle) }}</td>\\n <td class=\\\"right-aligned-header\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"vm.removeArticleFromOrder(lineItemArticle)\\\"\\n ng-if=\\\"vm.canDeleteArticleFromOrder(lineItemArticle.lineItemsGroupedOnVariant1)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.removeProduct' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"lineItemArticle.article.showRows\\\">\\n <td> </td>\\n <td colspan=\\\"6\\\">\\n <table class=\\\"table-initial-width table-td-min-width\\\">\\n <thead>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.variant2' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\">{{ 'resellerorder.grossPricePerPiece' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\">{{ 'resellerorder.discountPercent' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\" uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">{{ 'resellerorder.grossPricePerPieceWithDiscountShort' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\">{{ 'resellerorder.quantityShort' | translate }}</th>\\n </thead>\\n <tbody ng-repeat=\\\"lineItem in lineItemArticle.lineItems\\\">\\n <tr>\\n <td>{{ lineItem.variantDetail1Name }}</td>\\n <td>{{ lineItem.variantDetail2Name }}</td>\\n <td class=\\\"right-align\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\"\\n type=\\\"number\\\" min=\\\"0\\\"\\n placeholder=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.amount\\\" />\\n </td>\\n <td class=\\\"right-align\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\"\\n type=\\\"number\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\"\\n placeholder=\\\"{{ 'resellerorder.discountPercent' | translate }}\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.discountPercent\\\"\\n percent-input\\n />\\n </td>\\n <td class=\\\"right-align\\\">\\n <span>\\n {{ vm.getFinalAmount(lineItem).toFixed(2) }}\\n </span>\\n </td>\\n <td class=\\\"right-align\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\"\\n type=\\\"number\\\" min=\\\"0\\\" step=\\\"1\\\"\\n placeholder=\\\"{{ 'resellerorder.quantity' | translate }}\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.quantity\\\" />\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr style=\\\"border-top:1px solid black;\\\">\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"right-align\\\">\\n <input type=\\\"number\\\" class=\\\"form-control small-width clean-look-input\\\" disabled ng-value=\\\"vm.getProductQuantitySum(lineItemArticle)\\\">\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getTotalGrossPriceSum().toFixed(2) }}</td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getTotalQuantitySum() }}</td>\\n <td> </td>\\n </tr>\\n </tbody>\\n</table>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n .table-initial-width {\\n width: initial;\\n }\\n .lineItemTable thead tr th, .lineItemTable tbody tr td {\\n padding: 3px;\\n }\\n .lineItemTable thead tr th:first-child {\\n padding-right: 10px;\\n }\\n .lineItemTable tbody tr td input {\\n padding-right: 2px;\\n }\\n .max-width {\\n max-width: 30px;\\n }\\n .small-width {\\n max-width: 100px;\\n }\\n .right-aligned-header {\\n text-align: right;\\n }\\n .grey-td {\\n background-color: #ccc;\\n }\\n .grey-td input {\\n background-color: #fff;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<table class=\\\"table table-full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.totalQuantitySum' | translate }}</th>\\n <th>{{ 'resellerorder.deliveryDate' | translate }}</th>\\n <th> </th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItemArticle in vm.lineItemsGroupedByArticle\\\">\\n <tr ng-click=\\\"lineItemArticle.article.showRows = !lineItemArticle.article.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.showArticleVariantRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.hideArticleVariantRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(lineItemArticle.article.id)\\\" class=\\\"ca-celllink\\\">{{ lineItemArticle.article.displayArticleNumber }}</a>\\n </td>\\n <td>\\n {{ lineItemArticle.article.articleName }}\\n </td>\\n <td>\\n {{ vm.getProductQuantitySum(lineItemArticle) }}\\n </td>\\n <td>\\n <wj-input-date\\n value=\\\"lineItemArticle.article.plannedDeliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"max-width:200px\\\"\\n ng-disabled=\\\"!vm.canModifyLineItemDeliveryDate(lineItemArticle)\\\"\\n value-changed=\\\"vm.deliveryDateChanged(lineItemArticle)\\\">\\n </wj-input-date>\\n </td>\\n <td class=\\\"right-aligned-header\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"vm.removeArticleFromOrder(lineItemArticle)\\\"\\n ng-if=\\\"vm.canDeleteArticleFromOrder(lineItemArticle.lineItemsGroupedOnVariant1)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.removeProduct' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"lineItemArticle.article.showRows\\\">\\n <td> </td>\\n <td colspan=\\\"5\\\" style=\\\"padding-right:15px;\\\">\\n <table class=\\\"table-initial-width lineItemTable table-td-min-width\\\">\\n <thead>\\n <th><strong>{{ 'resellerorder.variant' | translate }}</strong></th>\\n <th>{{ 'resellerorder.grossPricePerPieceShort' | translate }}</th>\\n <th>{{ 'resellerorder.discountPercent' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">{{ 'resellerorder.grossPricePerPieceWithDiscountShort' | translate }}</th>\\n <th ng-repeat=\\\"variant2 in vm.getVariant2s(lineItemArticle.lineItemsGroupedOnVariant1[0].lineItems)\\\">{{ variant2 }}</th>\\n <th>{{ 'resellerorder.quantitySum' | translate }}</th>\\n <th colspan=\\\"2\\\"> </th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"variant1 in lineItemArticle.lineItemsGroupedOnVariant1\\\" >\\n <td>{{ variant1.variantDetail1Name }}</td>\\n <td>\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width\\\" type=\\\"number\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.setWholeRowAmount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n placeholder=\\\"{{ variant1.initialProductGrossPrice.toFixed(2) }}\\\" min=\\\"0\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 200}\\\"\\n ng-change=\\\"vm.setWholeRowPrice(lineItemArticle, variant1)\\\"\\n ng-model=\\\"variant1.wholeRowPrice\\\" /></td>\\n </td>\\n <td>\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.setWholeRowDiscountPercent' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n type=\\\"number\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\"\\n placeholder=\\\"0%\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 200}\\\"\\n ng-change=\\\"vm.setWholeRowDiscountPercent(lineItemArticle, variant1)\\\"\\n ng-model=\\\"variant1.wholeRowDiscountPercent\\\"\\n percent-input\\n />\\n </td>\\n <td>\\n <span uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscountCalculation' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">\\n {{ vm.getFinalAmount(lineItemArticle, variant1).toFixed(2) }}\\n </span>\\n </td>\\n <td ng-repeat=\\\"lineItem in variant1.lineItems\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\" type=\\\"number\\\"\\n placeholder=\\\"{{ 'resellerorder.quantity' | translate }}\\\" min=\\\"0\\\" step=\\\"1\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 200}\\\"\\n ng-change=\\\"vm.saveVariant(variant1)\\\"\\n ng-model=\\\"lineItem.quantity\\\" /></td>\\n <td>{{ vm.getVariantQuantitySum(variant1) }}</td>\\n <td class=\\\"right-align\\\" ng-if=\\\"vm.canClearRow(variant1)\\\" style=\\\"padding-right:0;\\\">\\n <button ng-click=\\\"vm.confirmClearRow(variant1)\\\"\\n class=\\\"btn btn-sm btn-primary\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.clearRowQuantities' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-times\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getTotalQuantitySum() }}</td>\\n <td> </td>\\n <td> </td>\\n </tr>\\n </tbody>\\n</table>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-11\\\">\\n <ui-select multiple=\\\"\\\" class=\\\"editable-input\\\" ng-model=\\\"vm.articlesToAdd\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.disabled\\\">\\n <ui-select-match placeholder=\\\"{{'order.addarticle' | translate}}\\\">\\n <span>{{::$item.displayName}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"article in vm.searchResultArticles track by article.id\\\" refresh=\\\"vm.refreshArticles($select.search)\\\" refresh-delay=\\\"200\\\">\\n <span>{{::article.displayName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-lg-1\\\">\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.addArticles()\\\" ng-disabled=\\\"vm.disabled\\\">+</button>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"b-t b-b\\\" style=\\\"margin-left: 16px;margin-right: 16px; margin-bottom: 25px;\\\">\\n <button style=\\\"margin-top:-1px; margin-left:4px; margin-right:6px\\\" ng-click=\\\"vm.createNewOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}}</button>\\n <button style=\\\"margin-top:-1px; margin-left:-1px;\\\" ng-click=\\\"vm.createNewReturnOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}} {{'resellerorder.resellerreturnordershort' | translate}}</button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <resellerorder-breadcrumbs current-page=\\\"{ link: 'resellerorder.view', order: vm.resellerOrder }\\\"></resellerorder-breadcrumbs>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <style>\\n div.ca-hover-background:hover {\\n background-color: #f6f6f6;\\n }\\n </style>\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>{{'common.order' | translate}}: \\n <span ng-show=\\\"vm.isEditingOrderNumber\\\">\\n <input ng-model=\\\"vm.editedOrderNumber\\\" type=\\\"text\\\" placeholder=\\\"{{vm.resellerOrder.orderNumber}}\\\">\\n <button tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.save' | translate }} {{ 'resellerorder.orderNumber' | translate }}\\\"\\n class=\\\"btn btn-default\\\" ng-click=\\\"vm.tryToSaveNewOrderNumber()\\\"><i class=\\\"fa fa-floppy-o\\\" style=\\\"font-size:28; text-align: center;\\\"></i></button>\\n </span>\\n <span ng-show=\\\"!vm.isEditingOrderNumber\\\">{{vm.resellerOrder.orderNumber}}\\n <button tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.edit' | translate }} {{ 'resellerorder.orderNumber' | translate }}\\\"\\n class=\\\"btn btn-default\\\" ng-click=\\\"vm.editOrderNumber()\\\"><i class=\\\"fa fa-pencil\\\" style=\\\"font-size:28; text-align: center;\\\"></i></button>\\n </span>\\n </h3>\\n </div>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\" ng-if=\\\"vm.canCancelOrder() || vm.canConfirmOrder()\\\" style=\\\"margin-top:3px;\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width:30%;\\\">\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.cancelOrder()\\\" ng-disabled=\\\"vm.canCancelOrder()\\\">{{ 'resellerorder.cancelOrder' | translate }}</button>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.printOrder()\\\" ng-disabled=\\\"!vm.canPrintOrder()\\\">\\n <i class=\\\"fa fa-file-pdf-o fa-lg\\\" aria-hidden=\\\"true\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.printOrderPdf' | translate }}\\\"></i>\\n </button>\\n <button ng-click=\\\"vm.getResellerOrderCsv()\\\" class=\\\"btn btn-sm btn-default\\\">\\n <i class=\\\"fa fa-file-excel-o fa-lg\\\" aria-hidden=\\\"true\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{'resellerorder.printOrderCsv' | translate}}\\\"></i>\\n </button>\\n </span>\\n </div>\\n\\n <div>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width:30%; color:grey;\\\">\\n {{ vm.synchronizationStatus }} \\n <i class=\\\"fa fa-spinner fa-spin fa-fw\\\" ng-show=\\\"vm.isSaving\\\"></i> \\n </span>\\n </div>\\n\\n <div style=\\\"margin-top:20px;\\\">\\n <readonly-reseller-order-header reseller-order=\\\"vm.resellerOrder\\\" init-collapsed=\\\"true\\\"></readonly-reseller-order-header>\\n\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top:0px; margin-bottom: 10px;\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.setWholeOrderDeliveryDate()\\\" ng-disabled=\\\"!vm.canSetWholeOrderDeliveryDate()\\\">{{ 'resellerorder.setWholeOrderDeliveryDate' | translate }}</button>\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.setWholeOrderDiscountPercent()\\\" ng-disabled=\\\"!vm.canSetWholeOrderDiscountPercent()\\\">{{ 'resellerorder.setWholeOrderDiscountPercent' | translate }}</button>\\n </div>\\n\\n <div style=\\\"margin-top:5px;\\\">\\n <create-reseller-order-add-line-items reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\" on-variant-changed=\\\"vm.saveVariant(variant)\\\"></create-reseller-order-add-line-items>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div style=\\\"float:left; max-width: 33%;\\\">\\n <span ng-if=\\\"vm.showSearchToggle()\\\" ng-disabled=\\\"!vm.selectedOrder || !vm.selectedOrder.id\\\" ng-click=\\\"vm.toggleSearchFields()\\\" class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"!vm.showSearchFields\\\"> {{'resellerorder.showSearchFields' | translate}}</span>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"vm.showSearchFields\\\"></i><span class=\\\"ca-font\\\" ng-show=\\\"vm.showSearchFields\\\"> {{'resellerorder.hideSearchFields' | translate}}</span> \\n </span>\\n </div>\\n <div class=\\\"col-lg-12\\\" style=\\\"clear:both; height: 1px;\\\"> </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showSearchFields\\\">\\n <ca-reseller-order-search search-term=\\\"vm.searchTerm\\\" on-reseller-order-selected=\\\"vm.transitionToState(order)\\\"></ca-reseller-order-search>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-if=\\\"vm.selectedOrder && vm.selectedOrder.id\\\">\\n <div> </div>\\n <!-- Panel for showing selected order goes here -->\\n <ca-reseller-order order-id=\\\"vm.selectedOrder.id\\\"> </ca-reseller-order>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"b-t b-b\\\" style=\\\"margin-left: 16px;margin-right: 16px; margin-bottom: 25px;\\\">\\n <button style=\\\"margin-top:-1px; margin-left:4px; margin-right:6px\\\" ng-click=\\\"vm.createNewOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}}</button>\\n <button style=\\\"margin-top:-1px; margin-left:-1px;\\\" ng-click=\\\"vm.createNewReturnOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}} {{'resellerorder.resellerreturnordershort' | translate}}\\n </button>\\n</div>\\n<div class=\\\"col-lg-12\\\"> \\n\\n <resellerorder-breadcrumbs current-page=\\\"{ link: 'resellerorder.view', order: vm.resellerOrder }\\\"></resellerorder-breadcrumbs>\\n\\n <style>\\n div.ca-hover-background:hover {\\n background-color: #f6f6f6;\\n }\\n </style>\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>\\n <span ng-show=\\\"vm.resellerOrder.orderType === 'ResellerReturnOrder'\\\">{{'customerorder.typeReturnOrder' | translate}}:</span>\\n <span ng-show=\\\"vm.resellerOrder.orderType !== 'ResellerReturnOrder'\\\">{{'common.order' | translate}}:</span>\\n <span ng-show=\\\"vm.isEditingOrderNumber\\\">\\n <input ng-model=\\\"vm.editedOrderNumber\\\" type=\\\"text\\\" placeholder=\\\"{{vm.resellerOrder.orderNumber}}\\\">\\n <button tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.save' | translate }} {{ 'resellerorder.orderNumber' | translate }}\\\"\\n class=\\\"btn btn-default\\\" ng-click=\\\"vm.tryToSaveNewOrderNumber()\\\"><i class=\\\"fa fa-floppy-o\\\" style=\\\"font-size:28; text-align: center;\\\"></i></button>\\n </span>\\n <span ng-show=\\\"!vm.isEditingOrderNumber\\\">{{vm.resellerOrder.orderNumber}}\\n <button tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.edit' | translate }} {{ 'resellerorder.orderNumber' | translate }}\\\" \\n class=\\\"btn btn-default\\\" ng-click=\\\"vm.editOrderNumber()\\\"><i class=\\\"fa fa-pencil\\\" style=\\\"font-size:28; text-align: center;\\\"></i></button>\\n </span>\\n </h3>\\n </div>\\n <div> \\n <button ng-click=\\\"vm.getResellerOrderPdf()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'resellerorder.printOrderPdf' | translate}}\\n </button>\\n <button ng-click=\\\"vm.getResellerOrderCsv()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'resellerorder.printOrderCsv' | translate}}\\n </button>\\n \\n <button ng-click=\\\"vm.getResellerOrderDeliveryNotePdf()\\\" class=\\\"btn btn-sm btn-default\\\" ng-if=\\\"vm.DeliveryNoteAvailable()\\\">\\n {{'resellerorder.printDeliveryNotePdf' | translate}}\\n </button>\\n <!-- <button ng-click=\\\"vm.getResellerOrderPickingList()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'resellerorder.printOrderPickingListPdf' | translate}}\\n </button>\\n <button ng-click=\\\"vm.getResellerOrderDeliveryOrderPdf()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'resellerorder.printOrderDeliveryOrderPdf' | translate}}\\n </button>\\n <button ng-click=\\\"vm.getResellerOrderInvoicePdf()\\\" class=\\\"btn btn-sm btn-default\\\">\\n {{'resellerorder.printOrderInvoicePdf' | translate}}\\n </button> -->\\n </div>\\n\\n <div style=\\\"margin-top:20px;\\\">\\n <readonly-reseller-order-header reseller-order=\\\"vm.resellerOrder\\\"></readonly-reseller-order-header>\\n\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.lineItems}\\\"><a ng-click=\\\"vm.changeToOrderRowsTab()\\\">{{'resellerorder.orderproducts' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.fulfillments}\\\" ng-if=\\\"vm.resellerOrder.deliveries && vm.resellerOrder.deliveries.length > 0\\\"><a ng-click=\\\"vm.changeToFulfillmentsTab()\\\">{{'resellerorder.deliveries' | translate}}</a></li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.lineItems\\\">\\n <!-- Reseller order rows -->\\n <ca-reseller-order-rows\\n ng-show=\\\"vm.resellerOrder.lineItems.length > 0\\\"\\n reseller-order=\\\"vm.resellerOrder\\\"\\n product-number-to-expand=\\\"vm.productNumberToExpand\\\"\\n ></ca-reseller-order-rows>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.fulfillments\\\">\\n <!-- Reseller order deliveries -->\\n <ca-reseller-order-deliveries\\n reseller-order=\\\"vm.resellerOrder\\\"\\n ></ca-reseller-order-deliveries>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .center-aligned-header {\\n text-align: center;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<div>\\n <table class=\\\"table table-condensed caHoverTable\\\">\\n <thead>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{'resellerorder.alternativeArticleNumber' | translate}}</th>\\n <th>{{'resellerorder.articleName' | translate}}</th>\\n <th uib-tooltip=\\\"{{'resellerorder.fulfillmentdates' | translate}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">{{ 'time.date' | translate }}</th>\\n <th>{{'resellerorder.totalfulfillablequantity' | translate}}</th>\\n <th uib-tooltip=\\\"{{'resellerorder.fulfillableQuantity' | translate}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">{{'resellerorder.fulfillableQuantityShort' | translate}}</th>\\n <th uib-tooltip=\\\"{{'resellerorder.fulfilledQuantity' | translate}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">{{'resellerorder.fulfilledQuantityShort' | translate}}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\" tooltip-append-to-body=\\\"true\\\">{{'resellerorder.grossPricePerPieceShort' | translate}}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\">{{'resellerorder.grossPricePerPieceWithDiscountShort' | translate}}</th>\\n <th>{{'resellerorder.totalamount' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"row in vm.articleGroupedItemLines\\\">\\n <tr class=\\\"caHoverRow\\\" ng-click=\\\"row.showRows = !row.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!row.showRows\\\" uib-tooltip=\\\"{{'resellerorder.showDeliveryRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"row.showRows\\\" uib-tooltip=\\\"{{'resellerorder.hideDeliveryRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(lineItem.articleId)\\\" class=\\\"ca-celllink\\\">{{ row.DisplayArticleNumber }}</a>\\n </td>\\n <td> {{ row.ArticleName }} </td>\\n <td> {{ row.FulfillmentDateRange }} </td>\\n <td> {{ row.TotalFulfillableQuantity }} </td>\\n <td> {{ row.LeftToBeFulfilledQuantity }} </td>\\n <td> {{ row.FulfilledQuantity }} </td>\\n <td> {{ row.AveragePricePerPiece.toFixed(2) }} </td>\\n <td> {{ row.AveragePriceMinusDiscountPerPiece.toFixed(2) }} </td>\\n <td> {{ row.TotalAmount.toFixed(2) }} </td>\\n </tr>\\n\\n <tr ng-show=\\\"row.showRows\\\">\\n <td colspan=\\\"10\\\">\\n <!-- Delivery Rows -->\\n <table class=\\\"table table-condensed caHoverTable table-td-min-width\\\">\\n <thead>\\n <th>{{'resellerorder.article' | translate}}</th>\\n <th> Färg </th>\\n <th> Storlek </th>\\n <th>{{'resellerorder.fulfillmentdates' | translate}}</th>\\n <th>{{'resellerorder.totalfulfillablequantity' | translate}}</th>\\n <th uib-tooltip=\\\"{{'resellerorder.fulfillableQuantity' | translate}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">{{'resellerorder.fulfillableQuantityShort' | translate}}</th>\\n <th uib-tooltip=\\\"{{'resellerorder.fulfilledQuantity' | translate}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\">{{'resellerorder.fulfilledQuantityShort' | translate}}</th>\\n <th>{{'resellerorder.priceperpiece' | translate}}</th>\\n <th>{{'resellerorder.discountPercent' | translate}}</th>\\n <th>{{'resellerorder.totalamount' | translate}}</th>\\n </thead>\\n <tbody ng-repeat=\\\"lineItem in row.LineItems\\\">\\n <tr class=\\\"caHoverRow-light\\\">\\n <td> {{ lineItem.displayArticleNumber }} </td>\\n <td> {{ lineItem.variantDetail1Name }} </td>\\n <td> {{ lineItem.variantDetail2Name }} </td>\\n <td> {{ vm.getArticleFulfillmentDateRangeString([lineItem]) }} </td>\\n <td> {{ lineItem.quantity }} </td>\\n <td> {{ lineItem.quantity - lineItem.fulfilledQuantity }} </td>\\n <td> {{ lineItem.fulfilledQuantity }} </td>\\n <td> {{ lineItem.amount.toFixed(2) }} </td>\\n <td> {{ (lineItem.discountPercent * 100) + '%' }} </td>\\n <td> {{ ((lineItem.amount - lineItem.discountAmountPerItem) * lineItem.quantity).toFixed(2) }} </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr class=\\\"boldCellText\\\">\\n <td colspan=\\\"4\\\"> </td>\\n <td>{{ vm.getTotalFulfillableQuantity(row.LineItems) }}</td>\\n <td>{{ vm.getLeftToBeFulfilledQuantity(row.LineItems) }}</td>\\n <td>{{ vm.getFulfilledQuantity(row.LineItems) }}</td>\\n <td> </td>\\n <td> </td>\\n <td> {{ vm.getTotalAmount(row.LineItems).toFixed(2) }} </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n\\n <tbody>\\n <tr class=\\\"boldCellText\\\">\\n <td colspan=\\\"4\\\"> </td>\\n <td>{{ vm.getOrderTotalFulfillableQuantity() }}</td>\\n <td>{{ vm.getOrderLeftToBeFulfilledQuantity() }}</td>\\n <td>{{ vm.getOrderFulfilledQuantity() }}</td>\\n <td> </td>\\n <td> </td>\\n <td>{{ vm.getOrderTotalAmount().toFixed(2) }}</td>\\n </tr>\\n </tbody>\\n\\n </table>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <!-- Panel for showing selected order goes here -->\\n <ca-reseller-order order-id=\\\"vm.selectedOrder.id\\\" product-number-to-expand=\\\"vm.productNumberToExpand\\\"> </ca-reseller-order>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<!-- Reseller order head -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:33%;\\\" >\\n <div>{{'resellerorder.orderHead' | translate}}:</div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'resellerorder.salelocation' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedSaleLocation\\\" choices=\\\"vm.stores\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\" ></ca-singleselect></td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.warehouse' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedWarehouse\\\" choices=\\\"vm.warehouses\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\" ></ca-singleselect></td>\\n </tr>\\n <tr>\\n <td>{{'article.collection' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedCollection\\\" choices=\\\"vm.collections\\\" order-by=\\\"'collectionDescription'\\\" item-renderer=\\\"'collectionDescription'\\\" filter-by=\\\"['collectionDescription']\\\" /></td>\\n </tr>\\n <tr>\\n <td>{{'resellerorder.orderReference' | translate}}</td>\\n <td><input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{ 'resellerorder.externalOrderNumber' | translate }} ({{ 'common.optional' | translate }})\\\"\\n ng-model=\\\"vm.resellerOrder.externalOrderNumber\\\" /></td>\\n </tr>\\n </tbody>\\n </table>\\n</div>\\n\\n<!-- Reseller information -->\\n<div class=\\\"ca-hover-background\\\" style=\\\"float:left; width:33%; margin-left:30px;\\\">\\n <div>{{'resellerorder.reseller' | translate}}:</div>\\n <div>\\n <table class=\\\"table table-condensed\\\">\\n <tbody>\\n <tr>\\n <td>{{'resellerorder.reseller' | translate}}</td>\\n <td><ca-singleselect model=\\\"vm.selectedReseller\\\" choices=\\\"vm.resellers\\\" order-by=\\\"'displayName'\\\" item-renderer=\\\"['displayName']\\\" ></ca-singleselect></td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-lg-12\\\">\\n <style>\\n div.ca-hover-background:hover {\\n background-color: #f6f6f6;\\n }\\n </style>\\n <div class=\\\"b-t b-b\\\" style=\\\"margin-left: 0px;margin-right: 0px; margin-bottom: 25px;\\\">\\n <button style=\\\"margin-top:-1px; margin-left:4px; margin-right:6px\\\" ng-click=\\\"vm.createNewOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}}</button>\\n </div>\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>{{'resellerorder.createOrder' | translate}} </h3>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width: 100%;\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.createOrderHeader()\\\" ng-disabled=\\\"!vm.canCreateOrderHeader()\\\">{{ 'resellerorder.createOrder' | translate }}</button>\\n </span>\\n </div>\\n </div>\\n <div style=\\\"margin-top:20px;\\\">\\n <create-reseller-return-order-header reseller-order=\\\"vm.resellerOrder\\\"></create-reseller-return-order-header>\\n\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"col-sm-12\\\">\\n <div class=\\\"col-sm-8\\\">\\n <ca-form-group-row label=\\\"'resellerorder.addproduct'\\\">\\n <ca-reseller-return-order-product-search-multi-select\\n order-id=\\\"vm.resellerOrder.id\\\"\\n select-same-twice-allowed=\\\"false\\\"\\n articles-to-exclude=\\\"vm.excludedArticles\\\"\\n on-articles-retrieved=\\\"vm.receiveArticles(articles)\\\"\\n disabled=\\\"!vm.canModifyLineItems()\\\" />\\n </ca-form-group-row>\\n </div>\\n</div>\\n\\n<div class=\\\"col-lg-12\\\">\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.quantity}\\\"><a ng-click=\\\"vm.changeToTab('quantity')\\\">{{'resellerorder.registerQuantity' | translate}}</a></li>\\n <!-- <li ng-class=\\\"{'active' : vm.tabSelection.amount}\\\"><a ng-click=\\\"vm.changeToTab('amount')\\\">{{'resellerorder.registerPrice' | translate}}</a></li> -->\\n <li ng-class=\\\"{'active' : vm.tabSelection.overview}\\\"><a ng-click=\\\"vm.changeToTab('overview')\\\">{{'resellerorder.verticalOverview' | translate}}</a></li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0 && vm.tabSelection.quantity\\\">\\n <create-reseller-return-order-articles-quantity reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\" on-variant-changed=\\\"vm.saveVariant(variant)\\\"></create-reseller-order-articles-quantity>\\n </div>\\n\\n <!-- <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0 && vm.tabSelection.amount\\\">\\n <create-reseller-order-articles-amount reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\"></create-reseller-order-articles-amount>\\n </div> -->\\n \\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.resellerOrder.lineItems && vm.resellerOrder.lineItems.length > 0 && vm.tabSelection.overview\\\">\\n <create-reseller-return-order-articles-overview reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\"></create-reseller-order-articles-overview>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n .table-initial-width {\\n width: initial;\\n }\\n .lineItemTable thead tr th, .lineItemTable tbody tr td {\\n padding: 3px;\\n }\\n .lineItemTable thead tr th:first-child {\\n padding-right: 10px;\\n }\\n .lineItemTable tbody tr td input {\\n padding-right: 2px;\\n }\\n .max-width {\\n max-width: 30px;\\n }\\n .small-width {\\n max-width: 100px;\\n }\\n .right-aligned-header {\\n text-align: right;\\n }\\n .grey-td {\\n background-color: #ccc;\\n }\\n .grey-td input {\\n background-color: #fff;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<table class=\\\"table table-full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\" uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\" tooltip-append-to-body=\\\"true\\\"><span>+ / -</span></th>\\n <th>{{ 'resellerorder.articleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.grossPriceSum' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItemArticle in vm.lineItemsGroupedByArticle\\\">\\n <tr ng-click=\\\"lineItemArticle.article.showRows = !lineItemArticle.article.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.showArticleVariantRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.hideArticleVariantRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n {{ lineItemArticle.article.displayArticleNumber }}\\n </td>\\n <td>\\n {{ lineItemArticle.article.articleName }}\\n </td>\\n <td>\\n <span tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.price' | translate }} * {{ 'resellerorder.quantity' | translate }}\\\">{{ vm.getProductGrossPriceSum(lineItemArticle) }}</span>\\n </td>\\n <td class=\\\"right-aligned-header\\\">\\n <button ng-click=\\\"vm.removeArticleFromOrder(lineItemArticle)\\\" ng-if=\\\"vm.canDeleteArticleFromOrder(lineItemArticle.lineItemsGroupedOnVariant1)\\\" class=\\\"btn btn-sm btn-primary\\\"><i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i></button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"lineItemArticle.article.showRows\\\">\\n <td colspan=\\\"5\\\">\\n <table class=\\\"table-initial-width lineItemTable table-td-min-width\\\">\\n <thead>\\n <th><strong>{{ 'resellerorder.variant' | translate }}</strong></th>\\n <th ng-repeat=\\\"variant2 in vm.getVariant2s(lineItemArticle.lineItemsGroupedOnVariant1[0].lineItems)\\\">{{ variant2 }}</th>\\n <th>{{ 'resellerorder.averagePrice' | translate }}</th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"variant1 in lineItemArticle.lineItemsGroupedOnVariant1\\\">\\n <td>{{ variant1.variantDetail1Name }}</td>\\n <td ng-repeat=\\\"lineItem in variant1.lineItems\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\" type=\\\"number\\\"\\n placeholder=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\" min=\\\"0\\\" step=\\\"1\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.amount\\\" /></td>\\n <td>{{ vm.getVariantPriceAverage(variant1) }}</td>\\n <!-- <td class=\\\"grey-td right-align\\\" style=\\\"width: 100px;\\\" ng-if=\\\"vm.canUpdateWholeRow(variant1)\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width\\\" type=\\\"number\\\"\\n placeholder=\\\"<--\\\" min=\\\"0\\\" step=\\\"1\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.updateWholeRow(variant1, variant1.wholeRowAmount)\\\"\\n ng-model=\\\"variant1.wholeRowAmount\\\" />\\n </td> -->\\n <td class=\\\"right-align\\\" ng-if=\\\"vm.canClearRow(variant1)\\\" style=\\\"padding-right:0;\\\">\\n <button ng-click=\\\"vm.confirmClearRow(variant1)\\\" class=\\\"btn btn-sm btn-primary\\\"><i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i></button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n</table>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n .table-initial-width {\\n width: initial;\\n }\\n .padding-bottom td:last-child {\\n padding-bottom: 10px;\\n }\\n .max-width {\\n max-width: 30px;\\n }\\n .small-width {\\n max-width: 100px;\\n }\\n td.right-align {\\n text-align: right;\\n padding-left:5px;\\n padding-right:5px;\\n }\\n .right-align input {\\n float:right;\\n text-align: right;\\n padding-right: 0px;\\n }\\n .center-aligned-header {\\n text-align: center;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<table class=\\\"table table-full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\" tooltip-append-to-body=\\\"true\\\">{{ 'resellerorder.grossPricePerPieceShort' | translate }}</th>\\n <th>{{ 'resellerorder.grossPriceSum' | translate }}</th>\\n <th>{{ 'resellerorder.totalQuantitySum' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItemArticle in vm.lineItemsGroupedByArticle\\\">\\n <tr ng-click=\\\"lineItemArticle.article.showRows = !lineItemArticle.article.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.showArticleVariantRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.hideArticleVariantRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(lineItemArticle.article.id)\\\" class=\\\"ca-celllink\\\">{{ lineItemArticle.article.displayArticleNumber }}</a>\\n </td>\\n <td>\\n {{ lineItemArticle.article.articleName }}\\n </td>\\n <td>{{ vm.getProductGrossPrice(lineItemArticle).toFixed(2) }}</td>\\n <td>\\n <span tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.price' | translate }} * {{ 'resellerorder.quantity' | translate }}\\\">{{ vm.getProductGrossPriceSum(lineItemArticle).toFixed(2) }}</span>\\n </td>\\n <td>{{ vm.getProductQuantitySum(lineItemArticle) }}</td>\\n <td class=\\\"right-aligned-header\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\"\\n ng-click=\\\"vm.removeArticleFromOrder(lineItemArticle)\\\"\\n ng-if=\\\"vm.canDeleteArticleFromOrder(lineItemArticle.lineItemsGroupedOnVariant1)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.removeProduct' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"lineItemArticle.article.showRows\\\">\\n <td> </td>\\n <td colspan=\\\"6\\\">\\n <table class=\\\"table-initial-width table-td-min-width\\\">\\n <thead>\\n <th>{{ 'resellerorder.variant1' | translate }}</th>\\n <th>{{ 'resellerorder.variant2' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\">{{ 'resellerorder.grossPricePerPiece' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\">{{ 'resellerorder.discountPercent' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\" uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">{{ 'resellerorder.grossPricePerPieceWithDiscountShort' | translate }}</th>\\n <th class=\\\"right-aligned-header\\\">{{ 'resellerorder.quantityShort' | translate }}</th>\\n </thead>\\n <tbody ng-repeat=\\\"lineItem in lineItemArticle.lineItems\\\">\\n <tr>\\n <td>{{ lineItem.variantDetail1Name }}</td>\\n <td>{{ lineItem.variantDetail2Name }}</td>\\n <td class=\\\"right-align\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\"\\n type=\\\"number\\\" min=\\\"0\\\"\\n placeholder=\\\"{{ 'resellerorder.grossPricePerPiece' | translate }}\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.amount\\\" />\\n </td>\\n <td class=\\\"right-align\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\"\\n type=\\\"number\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\"\\n placeholder=\\\"{{ 'resellerorder.discountPercent' | translate }}\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.discountPercent\\\"\\n percent-input\\n />\\n </td>\\n <td class=\\\"right-align\\\">\\n <span>\\n {{ vm.getFinalAmount(lineItem).toFixed(2) }}\\n </span>\\n </td>\\n <td class=\\\"right-align\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\"\\n type=\\\"number\\\" min=\\\"0\\\" step=\\\"1\\\"\\n placeholder=\\\"{{ 'resellerorder.quantity' | translate }}\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 1000}\\\"\\n ng-change=\\\"vm.saveLineItem(lineItem)\\\"\\n ng-model=\\\"lineItem.quantity\\\" />\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr style=\\\"border-top:1px solid black;\\\">\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"right-align\\\">\\n <input type=\\\"number\\\" class=\\\"form-control small-width clean-look-input\\\" disabled ng-value=\\\"vm.getProductQuantitySum(lineItemArticle)\\\">\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getTotalGrossPriceSum().toFixed(2) }}</td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getTotalQuantitySum() }}</td>\\n <td> </td>\\n </tr>\\n </tbody>\\n</table>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table-full-width {\\n width: 100%;\\n }\\n .table-initial-width {\\n width: initial;\\n }\\n .lineItemTable thead tr th, .lineItemTable tbody tr td {\\n padding: 3px;\\n }\\n .lineItemTable thead tr th:first-child {\\n padding-right: 10px;\\n }\\n .lineItemTable tbody tr td input {\\n padding-right: 2px;\\n }\\n .max-width {\\n max-width: 30px;\\n }\\n .small-width {\\n max-width: 100px;\\n }\\n .right-aligned-header {\\n text-align: right;\\n }\\n .grey-td {\\n background-color: #ccc;\\n }\\n .grey-td input {\\n background-color: #fff;\\n }\\n .table-td-min-width thead th {\\n min-width: 100px;\\n padding-right: 5px;\\n }\\n</style>\\n<table class=\\\"table table-full-width table-hover\\\">\\n <thead>\\n <tr>\\n <th ng-click=\\\"vm.toggleExpandAll()\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.expandAll' | translate }} / {{ 'resellerorder.contractAll' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top-left\\\">\\n <span>\\n <i class=\\\"fa fa-plus-square-o\\\" aria-hidden=\\\"true\\\"></i> <i class=\\\"fa fa-minus-square-o\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n </th>\\n <th>{{ 'resellerorder.alternativeArticleNumber' | translate }}</th>\\n <th>{{ 'resellerorder.articleName' | translate }}</th>\\n <th>{{ 'resellerorder.totalQuantitySum' | translate }}</th>\\n <th>{{ 'resellerorder.deliveryDate' | translate }}</th>\\n <th> </th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"lineItemArticle in vm.lineItemsGroupedByArticle\\\">\\n <tr ng-click=\\\"lineItemArticle.article.showRows = !lineItemArticle.article.showRows\\\">\\n <td>\\n <span class=\\\"hidden-folded pull-left text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-show=\\\"!lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.showArticleVariantRows' | translate}}\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"lineItemArticle.article.showRows\\\"\\n uib-tooltip=\\\"{{'resellerorder.hideArticleVariantRows' | translate}}\\\"></i>\\n </span>\\n </td>\\n <td>\\n <a ng-click=\\\"vm.goToProduct(lineItemArticle.article.id)\\\" class=\\\"ca-celllink\\\">{{ lineItemArticle.article.displayArticleNumber }}</a>\\n </td>\\n <td>\\n {{ lineItemArticle.article.articleName }}\\n </td>\\n <td>\\n {{ vm.getProductQuantitySum(lineItemArticle) }}\\n </td>\\n <td>\\n <wj-input-date\\n value=\\\"lineItemArticle.article.plannedDeliveryDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"max-width:200px\\\"\\n ng-disabled=\\\"!vm.canModifyLineItemDeliveryDate(lineItemArticle)\\\"\\n value-changed=\\\"vm.deliveryDateChanged(lineItemArticle)\\\">\\n </wj-input-date>\\n </td>\\n <td class=\\\"right-aligned-header\\\">\\n <button class=\\\"btn btn-sm btn-danger\\\"\\n ng-click=\\\"vm.removeArticleFromOrder(lineItemArticle)\\\"\\n ng-if=\\\"vm.canDeleteArticleFromOrder(lineItemArticle.lineItemsGroupedOnVariant1)\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.removeProduct' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-trash\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n <tr ng-show=\\\"lineItemArticle.article.showRows\\\">\\n <td> </td>\\n <td colspan=\\\"5\\\" style=\\\"padding-right:15px;\\\">\\n <table class=\\\"table-initial-width lineItemTable table-td-min-width\\\">\\n <thead>\\n <th><strong>{{ 'resellerorder.variant' | translate }}</strong></th>\\n <th>{{ 'resellerorder.grossPricePerPieceShort' | translate }}</th>\\n <th>{{ 'resellerorder.discountPercent' | translate }}</th>\\n <th uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">{{ 'resellerorder.grossPricePerPieceWithDiscountShort' | translate }}</th>\\n <th ng-repeat=\\\"variant2 in vm.getVariant2s(lineItemArticle.lineItemsGroupedOnVariant1[0].lineItems)\\\">{{ variant2 }}</th>\\n <th>{{ 'resellerorder.quantitySum' | translate }}</th>\\n <th colspan=\\\"2\\\"> </th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"variant1 in lineItemArticle.lineItemsGroupedOnVariant1\\\" >\\n <td>{{ variant1.variantDetail1Name }}</td>\\n <td>\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width\\\" type=\\\"number\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.setWholeRowAmount' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n placeholder=\\\"{{ variant1.initialProductGrossPrice.toFixed(2) }}\\\" min=\\\"0\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 200}\\\"\\n ng-change=\\\"vm.setWholeRowPrice(lineItemArticle, variant1)\\\"\\n ng-model=\\\"variant1.wholeRowPrice\\\" /></td>\\n </td>\\n <td>\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.setWholeRowDiscountPercent' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\"\\n type=\\\"number\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\"\\n placeholder=\\\"0%\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 200}\\\"\\n ng-change=\\\"vm.setWholeRowDiscountPercent(lineItemArticle, variant1)\\\"\\n ng-model=\\\"variant1.wholeRowDiscountPercent\\\"\\n percent-input\\n />\\n </td>\\n <td>\\n <span uib-tooltip=\\\"{{ 'resellerorder.grossPricePerPieceWithDiscountCalculation' | translate }}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top\\\">\\n {{ vm.getFinalAmount(lineItemArticle, variant1).toFixed(2) }}\\n </span>\\n </td>\\n <td ng-repeat=\\\"lineItem in variant1.lineItems\\\">\\n <input enter-as-tab class=\\\"editable-input form-control ng-pristine ng-valid ng-touched small-width enterAsTab\\\" type=\\\"number\\\"\\n placeholder=\\\"{{ 'resellerorder.quantity' | translate }}\\\" min=\\\"0\\\" step=\\\"1\\\"\\n ng-disabled=\\\"!vm.canModifyLineItem(lineItem)\\\"\\n ng-model-options=\\\"{debounce: 200}\\\"\\n ng-change=\\\"vm.saveVariant(variant1)\\\"\\n ng-model=\\\"lineItem.quantity\\\" /></td>\\n <td>{{ vm.getVariantQuantitySum(variant1) }}</td>\\n <td class=\\\"right-align\\\" ng-if=\\\"vm.canClearRow(variant1)\\\" style=\\\"padding-right:0;\\\">\\n <button ng-click=\\\"vm.confirmClearRow(variant1)\\\"\\n class=\\\"btn btn-sm btn-primary\\\"\\n uib-tooltip=\\\"{{ 'resellerorder.clearRowQuantities' | translate }}\\\"\\n tooltip-append-to-body=\\\"true\\\"\\n tooltip-placement=\\\"top\\\">\\n <i class=\\\"fa fa-times\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td style=\\\"font-weight: bold;\\\">{{ vm.getTotalQuantitySum() }}</td>\\n <td> </td>\\n <td> </td>\\n </tr>\\n </tbody>\\n</table>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-11\\\">\\n <ui-select multiple=\\\"\\\" class=\\\"editable-input\\\" ng-model=\\\"vm.articlesToAdd\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"vm.disabled\\\">\\n <ui-select-match placeholder=\\\"{{'order.addarticle' | translate}}\\\">\\n <span>{{::$item.displayName}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"article in vm.searchResultArticles track by article.id\\\" refresh=\\\"vm.refreshArticles($select.search)\\\" refresh-delay=\\\"200\\\">\\n <span>{{::article.displayName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <div class=\\\"col-lg-1\\\">\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.addArticles()\\\" ng-disabled=\\\"vm.disabled\\\">+</button>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"b-t b-b\\\" style=\\\"margin-left: 16px;margin-right: 16px; margin-bottom: 25px;\\\">\\n <button style=\\\"margin-top:-1px; margin-left:4px; margin-right:6px\\\" ng-click=\\\"vm.createNewOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}}</button>\\n <button style=\\\"margin-top:-1px; margin-left:-1px;\\\" ng-click=\\\"vm.createNewReturnOrder()\\\" class=\\\"btn btn-default\\\">\\n {{'common.new' | translate}} {{'resellerorder.resellerreturnordershort' | translate}}</button>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\">\\n <reseller-returnorder-breadcrumbs current-page=\\\"{ link: 'resellerorder.view', order: vm.resellerOrder }\\\"></resellerorder-returnorder-breadcrumbs>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <style>\\n div.ca-hover-background:hover {\\n background-color: #f6f6f6;\\n }\\n </style>\\n <div style=\\\"border-bottom: 1px solid darkgray\\\">\\n <h3>{{'customerorder.typeReturnOrder' | translate}}: \\n <span ng-show=\\\"vm.isEditingOrderNumber\\\">\\n <input ng-model=\\\"vm.editedOrderNumber\\\" type=\\\"text\\\" placeholder=\\\"{{vm.resellerOrder.orderNumber}}\\\">\\n <button tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.save' | translate }} {{ 'resellerorder.orderNumber' | translate }}\\\"\\n class=\\\"btn btn-default\\\" ng-click=\\\"vm.tryToSaveNewOrderNumber()\\\"><i class=\\\"fa fa-floppy-o\\\" style=\\\"font-size:28; text-align: center;\\\"></i></button>\\n </span>\\n <span ng-show=\\\"!vm.isEditingOrderNumber\\\">{{vm.resellerOrder.orderNumber}}\\n <button tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'common.edit' | translate }} {{ 'resellerorder.orderNumber' | translate }}\\\"\\n class=\\\"btn btn-default\\\" ng-click=\\\"vm.editOrderNumber()\\\"><i class=\\\"fa fa-pencil\\\" style=\\\"font-size:28; text-align: center;\\\"></i></button>\\n </span>\\n </h3>\\n </div>\\n\\n <div class=\\\"input-group m-b-xxs list-menu\\\" ng-if=\\\"vm.canCancelOrder() || vm.canConfirmOrder()\\\" style=\\\"margin-top:3px;\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width:30%;\\\">\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.invoiceConfirmation()\\\" ng-disabled=\\\"!vm.canCreateInvoice()\\\">Fakturera</button>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.cancelOrder()\\\" ng-disabled=\\\"vm.canCancelOrder()\\\">{{ 'resellerorder.cancelOrder' | translate }}</button>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.printOrder()\\\" ng-disabled=\\\"!vm.canPrintOrder()\\\">\\n <i class=\\\"fa fa-file-pdf-o fa-lg\\\" aria-hidden=\\\"true\\\" tooltip-placement=\\\"bottom\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'resellerorder.printOrderPdf' | translate }}\\\"></i>\\n </button>\\n </span>\\n </div>\\n\\n <div>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"text-align: left; width:30%; color:grey;\\\">\\n {{ vm.synchronizationStatus }} \\n <i class=\\\"fa fa-spinner fa-spin fa-fw\\\" ng-show=\\\"vm.isSaving\\\"></i> \\n </span>\\n </div>\\n\\n <div style=\\\"margin-top:20px;\\\">\\n <readonly-reseller-order-header reseller-order=\\\"vm.resellerOrder\\\" init-collapsed=\\\"true\\\"></readonly-reseller-order-header>\\n\\n <div style=\\\"clear:both; height: 1px\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" style=\\\"margin-top:0px; margin-bottom: 10px;\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.setWholeOrderDeliveryDate()\\\" ng-disabled=\\\"!vm.canSetWholeOrderDeliveryDate()\\\">{{ 'resellerorder.setWholeOrderDeliveryDate' | translate }}</button>\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.setWholeOrderDiscountPercent()\\\" ng-disabled=\\\"!vm.canSetWholeOrderDiscountPercent()\\\">{{ 'resellerorder.setWholeOrderDiscountPercent' | translate }}</button>\\n </div>\\n\\n <div style=\\\"margin-top:5px;\\\">\\n <create-reseller-return-order-add-line-items reseller-order=\\\"vm.resellerOrder\\\" on-line-item-changed=\\\"vm.saveLineItem(lineItem)\\\" on-variant-changed=\\\"vm.saveVariant(variant)\\\"></create-reseller-return-order-add-line-items>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div ui-view=\\\"wideColumnView\\\"></div>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .redText { color:red; }\\n .salesTotalTable thead th { text-align: right; }\\n .salesTotalTable thead th.lalign { text-align: left; }\\n .salesTotalTable tbody tr td { text-align: right; }\\n .salesTotalTable tbody tr td.lalign { text-align: left; }\\n .salesTotalTable tbody tr td tbody td { text-align: right; }\\n .salesTotalTable tbody tr td tbody td.lalign { text-align: left; }\\n .salesTotalTable tbody tr td tbody td.sumBorder { border-top:1px solid black; }\\n .noBottomBorder { border-top: none; }\\n .salesTotalTable td.noTopBorder { border-top: none; }\\n</style>\\n<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span ng-click=\\\"vm.showFilterDialog()\\\" style=\\\"height: 100%; float:left;\\\">\\n <i class=\\\"fa fa-cog fa-2\\\" aria-hidden=\\\"true\\\" style=\\\"height: 100%;\\\"></i>\\n </span>\\n <span style=\\\"margin-left:20px\\\">\\n <label>{{ 'salestotal.periodStart' | translate }}: </label>\\n {{ vm.periodStartDate | date: 'yyyy-MM-dd' }}\\n </span>\\n <span style=\\\"margin-left:20px\\\">\\n <label>{{ 'salestotal.periodEnd' | translate }}: </label>\\n {{ vm.periodEndDate | date: 'yyyy-MM-dd' }}\\n </span>\\n <span style=\\\"margin-left:20px\\\">\\n <label>{{ 'salestotal.store' | translate }}: </label>\\n {{ vm.selectedLocation && vm.selectedLocation.locationName.length > 0 ? vm.selectedLocation.locationName : '(' + ('location.location' | translate) + ')' }}\\n </span>\\n <span style=\\\"margin-left:20px\\\">\\n <label>{{ vm.includeApproved === false ? 'salestotal.hideApproved' : 'salestotal.showApproved' | translate }}</label>\\n </span>\\n <span style=\\\"margin-left:20px\\\">\\n <label>{{ vm.includeForProcessing === false ? 'salestotal.hideForProcessing' : 'salestotal.showForProcessing' | translate }}</label>\\n </span>\\n <div style=\\\"clear:both; height:0px;\\\"> </div>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-sm-12 col-md-12 col-lg-12\\\">\\n <div class=\\\"wrapper b-t text-center\\\" style=\\\"width: 80%\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.pageSize\\\" max-size=\\\"10\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n\\n <table class=\\\"table salesTotalTable\\\" style=\\\"width: 80%\\\">\\n <thead>\\n <tr>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\"> </th>\\n <th class=\\\"lalign\\\" style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.id' | translate }}</th>\\n <th class=\\\"lalign\\\" style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.periodStart' | translate }}</th>\\n <th class=\\\"lalign\\\" style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.periodEnd' | translate }}</th>\\n <th class=\\\"lalign\\\" style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.store' | translate }}</th>\\n <th class=\\\"lalign\\\" style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.registerNumber' | translate }}</th>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.totalReceiptCount' | translate }}</th>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.sumSalesTotal' | translate }}</th>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.diffSalesTotal' | translate }}</th>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.sumReceipts' | translate }}</th>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\">{{ 'salestotal.diffReceipts' | translate }}</th>\\n <th style=\\\"position: sticky; top: 0px; background-color:white;\\\"> </th>\\n </tr>\\n </thead>\\n <tbody ng-if=\\\"vm.salesTotals === undefined || vm.salesTotals.length === 0\\\"><tr><td colspan=\\\"12\\\" style=\\\"text-align: center;\\\">{{ 'salestotal.noRows' | translate }}</td></tr></tbody>\\n <tbody ng-repeat=\\\"salesTotal in vm.salesTotals\\\">\\n <tr>\\n <td ng-click=\\\"vm.toggleRows(salesTotal)\\\">\\n <span style=\\\"width: 100%;\\\" uib-tooltip=\\\"{{ salesTotal.showRows === true ? 'common.close' : 'common.open' | translate }}\\\">\\n {{ salesTotal.showRows === true ? '▽' : '▷' }}\\n </span>\\n </td>\\n <td class=\\\"lalign\\\" style=\\\"font-weight: bold;\\\">{{ salesTotal.externalId }}</td>\\n <td class=\\\"lalign\\\">{{ salesTotal.periodStart | date:'yyyy-MM-dd HH:mm' }}</td>\\n <td class=\\\"lalign\\\">{{ salesTotal.periodEnd | date:'yyyy-MM-dd HH:mm' }}</td>\\n <td class=\\\"lalign\\\">{{ salesTotal.location }}</td>\\n <td class=\\\"lalign\\\">{{ salesTotal.posId !== '0' ? salesTotal.posId : ' ' }}</td>\\n <td ng-class=\\\"{ redText: salesTotal.numberOfSales !== vm.getSalesNumberSum(salesTotal.saleTotals) }\\\">\\n <span tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'salestotal.totalSalesTotalCount' | translate }}: {{ salesTotal.numberOfSales }} / {{ 'salestotal.totalReceiptCount' | translate }}: {{ vm.getSalesNumberSum(salesTotal.saleTotals) }}\\\">\\n {{ salesTotal.numberOfSales }} / {{ vm.getSalesNumberSum(salesTotal.saleTotals) }}\\n </span>\\n </td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(vm.abs(vm.totalSaleDiff(salesTotal))) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs(vm.totalSaleDiff(salesTotal))) }}\\n </td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(vm.abs((vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) - (vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)))) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs((vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) - (vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)))) }}\\n </td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(vm.abs(vm.totalCalculatedDiff(salesTotal))) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs(vm.totalCalculatedDiff(salesTotal))) }}\\n </td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(vm.abs(vm.getCalculatedPaymentSum(salesTotal.paymentTotals) - vm.getPeriodPaymentSum(salesTotal.paymentTotals))) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs(vm.getCalculatedPaymentSum(salesTotal.paymentTotals) - vm.getPeriodPaymentSum(salesTotal.paymentTotals))) }}\\n </td>\\n <td>\\n <span ng-show=\\\"!vm.showConfirmButton(salesTotal)\\\">{{ vm.getStatusString(salesTotal.status) }}</span>\\n <ca-confirm-button ng-show=\\\"vm.showConfirmButton(salesTotal)\\\" confirm-title=\\\"'salestotal.approve'\\\" ng-if=\\\"vm.viewApprovedButton()\\\" on-confirm-pressed=\\\"vm.approveSalesTotal(salesTotal)\\\"></ca-confirm-button>\\n </td>\\n </tr>\\n \\n <tr ng-hide=\\\"salesTotal.showRows === false\\\">\\n <td class=\\\"noTopBorder\\\"> </td>\\n <td colspan=\\\"12\\\" class=\\\"noTopBorder\\\">\\n <!-- Withdrawals and deposits -->\\n <table class=\\\"table\\\" ng-show=\\\"vm.roundToTwo(salesTotal.withdrawalAmount) !== '0.00' || vm.roundToTwo(salesTotal.depositAmount) !== '0.00'\\\" style=\\\"width:30%;\\\">\\n <thead>\\n <tr>\\n <th class=\\\"lalign\\\" colspan=\\\"4\\\">{{ 'salestotal.withdrawalsAndDeposits' | translate }}:</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ 'salestotal.withdrawals' | translate }}:</td>\\n <td>{{ vm.roundToTwo(salesTotal.withdrawalAmount) }}</td>\\n <td>{{ 'salestotal.deposits' | translate }}:</td>\\n <td>{{ vm.roundToTwo(salesTotal.depositAmount) }}</td>\\n </tr>\\n </tbody>\\n </table>\\n\\n <!-- Gross amount -->\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th class=\\\"lalign\\\" colspan=\\\"5\\\">{{ 'salestotal.salesExclVat' | translate }}:</th>\\n </tr>\\n <tr>\\n <th class=\\\"lalign\\\">{{ 'salestotal.vatLevel' | translate }}</th>\\n <th> </th>\\n <th>{{ 'salestotal.sumSalesTotal' | translate }}</th>\\n <th>{{ 'salestotal.sumReceipts' | translate }}</th>\\n <th>{{ 'salestotal.differens' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"saleTotal in salesTotal.saleTotals\\\">\\n <td class=\\\"lalign\\\">{{ saleTotal.vatRate }}%</td>\\n <td> </td>\\n <td>{{ vm.roundToTwo( vm.getNetAmount(salesTotal, saleTotal) ) }}</td>\\n <td>{{ vm.roundToTwo(saleTotal.calculatedNetAmount) }}</td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(vm.getNetAmount(salesTotal, saleTotal) - saleTotal.calculatedNetAmount) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.getNetAmount(salesTotal, saleTotal) - saleTotal.calculatedNetAmount) }}\\n </td>\\n </tr>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getSaleNetAmountSum(salesTotal)) }}</td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getCalculatedNetAmountSum(salesTotal.saleTotals)) }}</td>\\n <td class=\\\"sumBorder\\\" ng-class=\\\"{ redText: vm.roundToTwo(vm.getSaleNetAmountSum(salesTotal) - vm.getCalculatedNetAmountSum(salesTotal.saleTotals)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.getSaleNetAmountSum(salesTotal) - vm.getCalculatedNetAmountSum(salesTotal.saleTotals)) }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n <!-- Vat amount -->\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th class=\\\"lalign\\\" colspan=\\\"5\\\">{{ 'salestotal.vat' | translate }}:</th>\\n </tr>\\n <tr>\\n <th class=\\\"lalign\\\">{{ 'salestotal.vatLevel' | translate }}</th>\\n <th> </th>\\n <th>{{ 'salestotal.sumSalesTotal' | translate }}</th>\\n <th>{{ 'salestotal.sumReceipts' | translate }}</th>\\n <th>{{ 'salestotal.differens' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"saleTotal in salesTotal.saleTotals\\\">\\n <td class=\\\"lalign\\\">{{ saleTotal.vatRate }}%</td>\\n <td> </td>\\n <td>{{ vm.roundToTwo(saleTotal.vatAmount - saleTotal.negativeVatAmount) }}</td>\\n <td>{{ vm.roundToTwo(saleTotal.calculatedVatAmount) }}</td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo((saleTotal.vatAmount - saleTotal.negativeVatAmount) - saleTotal.calculatedVatAmount) !== '0.00' }\\\">\\n {{ vm.roundToTwo((saleTotal.vatAmount - saleTotal.negativeVatAmount) - saleTotal.calculatedVatAmount) }}\\n </td>\\n </tr>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getSaleVatAmountSum(salesTotal.saleTotals)) }}</td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) }}</td>\\n <td class=\\\"sumBorder\\\" ng-class=\\\"{ redText: vm.roundToTwo(vm.getSaleVatAmountSum(salesTotal.saleTotals) - vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.getSaleVatAmountSum(salesTotal.saleTotals) - vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n \\n <!-- Net amount -->\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th class=\\\"lalign\\\" colspan=\\\"5\\\">{{ 'salestotal.totalInclVat' | translate }}:</th>\\n </tr>\\n <tr>\\n <th class=\\\"lalign\\\">{{ 'salestotal.vatLevel' | translate }}</th>\\n <th> </th>\\n <th>{{ 'salestotal.sumSalesTotal' | translate }}</th>\\n <th>{{ 'salestotal.sumReceipts' | translate }}</th>\\n <th>{{ 'salestotal.differens' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"saleTotal in salesTotal.saleTotals\\\">\\n <td class=\\\"lalign\\\">{{ saleTotal.vatRate }}%</td>\\n <td> </td>\\n <td>{{ vm.roundToTwo(( vm.getNetAmount(salesTotal, saleTotal) ) + (saleTotal.vatAmount - saleTotal.negativeVatAmount)) }}</td>\\n <td>{{ vm.roundToTwo(saleTotal.calculatedNetAmount + saleTotal.calculatedVatAmount) }}</td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(( vm.getNetAmount(salesTotal, saleTotal)) + (saleTotal.vatAmount - saleTotal.negativeVatAmount) - (saleTotal.calculatedNetAmount + saleTotal.calculatedVatAmount)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(( vm.getNetAmount(salesTotal, saleTotal)) + (saleTotal.vatAmount - saleTotal.negativeVatAmount) - (saleTotal.calculatedNetAmount + saleTotal.calculatedVatAmount)) }}\\n </td>\\n </tr>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)) }}</td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) }}</td>\\n <td class=\\\"sumBorder\\\" ng-class=\\\"{ redText: vm.roundToTwo((vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)) - (vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals))) !== '0.00' }\\\">\\n {{ vm.roundToTwo((vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)) - (vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals))) }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n <div style=\\\"height:20px;\\\"> </div>\\n\\n <!-- Payments -->\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th class=\\\"lalign\\\" colspan=\\\"5\\\">{{ 'salestotal.payments' | translate }}:</th>\\n </tr>\\n <tr>\\n <th class=\\\"lalign\\\">{{ 'salestotal.currency' | translate }}</th>\\n <th class=\\\"lalign\\\">{{ 'salestotal.paymentType' | translate }}</th>\\n <th>{{ 'salestotal.sumSalesTotal' | translate }}</th>\\n <th>{{ 'salestotal.sumReceipts' | translate }}</th>\\n <th>{{ 'salestotal.differens' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"paymentTotal in salesTotal.paymentTotals\\\">\\n <td class=\\\"lalign\\\">{{ paymentTotal.currencyCode }}</td>\\n <td class=\\\"lalign\\\">{{ paymentTotal.paymentTransactionTypeName }}</td>\\n <td>{{ vm.roundToTwo(paymentTotal.amount - paymentTotal.negativeAmount) }}</td>\\n <td>{{ vm.roundToTwo(paymentTotal.calculatedAmount) }}</td>\\n <td>\\n <span ng-class=\\\"{ redText: vm.roundToTwo((paymentTotal.amount - paymentTotal.negativeAmount) - paymentTotal.calculatedAmount) !== '0.00' }\\\">\\n {{ vm.roundToTwo((paymentTotal.amount - paymentTotal.negativeAmount) - paymentTotal.calculatedAmount) }}\\n </span>\\n </td>\\n </tr>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getPeriodPaymentSum(salesTotal.paymentTotals)) }}</td>\\n <td class=\\\"sumBorder\\\">{{ vm.roundToTwo(vm.getCalculatedPaymentSum(salesTotal.paymentTotals)) }}</td>\\n <td class=\\\"sumBorder\\\" ng-class=\\\"{ redText: vm.roundToTwo(vm.getPeriodPaymentSum(salesTotal.paymentTotals) - vm.getCalculatedPaymentSum(salesTotal.paymentTotals)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.getPeriodPaymentSum(salesTotal.paymentTotals) - vm.getCalculatedPaymentSum(salesTotal.paymentTotals)) }}\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n\\n <!-- Summary, shows same comparison as in header -->\\n <table class=\\\"table\\\" style=\\\"width:50%\\\" ng-show=\\\"vm.showTotalDiffTable(salesTotal)\\\">\\n <thead>\\n <tr>\\n <th> </th>\\n <th>{{ 'salestotal.sumSalesTotal' | translate }}</th>\\n <th>{{ 'salestotal.sumReceipts' | translate }}</th>\\n <th>{{ 'salestotal.differens' | translate }}</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <td style=\\\"font-weight:bold;\\\">{{ 'salestotal.totalInclVat' | translate }}</td>\\n <td>{{ vm.roundToTwo(vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)) }}</td>\\n <td>{{ vm.roundToTwo(vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) }}</td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo((vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) - (vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals))) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs((vm.getCalculatedNetAmountSum(salesTotal.saleTotals) + vm.getCalculatedVatAmountSum(salesTotal.saleTotals)) - (vm.getSaleNetAmountSum(salesTotal) + vm.getSaleVatAmountSum(salesTotal.saleTotals)))) }}\\n </td> \\n </tr>\\n <tr>\\n <td style=\\\"font-weight:bold;\\\">{{ 'salestotal.payments' | translate }}</td>\\n <td>{{ vm.roundToTwo(vm.getPeriodPaymentSum(salesTotal.paymentTotals)) }}</td>\\n <td>{{ vm.roundToTwo(vm.getCalculatedPaymentSum(salesTotal.paymentTotals)) }}</td>\\n <td ng-class=\\\"{ redText: vm.roundToTwo(vm.getCalculatedPaymentSum(salesTotal.paymentTotals) - vm.getPeriodPaymentSum(salesTotal.paymentTotals)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs(vm.getCalculatedPaymentSum(salesTotal.paymentTotals) - vm.getPeriodPaymentSum(salesTotal.paymentTotals))) }}\\n </td>\\n </tr>\\n <tr>\\n <td> </td>\\n <td class=\\\"sumBorder\\\" ng-class=\\\"{ redText: vm.roundToTwo(vm.totalSaleDiff(salesTotal)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs(vm.totalSaleDiff(salesTotal))) }}\\n </td>\\n <td class=\\\"sumBorder\\\" ng-class=\\\"{ redText: vm.roundToTwo(vm.totalCalculatedDiff(salesTotal)) !== '0.00' }\\\">\\n {{ vm.roundToTwo(vm.abs(vm.totalCalculatedDiff(salesTotal))) }}\\n </td>\\n <td> </td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"table\\\">\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.rowData.length !== 0\\\" style=\\\"font-weight: bold; background-color:#fff\\\">\\n {{'common.totalNumberOfRows' | translate}}: {{vm.rowData.length}}\\n </div>\\n <table class=\\\"table stockHistoryTable\\\" style=\\\"background-color: #fff;\\\">\\n <thead>\\n <tr>\\n <th ng-repeat=\\\"col in vm.transGrid.columns\\\">{{col.name}}</th>\\n <th>Total</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"row in vm.displayedRows\\\">\\n <tr>\\n <td ng-repeat=\\\"col in row.columns\\\">\\n <a ng-if=\\\"col.id === 'referenceDescription' && vm.showLink(row.referenceType)\\\" class='ca-celllink' ng-click=\\\"vm.goToReference($event, row)\\\">{{row[col.id]}}</a>\\n <span ng-show=\\\"col.id !== 'referenceDescription' || !vm.showLink(row.referenceType)\\\">{{row[col.id]}}</span>\\n </td>\\n <td>\\n {{ row.sum }}\\n </td>\\n </tr>\\n <tr ng-if=\\\"row.comment && row.comment.length > 0\\\">\\n <td colspan=\\\"{{row.columns.length + 1}}\\\" style=\\\"padding: 0px 15px 15px 30px;\\\">\\n <span>{{'stocktransaction.comment' | translate}}:</span>\\n <span>{{row.comment}}</span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n <div class=\\\"col-lg-12 text-center\\\" style=\\\"max-width: 1178px; margin-bottom: 20px;\\\">\\n <div uib-pagination boundary-links=\\\"true\\\"\\n total-items=\\\"vm.rowData.length\\\"\\n items-per-page=\\\"vm.elementsPerPage\\\"\\n max-size=\\\"10\\\"\\n ng-change=\\\"vm.pageChanged()\\\"\\n ng-model=\\\"vm.currentPage\\\"\\n class=\\\"pagination-sm\\\"\\n previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\"\\n first-text=\\\"«\\\"\\n last-text=\\\"»\\\">\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{vm.article.articleNumber}} {{vm.article.articleName}} </div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\"> <span class=\\\"h3\\\"> {{vm.articleVariant.variantDetail1.variantDetailName}} </span> </label></div>\\n\\n <ca-article-stocks-history \\n article-id=\\\"vm.articleId\\\" \\n location-id=\\\"vm.locationId\\\" \\n article-variant-id=\\\"vm.articleVariantId\\\" \\n navigated=\\\"vm.close()\\\">\\n\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n \\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.openLabelsModal()\\\">\\n {{'article.getlabels' | translate}}\\n </button>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('product.articles.article')\\\"> \\n {{'article.articles' | translate}} \\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.modelinventorysearch.modelinventory')\\\">\\n {{'stock.inventorymodel' | translate}}\\n </button>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.orderingpointssearch.orderingpoints')\\\" ng-disabled=\\\"!vm.mayReadStockLogistics\\\"> \\n {{'stock.orderingpoints' | translate}} \\n </button>\\n </span>\\n <div> </div>\\n <span>{{vm.selectedArticle.alternativeArticleNumber}} {{vm.selectedArticle.articleName}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <style>\\n .column-container {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n }\\n .color-container {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n }\\n .flex-container {\\n display: flex; \\n flex-direction: row; \\n justify-content: space-between;\\n }\\n .is-Current-color {\\n height: 15px;\\n width: 15px;\\n background-color: dodgerblue;\\n border-radius: 50%;\\n display: inline-block;\\n }\\n .not-Current-color {\\n height: 15px;\\n width: 15px;\\n background-color: red;\\n border-radius: 50%;\\n display: inline-block;\\n }\\n .iscurrent-color{\\n color: dodgerblue;\\n }\\n .not-iscurrent-color{\\n color: red;\\n }\\n </style>\\n <div class=\\\"flex-container\\\">\\n <div class=\\\"column-container\\\">\\n <div>\\n <span style=\\\"display:inline-block; height: 100%; vertical-align: middle;\\\">{{'common.filter' | translate}}:</span>\\n </div>\\n <div> \\n <span style=\\\"display:inline-block;\\\"><ui-select ng-model=\\\"vm.selectedFilter.location\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locationFilter | filter:{'locationName': $select.search}\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select></span>\\n <span style=\\\"display:inline-block;\\\"><ui-select ng-model=\\\"vm.selectedFilter.variant\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.variantDetailName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"variant in vm.variantFilters | filter:{'variantDetailName': $select.search}\\\">\\n <span>{{variant.variantDetailName}}</span>\\n </ui-select-choices>\\n </ui-select></span>\\n </div>\\n </div>\\n\\n\\n <div class=\\\"color-container\\\">\\n <div>\\n <span style=\\\"margin-right: 18px;\\\">{{'stock.current' | translate}}:</span> \\n <span class=\\\"is-Current-color\\\"></span>\\n </div>\\n <div class=\\\"flex-conatiner\\\" style=\\\"margin-bottom : 10px;\\\" >\\n <span style=\\\"margin-right: 5px;\\\">{{'stock.notCurrent' | translate}}:</span> \\n <span class=\\\"not-Current-color\\\"></span>\\n </div>\\n \\n </div>\\n </div>\\n <style>\\n tr.productstockrow:hover {\\n cursor: pointer;\\n }\\n table.stockVariantTable tbody { border-top: none; }\\n table.stockVariantTable tbody tr { border-top: none; }\\n table.stockVariantTable tbody:nth-child(even) { background: #f0f3f4; }\\n table.stockVariantTable tbody:nth-child(even) .trArticleStocksHistory { background: #fff; }\\n table.stockVariantTable tbody:nth-child(odd) { background: transparent; }\\n table.stockVariantTable tbody:last-child { background: #f0f3f4; font-weight: bold; }\\n table.stockVariantTable tbody:last-child tr { background: #f0f3f4; font-weight: bold; border-top: 2px solid #58666e; }\\n </style>\\n \\n <div ng-hide=\\\"true\\\"> <!-- Remove 'ng-hide=\\\"true\\\"' when we're ready to show reserved quantity -->\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.shouldDisplayDetails\\\" />\\n <i></i>\\n {{'stock.displaydetails' | translate}}\\n </label>\\n </div>\\n\\n <div class=\\\"table-responsive\\\">\\n <span ng-if=\\\"vm.shouldDisplayDetails\\\">\\n <div>\\n <span>{{'stock.ordered' | translate}}:</span> \\n <i class=\\\"fa fa-inbox text-m\\\"></i>\\n </div>\\n <div class=\\\"flex-conatiner\\\" style=\\\"margin-bottom : 10px;\\\" >\\n <span\\\">{{'stock.reserved' | translate}}:</span> \\n <i class=\\\"fa fa-lock text-m\\\"></i>\\n </div>\\n </span>\\n <table class=\\\"table table-condensed stockVariantTable\\\">\\n <thead>\\n <tr>\\n <th> </th>\\n <th>{{'location.location' | translate}}</th>\\n <th>{{'article.variant' | translate}}</th>\\n <th ng-repeat=\\\"col in vm.variantsGrid.columns\\\">{{col.name | translate}}</th>\\n <th>{{'stock.sumQuantity' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"row in vm.rowData | filter: vm.filterRowData\\\">\\n <tr class=\\\"productstockrow\\\">\\n <td ng-click=\\\"vm.setSelectedLocationAndVariant1(row)\\\">\\n <span class=\\\"hidden-folded pull-right text-muted ng-scope\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-hide=\\\"row.showHistory\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down ng-hide\\\" ng-show=\\\"row.showHistory\\\"></i>\\n </span>\\n </td>\\n\\n <td>\\n {{row.locationName}}\\n </td>\\n\\n <td>\\n {{row.variantDetails1Name}}\\n </td>\\n\\n <td ng-repeat=\\\"col in vm.variantsGrid.columns\\\">\\n <span class=\\\"text-ellipsis\\\" ng-class=\\\"{'iscurrent-color': vm.shouldHaveIsCurrentColor(row), 'not-iscurrent-color' : vm.shouldNotHaveIsCurrentStyle(row)}\\\">\\n <span>\\n {{(row[col.id].quantity !== undefined) ? row[col.id].quantity : 0}} \\n </span>\\n <span ng-if=\\\"vm.shouldDisplayDetails\\\">\\n (\\n </span>\\n <span ng-if=\\\"vm.shouldDisplayDetails\\\">\\n <i class=\\\"fa fa-inbox text-m\\\"></i>: {{(row[col.id].orderedQuantity !== undefined) ? row[col.id].orderedQuantity : 0}}\\n </span>\\n <span ng-if=\\\"vm.shouldDisplayDetails\\\">\\n <i class=\\\"fa fa-lock text-m\\\"></i>: {{(row[col.id].reservedQuantity !== undefined) ? row[col.id].reservedQuantity : 0}}\\n </span>\\n <span ng-if=\\\"vm.shouldDisplayDetails\\\">\\n )\\n </span>\\n </span>\\n </td>\\n\\n <td>\\n {{row.sum}}\\n </td>\\n\\n </tr>\\n <tr ng-show=\\\"vm.shouldShowDetails(row)\\\" class=\\\"trArticleStocksHistory\\\">\\n <td> </td>\\n <td colspan=\\\"{{(vm.variantsGrid.columns.length + 3)}}\\\">\\n <ca-article-stocks-history \\n ng-if=\\\"vm.selectedArticle.id && row.location.id && row.variantDetails1Id\\\" \\n article-id=\\\"vm.selectedArticle.id\\\" \\n location-id=\\\"row.location.id\\\" \\n article-variant-id=\\\"row.variantDetails1Id\\\"\\n show-sum=\\\"true\\\"\\n disabled=\\\"!vm.shouldShowDetails(row)\\\"\\n >\\n </td>\\n <td> </td>\\n </tr>\\n </tbody>\\n <tbody>\\n <tr>\\n <td> </td>\\n <td> </td>\\n <td> </td>\\n <td ng-repeat=\\\"col in vm.variantsGrid.columns\\\">\\n <div>\\n <span ng-if=\\\"!(col.id === 'locationName' || col.id === 'variantDetails1Name')\\\">{{ vm.getColumnSum(col) }}</span>\\n </div>\\n </td>\\n <td>\\n <span>{{ vm.getTotalSum() }}</span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<ca-article-list\\n articles=\\\"vm.articles\\\"\\n filter=\\\"vm.filter\\\"\\n current-page=\\\"vm.currentPage\\\"\\n page-size=\\\"vm.pageSize\\\"\\n on-article-selected=\\\"vm.selectArticle(article)\\\"\\n show-new-button=\\\"false\\\"\\n show-filter-dropdown=\\\"true\\\"\\n match=\\\"vm.match\\\"\\n inactive=\\\"vm.inactive\\\"\\n ></ca-article-list>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.openLabelsModal()\\\">\\n {{'article.getlabels' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('product.articles.article')\\\"> \\n {{'article.articles' | translate}} \\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.orderingpointssearch.orderingpoints')\\\" ng-disabled=\\\"!vm.mayReadStockLogistics\\\">\\n {{'stock.orderingpoints' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.articlesearch.article')\\\">\\n {{'common.stock' | translate}}\\n </button>\\n <div style =\\\"padding-top : 8px\\\">\\n <button ng-disabled=\\\"vm.saveButtonDisable\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.saveChanges()\\\"> {{'common.save' | translate}} {{' '}} {{'stock.scannerinventorying' | translate}} </button>\\n </div>\\n \\n </span>\\n <div> </div>\\n <span>{{vm.selectedArticle.alternativeArticleNumber + ' ' + vm.selectedArticle.articleName}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n\\n <label class=\\\"col-sm-4 control-label\\\">{{'stock.chooselocation' | translate}}:</label>\\n\\n <div class=\\\"col-lg-8\\\">\\n <wj-auto-complete\\n selected-index-changed=\\\"vm.selectedLocationChanged(s)\\\"\\n placeholder=\\\"{{'stock.nostock' | translate}}\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.stocksLocations\\\"\\n display-member-path=\\\"locationName\\\"\\n is-editable=\\\"false\\\"\\n required=\\\"true\\\"\\n style=\\\"width:100%\\\">\\n </wj-auto-complete>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-hide=\\\"vm.inventory.deliverImmediately\\\">\\n \\n </div>\\n\\n <label class=\\\"col-lg-4 control-label\\\">{{'inventory.inventorydescription' | translate}}:</label>\\n\\n <div class=\\\"col-lg-8\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"\\\"\\n ng-model=\\\"vm.inventory.inventoryDescription\\\"/>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <label class=\\\"col-lg-4 control-label\\\">{{'stock.inventoriesbeingprocessed' | translate}}: {{ vm.inventoriesPending.count }}</label>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n \\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid style=\\\"width: auto\\\" class=\\\"orders-flex-grid\\\"\\n initialized=\\\"vm.captureVariantsGrid(s)\\\"\\n beginning-edit=\\\"vm.beginEditing(s, e)\\\"\\n cell-edit-ended=\\\"vm.editEnded(s, e)\\\"\\n id=\\\"variantsGrid\\\">\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <button ng-click=\\\"vm.zeroAllQuantities()\\\" class=\\\"btn btn-sm btn-default\\\"> {{'common.zeroall' | translate}} </button>\\n\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid initialized=\\\"vm.captureTotalsGrid(s)\\\" items-source=\\\"vm.totals\\\" headers-visibility=\\\"Column\\\" selection-mode=\\\"None\\\" class=\\\"orders-flex-grid\\\" is-read-only=\\\"false\\\">\\n <wj-flex-grid-column header=\\\"{{'article.variantdetail1' | translate}}\\\" binding=\\\"sumName\\\" width=\\\"*\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.theoreticalbalance' | translate}}\\\" binding=\\\"theoreticalTotal\\\" width=\\\"*\\\" style=\\\"color: transparent\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.balanceinventoried' | translate}}\\\" binding=\\\"inventoriedTotal\\\" width=\\\"*\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.difference' | translate}}\\\" binding=\\\"difference\\\" width=\\\"*\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n </div>\\n\\n <nav id=\\\"inventoryContextMenu\\\" style=\\\"position:fixed; background-color:#edf1f2;\\n visibility:hidden\\\" control=\\\"contextMenu\\\" class=\\\"navi clearfix\\\">\\n <ul class=\\\"nav\\\">\\n <li>\\n <a href=\\\"\\\" ng-click=\\\"vm.contextMenuZeroRow()\\\">\\n <span>{{'common.zerorow' | translate}}</span>\\n </a>\\n </li>\\n </ul>\\n </nav>\\n\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\" style=\\\"max-width: 960px;\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>{{'stock.stockpickinglist' | translate}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <form class=\\\"form-horizontal\\\">\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'location.location' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\"> \\n <ca-singleselect model=\\\"vm.location\\\" choices=\\\"vm.locations\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'locationName'\\\" mandatory=\\\"true\\\"/> \\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'common.startDate' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <wj-input-date-time\\n value=\\\"vm.startDate\\\"\\n min=\\\"2000-01-01\\\"\\n timeStep=\\\"60\\\"\\n format=\\\"yyyy-MM-dd HH:mm\\\">\\n </wj-input-date-time>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'common.endDate' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <wj-input-date-time\\n value=\\\"vm.endDate\\\"\\n min=\\\"2000-01-01\\\"\\n timeStep=\\\"60\\\"\\n format=\\\"yyyy-MM-dd HH:mm\\\">\\n </wj-input-date-time>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'common.sortorder' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\n <ca-singleselect model=\\\"vm.sortOrder1\\\" choices=\\\"vm.sortorders\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\"/>\\n </div>\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\n <ca-singleselect model=\\\"vm.sortOrder2\\\" choices=\\\"vm.sortorders\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"false\\\"/> \\n </div>\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\n <ca-singleselect model=\\\"vm.sortOrder3\\\" choices=\\\"vm.sortorders\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"false\\\"/>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\" style=\\\"margin-top:20px;\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.simplifiedPortraitOrientation' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.portraitOrientation\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n\\n <div ng-hide=\\\"vm.portraitOrientation\\\" style=\\\"margin-top:20px;\\\">\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.includeArticleNumber' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeArticleNumber\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.showCollection' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showCollection\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.showDepartment' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showDepartment\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.includeStorageItems' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeStorageItems\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.showRestOfStorages' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showRestOfLocations\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.includeIsPhotographed' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeIsPhotographed\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-4\\\">{{'stock.print.includeZeroAndNegativeQuantity' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeZeroAndNegativeQuantity\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n </div>\\n \\n <div class=\\\"form-group\\\" style=\\\"margin-top:20px;\\\">\\n <label class=\\\"col-sm-4\\\">{{'common.grouping' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <ca-singleselect model=\\\"vm.selectedGrouping\\\" choices=\\\"vm.groupings\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'name'\\\" mandatory=\\\"true\\\"/> \\n </div>\\n </div>\\n\\n <div class=\\\"form-group\\\" style=\\\"margin-top:20px;\\\">\\n <div class=\\\"col-sm-6\\\">\\n <button ng-click=\\\"vm.getStockPickingList()\\\" ng-disabled=\\\"vm.canPrintStockPickingList()\\\" class=\\\"btn btn-primary\\\">{{'common.get' | translate}}</button>\\n </div>\\n </div>\\n </form>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\" style=\\\"max-width: 960px;\\\">\\r\\n <div class=\\\"panel-heading font-bold\\\">\\r\\n <span>{{'reports.ui.reports' | translate}} - {{'reports.ui.salethroughput' | translate}}</span>\\r\\n </div>\\r\\n <div class=\\\"panel-body\\\">\\r\\n <form class=\\\"form-horizontal\\\">\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'time.startDate' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <wj-input-date value=\\\"vm.reportparameters.startDate\\\"\\r\\n min=\\\"2000-01-01\\\"\\r\\n format=\\\"yyyy-MM-dd\\\"\\r\\n ng-model=\\\"vm.reportParameters.startDate\\\">\\r\\n </wj-input-date>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'time.date' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <wj-input-date value=\\\"vm.reportparameters.endDate\\\"\\r\\n min=\\\"2000-01-01\\\"\\r\\n format=\\\"yyyy-MM-dd\\\"\\r\\n ng-model=\\\"vm.reportParameters.endDate\\\">\\r\\n </wj-input-date>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n \\r\\n <div class=\\\"form-group\\\" style=\\\"margin-top:20px;\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'common.include' | translate}} {{'article.iscurrent' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <label class=\\\"i-checks m-t-xs\\\">\\r\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.reportParameters.includeIsCurrent\\\" />\\r\\n <i></i>\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.salesthroughput.articlecollection' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-multiselect model=\\\"vm.selectedCollections\\\" choices=\\\"vm.collections\\\" order-by=\\\"'id'\\\" placeholder=\\\"'reports.salesthroughput.articlecollection'\\\" item-renderer=\\\"['collectionCode']\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.salesthroughput.brand' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-multiselect model=\\\"vm.selectedBrands\\\" choices=\\\"vm.brands\\\" order-by=\\\"'id'\\\" placeholder=\\\"'reports.salesthroughput.brand'\\\" item-renderer=\\\"['brandDescription']\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.locations' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-multiselect model=\\\"vm.selectedLocations\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" placeholder=\\\"'contacts.locations'\\\" item-renderer=\\\"['locationName']\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.departments' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-multiselect model=\\\"vm.selectedDepartments\\\" choices=\\\"vm.departments\\\" order-by=\\\"'departmentCode'\\\" placeholder=\\\"'reports.salesthroughput.department'\\\" item-renderer=\\\"['departmentCode', 'departmentDescription']\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.grouping' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-singleselect model=\\\"vm.selectedGrouping\\\" choices=\\\"vm.groupings\\\" item-renderer=\\\"'label'\\\" mandatory=\\\"true\\\"/> \\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.fileformat' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <button class=\\\"btn btn-default\\\" ng-class=\\\"{'btn-dark' : vm.fileFormatChoice.csv}\\\" ng-click=\\\"vm.switchToCsv()\\\"> CSV </button>\\r\\n <button class=\\\"btn btn-default\\\" ng-class=\\\"{'btn-dark' : vm.fileFormatChoice.pdf}\\\" ng-click=\\\"vm.switchToPdf()\\\"> PDF </button>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.getSaleThroughputReport()\\\">{{'common.get' | translate}}</button>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n </div>\\r\\n</div>\\r\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\" style=\\\"max-width: 960px;\\\">\\r\\n <div class=\\\"panel-heading font-bold\\\">\\r\\n <span>{{'reports.ui.reports' | translate}} - {{'reports.ui.soldstock' | translate}}</span>\\r\\n </div>\\r\\n <div class=\\\"panel-body\\\">\\r\\n <form class=\\\"form-horizontal\\\">\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'time.date' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <wj-input-date value=\\\"vm.reportparameters.startDate\\\"\\r\\n min=\\\"2000-01-01\\\"\\r\\n format=\\\"yyyy-MM-dd\\\"\\r\\n ng-model=\\\"vm.reportParameters.startDate\\\">\\r\\n </wj-input-date>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.locations' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-multiselect model=\\\"vm.selectedLocations\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" placeholder=\\\"'contacts.locations'\\\" item-renderer=\\\"['locationName']\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.companies' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <ca-multiselect model=\\\"vm.selectedCompanies\\\" choices=\\\"vm.companies\\\" order-by=\\\"'companyName'\\\" placeholder=\\\"'article.addCompany'\\\" item-renderer=\\\"['companyName']\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'common.sortorder' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\r\\n <ca-singleselect model=\\\"vm.sortOrder1\\\" choices=\\\"vm.sortorders\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\"/>\\r\\n </div>\\r\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\r\\n <ca-singleselect model=\\\"vm.sortOrder2\\\" choices=\\\"vm.sortorders\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"false\\\"/> \\r\\n </div>\\r\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\r\\n <ca-singleselect model=\\\"vm.sortOrder3\\\" choices=\\\"vm.sortorders\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"false\\\"/>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-sm-3\\\">{{'common.language' | translate}}:</label>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <button class=\\\"btn\\\" ng-click=\\\"vm.printLanguage = 'se'\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\r\\n <button class=\\\"btn\\\" ng-click=\\\"vm.printLanguage = 'en'\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"form-group\\\" style=\\\"margin-top:20px;\\\">\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.getSoldStockReport()\\\">{{'common.get' | translate}}</button>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n </div>\\r\\n</div>\\r\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\" style=\\\"max-width: 960px;\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>{{'reports.ui.reports' | translate}} - {{'reports.ui.stockvalue' | translate}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <form class=\\\"form-horizontal\\\">\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.stockEndDate' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <wj-input-date value=\\\"vm.reportparameters.stockenddate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n ng-model=\\\"vm.reportParameters.stockEndDate\\\">\\n </wj-input-date>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.inventoryDays' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <ui-select ng-model=\\\"vm.selectedInventoryDays\\\">\\n <ui-select-match placeholder=\\\"{{'reports.ui.stockvalue.inventoryDays' | translate}}\\\">\\n <span>{{$select.selected.name}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"day in vm.inventoryDayList\\\">\\n <span>{{day.name}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.ui.stockvalue.locations' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <ca-multiselect model=\\\"vm.reportParameters.locations\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" placeholder=\\\"'contacts.locations'\\\" item-renderer=\\\"['locationName']\\\"/>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'stock.groupinglevel' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <ui-select ng-model=\\\"vm.selectedGroupingLevel\\\">\\n <ui-select-match placeholder=\\\"{{'stock.groupinglevel' | translate}}\\\">\\n <span>{{$select.selected.name | translate}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"lvl in vm.groupingLevels\\\">\\n <span>{{lvl.name | translate}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-if=\\\"vm.selectedGroupingLevel && vm.selectedGroupingLevel.value == 'articleVariant1Variant2Level'\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.stockvalue.includeBarcode' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeBarcode\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\" ng-if=\\\"vm.selectedGroupingLevel && vm.selectedGroupingLevel.value == 'articleVariant1Variant2Level'\\\">\\n <label class=\\\"col-sm-3\\\">{{'reports.stockvalue.includeExternalId' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeExternalId\\\" />\\n <i></i>\\n </label>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label class=\\\"col-sm-3\\\">{{'common.language' | translate}}:</label>\\n <div class=\\\"col-sm-6\\\">\\n <button class=\\\"btn\\\" ng-click=\\\"vm.printLanguage = 'se'\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.printLanguage = 'en'\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-6\\\" style=\\\"margin-top:20px;\\\">\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.getStockValueReport()\\\">{{'common.get' | translate}}</button>\\n </div>\\n </div>\\n </form>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <label class=\\\"col-lg-12 control-label\\\"> <span class=\\\"h3\\\">{{vm.article.alternativeArticleNumber}} {{vm.article.articleName}} - {{vm.currentVariantDetail1.variantDetailName}} </span> </label></div>\\n <div class=\\\"body bg-gray\\\">\\n <wj-flex-grid auto-generate-columns=\\\"false\\\"\\n initialized=\\\"vm.initGrid(s)\\\"\\n class=\\\"orders-flex-grid\\\"\\n headers-visibility=\\\"Column\\\">\\n </wj-flex-grid>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12 b-b b-t b-l b-r\\\" ng-show=\\\"vm.isShowingUploadForm || vm.numberOfErrors > 0\\\" style=\\\"padding: 20px;\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.uploadErrors.length > 0\\\">\\n <ul>\\n <li ng-repeat=\\\"error in vm.uploadErrors\\\">{{::error.message}}</li>\\n </ul>\\n </div>\\n <div ng-show=\\\"vm.isShowingUploadForm\\\">\\n <input type=\\\"File\\\" accept=\\\".TXT\\\" id=\\\"inventoryingFileUploadElement\\\">\\n <button class=\\\"btn btn-primary btn-sm\\\" ng-click=\\\"vm.uploadAndParseFile()\\\"> {{'common.accept' | translate}} </button>\\n <label class=\\\"control-label\\\"> {{'common.longtimewarning' | translate}} </label>\\n </div>\\n <div ng-show=\\\"vm.numberOfErrors > 0\\\">\\n <br/> \\n <span class=\\\"h4\\\">{{vm.numberOfErrors}} {{'inventory.fileErrors' | translate}}</span>\\n <br/>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.showInventoryErrors()\\\">\\n <a ng-show=\\\"!vm.showAllErrors\\\">{{'productimport.showContents' | translate}}</a>\\n <a ng-show=\\\"vm.showAllErrors\\\">{{'productimport.hideContents' | translate}}</a>\\n </button>\\n <wj-flex-grid selection-mode=\\\"RowRange\\\" ng-show=\\\"vm.showAllErrors && vm.hasFileErrors\\\" headers-visibility=\\\"Column\\\" is-read-only=\\\"true\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-fixed-width\\\" initialized=\\\"vm.captureInventoryFileErrorGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'inventory.file' | translate}}\\\" binding=\\\"file\\\" width=\\\"*\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'inventory.row' | translate}}\\\" binding=\\\"rowNumber\\\" width=\\\"50\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'inventory.text' | translate}}\\\" binding=\\\"text\\\" width=\\\"200\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'inventory.error' | translate}}\\\" binding=\\\"error\\\" width=\\\"*\\\"></wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class = \\\"col-lg-12\\\">\\n <label>\\n <span class=\\\"h3\\\"> {{vm.inventoryHead.location.locationName}} </span>\\n </label>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.toggleUploadFormVisibility()\\\"\\n ng-if=\\\"vm.inventoryHead.inventoryStatus.inventorySystemStatus !== 'pending' &&\\n vm.inventoryHead.inventoryStatus.inventorySystemStatus !== 'completed'\\\">\\n {{'stock.readfile' | translate}}\\n </button>\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.acceptInventory()\\\"\\n ng-if=\\\"vm.inventoryHead.inventoryStatus.inventorySystemStatus !== 'pending' &&\\n vm.inventoryHead.inventoryStatus.inventorySystemStatus !== 'completed'\\\">\\n {{'stock.acceptinventory' | translate}}\\n </button>\\n <button ng-if=\\\"vm.hasClaim\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.printInventoryReport()\\\"> {{'stock.printinventoryorder' | translate}} </button>\\n </div>\\n <label class=\\\"col-lg-12 control-label\\\">\\n <span class=\\\"h5\\\">{{vm.inventoryHead.inventoryDate}}</span>,\\n <span class=\\\"h5\\\">{{vm.inventoryHead.inventoryType.inventoryTypeName}}</span>,\\n <span class=\\\"h5\\\">{{vm.inventoryHead.inventoryStatus.inventoryStatusName}}</span>\\n </label>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n \\n <button ng-click=\\\"vm.fetchMainGroups()\\\" ng-class=\\\"{'btn btn-default' : true, 'btn-dark' : vm.overViewGridFilter.mainGroups}\\\">{{'article.maingroup' | translate}}</button>\\n <button ng-click=\\\"vm.fetchBrands()\\\" ng-class=\\\"{'btn btn-default' : true, 'btn-dark' : vm.overViewGridFilter.brands}\\\">{{'article.brand' | translate}}</button>\\n\\n <wj-flex-grid selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" is-read-only=\\\"true\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-fixed-width\\\" initialized=\\\"vm.captureInventoryOverviewGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'article.maingroup' | translate}}\\\" binding=\\\"mainGroupDescription\\\" width=\\\"*\\\">\\n <a ng-click=\\\"vm.getMainGroupInventoryRows($item.id)\\\" class=\\\"ca-celllink\\\">\\n {{$item.mainGroupCode}} {{$item.mainGroupDescription}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.brand' | translate}}\\\" binding=\\\"brandDescription\\\" width=\\\"*\\\">\\n <a ng-click=\\\"vm.getBrandInventoryRows($item.id)\\\" class=\\\"ca-celllink\\\">\\n {{$item.brandCode}} {{$item.brandDescription}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.balanceinventoried' | translate}}\\\" binding=\\\"summarizedQuantity\\\" width=\\\"*\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.theoreticalbalance' | translate}}\\\" binding=\\\"summarizedTheoreticalStockBalance\\\" width=\\\"*\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.difference' | translate}}\\\" binding=\\\"summarizedStockDifference\\\" width=\\\"*\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.total' | translate}}\\\" binding=\\\"summarizedTotalValue\\\" width=\\\"*\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.approved' | translate}}\\\" binding=\\\"numberOfApprovedInventoryRows\\\" width=\\\"*\\\">\\n {{\\n ($item.numberOfInventoryRows == 0) ? 100 :\\n (($item.numberOfApprovedInventoryRows / $item.numberOfInventoryRows) * 100).toString().split(\\\".\\\")[0]\\n }} %\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n\\n <div class=\\\"col-lg-12 b-t\\\"> </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-lg-2 control-label\\\"> {{'stock.groupinglevel' | translate}}: </label>\\n <div class=\\\"col-lg-3\\\">\\n <select class=\\\"form-control\\\" ng-change=\\\"vm.displayLevelChanged()\\\" ng-model=\\\"vm.displayLevel\\\">\\n <option value=\\\"0\\\" ng-if=\\\"vm.overViewGridFilter.mainGroups\\\">{{'article.maingroup' | translate}}</option>\\n <option value=\\\"1\\\" ng-if=\\\"vm.overViewGridFilter.mainGroups\\\">{{'article.maingroup' | translate}} > {{'article.brand' | translate}}</option>\\n <option value=\\\"2\\\" ng-if=\\\"vm.overViewGridFilter.mainGroups\\\">{{'article.maingroup' | translate}} > {{'article.brand' | translate}} > {{'article.articlename' | translate}}</option>\\n <option value=\\\"0\\\" ng-if=\\\"vm.overViewGridFilter.brands\\\">{{'article.brand' | translate}}</option>\\n <option value=\\\"1\\\" ng-if=\\\"vm.overViewGridFilter.brands\\\">{{'article.brand' | translate}} > {{'article.maingroup' | translate}}</option>\\n <option value=\\\"2\\\" ng-if=\\\"vm.overViewGridFilter.brands\\\">{{'article.brand' | translate}} > {{'article.maingroup' | translate}} > {{'article.articlename' | translate}}</option>\\n </select>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-lg-2 control-label\\\"> {{'stock.autoapprovethreshold' | translate}}: </label>\\n <div class=\\\"col-lg-3\\\">\\n <select class=\\\"form-control\\\" ng-change=\\\"vm.autoAcceptLevelChanged()\\\" ng-model=\\\"vm.autoAcceptLevel\\\">\\n <!-- <option value=\\\"0\\\">{{'article.maingroup' | translate}}</option> -->\\n <!-- <option value=\\\"1\\\">{{'article.brand' | translate}}</option> -->\\n <option value=\\\"2\\\">{{'article.articlename' | translate}}</option>\\n </select>\\n </div>\\n\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-lg-2 control-label\\\"> {{'stock.autoapprovevalue' | translate}}: </label>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched col-lg-2\\\"\\n type=\\\"number\\\"\\n placeholder=\\\"\\\"\\n ng-model=\\\"vm.totalValueThreshold\\\"/>\\n </div>\\n <button class=\\\"btn btn-sm btn-default col-lg-1\\\" ng-click=\\\"vm.autoAccept()\\\"> {{'common.accept' | translate}} </button>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button ng-class=\\\"{'btn btn-default' : true, 'btn-dark' : vm.filterChoice.showUnapproved}\\\" ng-click=\\\"vm.showUnApprovedInventoryRows()\\\"> {{'stock.showunapproved' | translate}} </button>\\n <button ng-class=\\\"{'btn btn-default' : true, 'btn-dark' : vm.filterChoice.showApproved}\\\" ng-click=\\\"vm.showApprovedInventoryRows()\\\"> {{'stock.showapproved' | translate}} </button>\\n <button ng-class=\\\"{'btn btn-default' : true, 'btn-dark' : vm.filterChoice.showAll}\\\" ng-click=\\\"vm.resetInventoryRowsFiltering()\\\"> {{'stock.showall' | translate}} </button>\\n </div>\\n </div>\\n\\n <wj-flex-grid selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" is-read-only=\\\"false\\\"\\n class=\\\"orders-flex-grid orders-flex-grid-fixed-width\\\" initialized=\\\"vm.captureInventoryRowsGrid(s)\\\">\\n\\n <wj-flex-grid-column header=\\\"{{'article.articlename' | translate}}\\\" width=\\\"3*\\\" binding=\\\"articleVariant.article.alternativeArticleNumber\\\">\\n {{$item.alternativeArticleNumber}} {{$item.articleName}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.variantdetail1' | translate}}\\\" width=\\\"*\\\" binding=\\\"variantDetail1Name\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.variantdetail2' | translate}}\\\" width=\\\"*\\\" binding=\\\"variantDetail2Name\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.itemgroup' | translate}}\\\" width=\\\"0\\\" binding=\\\"itemGroupLongName\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.maingroup' | translate}}\\\" width=\\\"0\\\" binding=\\\"mainGroupDescription\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'article.brand' | translate}}\\\" width=\\\"0\\\" binding=\\\"brandDescription\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n\\n <wj-flex-grid-column header=\\\"{{'stock.balanceinventoried' | translate}}\\\" width=\\\"*\\\" binding=\\\"quantity\\\" aggregate=\\\"Sum\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.theoreticalbalance' | translate}}\\\" width=\\\"*\\\" binding=\\\"theoreticalStockBalance\\\" aggregate=\\\"Sum\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.difference' | translate}}\\\" width=\\\"*\\\" binding=\\\"stockDifference\\\" aggregate=\\\"Sum\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.total' | translate}}\\\" width=\\\"*\\\" binding=\\\"totalValue\\\" aggregate=\\\"Sum\\\" is-read-only=\\\"true\\\"></wj-flex-grid-column>\\n\\n <wj-flex-grid-column header=\\\"\\\" width=\\\"*\\\" align=\\\"Center\\\" is-read-only=\\\"true\\\">\\n <button class=\\\"btn btn-default btn-xs\\\" ng-click=\\\"$state.go('stock.scannerinventorying.inventory.articledetails', {articleId: $item.articleId, locationId: $item.locationId, variantDetailId: $item.variantDetail1Id})\\\">\\n {{'common.analyze' | translate}}\\n </button>\\n </wj-flex-grid-column>\\n\\n <wj-flex-grid-column header=\\\"\\\" width=\\\"*\\\" align=\\\"Center\\\" is-read-only=\\\"true\\\">\\n <button class=\\\"btn btn-default btn-xs\\\" ng-click=\\\"vm.openCorrectionsModal($item.articleId)\\\" ng-disable=\\\"$item.isApproved\\\">\\n {{'common.correct' | translate}}\\n </button>\\n </wj-flex-grid-column>\\n\\n <wj-flex-grid-column header=\\\"{{'common.approved' | translate}}?\\\" width=\\\"*\\\" binding=\\\"isApproved\\\" aggregate=\\\"Max\\\">\\n </wj-flex-grid-column>\\n\\n </wj-flex-grid>\\n\\n <div class=\\\"col-lg-12\\\" >\\n <button class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.sendInventoryRowsForApproval()\\\"> {{'common.approve' | translate}} </button>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\\n<div ui-view=\\\"\\\"></div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .hbox {\\n width: inherit;\\n }\\n</style>\\n<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col bg-white-only b-b\\\" style=\\\"width:100%;\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"input-group m-b-xxs list-menu b-b\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.openNewInventoryModal()\\\">{{'common.new' | translate}}</button></span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\"\\n items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadOrders()\\\"\\n ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"\\n ng-hide=\\\"vm.isHidingInventoriesGrid\\\"></div>\\n </div>\\n </div>\\n\\n <div>\\n <button ng-show=\\\"vm.isHidingInventoriesGrid\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.unHideInventoriesGrid()\\\">{{ 'common.return' | translate }}</button>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-hover\\\">\\n <thead>\\n <th>{{'stock.inventorydate' | translate}}</th>\\n <th>{{'stock.inventorytype' | translate}}</th>\\n <th>{{'stock.inventorystatus' | translate}}</th>\\n <th>{{'stock.location' | translate}}</th>\\n <th>{{'inventory.inventorydescription' | translate}}</th>\\n <th>{{'stock.balanceinventoried' | translate}}</th>\\n <th>{{'stock.difference' | translate}}</th>\\n <th>{{'stock.totalworth' | translate}}</th>\\n </thead>\\n <tbody>\\n <tr ng-style=\\\"order.id === vm.previouslySelectedInventoryId && {'background-color':'rgba(245, 245, 245, 0.25)'}\\\" style=\\\"height: 20px\\\" ng-repeat=\\\"order in vm.orders\\\">\\n <td>\\n <a ng-click=\\\"vm.hideInventoriesGrid(order); $state.go('stock.scannerinventorying.inventory', {inventoryId: order.id})\\\" class=\\\"ca-celllink\\\">\\n {{ order.inventoryDate }}\\n </a>\\n </td>\\n <td>{{ order.inventoryType.inventoryTypeName }}</td>\\n <td>{{ order.inventoryStatus.inventoryStatusName }}</td>\\n <td>{{ order.location.locationName }}</td>\\n <td style=\\\"min-width: 23%;\\\">{{ order.inventoryDescription }}</td>\\n <td style=\\\"text-align: right;\\\">{{ order.inventoryRowsQuantitySum }}</td>\\n <td style=\\\"text-align: right;\\\">{{ order.quantityStockDifference }}</td>\\n <td style=\\\"text-align: right;\\\">{{ order.totalWorth }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div class=\\\"col lter b-r productlist-w-transition\\\" ng-class=\\\"{ 'w-3xs' : !$state.params.showArticleList, \\n 'w-xl' : $state.params.showArticleList || $state.params.showArticleList === undefined}\\\" \\n ui-view=\\\"articleList\\\" ng-hide=\\\"$state.includes('stock.scannerinventorying') ||\\n $state.includes('stock.stockpickinglist') ||\\n $state.includes('stock.stockValueReports') ||\\n $state.includes('stock.soldStockReports') ||\\n $state.includes('stock.saleThroughputReports')\\\"></div>\\n\\n <div class=\\\"col ca-w-max bg-white-only\\\" ui-view=\\\"articleView\\\" ng-hide=\\\"$state.includes('stock.scannerinventorying') || \\n $state.includes('stock.stockValueReports') ||\\n $state.includes('stock.soldStockReports') ||\\n $state.includes('stock.saleThroughputReports')\\\"></div>\\n\\n <div class=\\\"col ca-w-max bg-white-only\\\" ui-view=\\\"wideColumnView\\\" ng-show=\\\"$state.includes('stock.scannerinventorying') || \\n $state.includes('stock.stockValueReports') ||\\n $state.includes('stock.soldStockReports') ||\\n $state.includes('stock.saleThroughputReports')\\\"></div>\\n\\n <div class=\\\"col\\\" ng-hide=\\\"$state.includes('stock.stockpickinglist') ||\\n $state.includes('stock.stockValueReports') ||\\n $state.includes('stock.soldStockReports') ||\\n $state.includes('stock.saleThroughputReports')\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.search}\\\"><a ng-click=\\\"vm.changeToSearchTab()\\\">{{'purchaseorder.ordering' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.locations}\\\"><a ng-click=\\\"vm.changeToLocationsTab()\\\">{{'stocklogistics.choselocations' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.rules}\\\"><a ng-click=\\\"vm.changeToRulesTab()\\\">{{'stocklogistics.rules' | translate}}</a></li>\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.search\\\">\\n <div class=\\\"input-group m-b-xxs list-menu b-b\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <form ng-submit=\\\"vm.searchArticles()\\\">\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </form>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-sm-2\\\">\\n <ui-select ng-model=\\\"vm.selectedCollection\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.collectionDescription}}</ui-select-match>\\n <ui-select-choices repeat=\\\"collection in vm.collections | filter:{'collectionDescription': $select.search}\\\">\\n <span>{{collection.collectionDescription}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-sm-10\\\">\\n <div class=\\\"m-b-none m-t-none\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeIsCurrent\\\" ng-disabled=\\\"true\\\"/>\\n <i></i>\\n {{'stocklogistics.includeiscurrent' | translate}}\\n </label>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"m-b-none m-t-none\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.excludeArticlesWithOrderingPoints\\\"/>\\n <i></i>\\n {{'stocklogistics.excludeallwithorderingpoints' | translate}}\\n </label>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"m-b-none m-t-none\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.adjustWithStockValues\\\" />\\n <i></i>\\n {{'stocklogistics.includequantityintransit' | translate}}\\n </label>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\" style=\\\"margin-bottom:30px;\\\">\\n <button ng-click=\\\"vm.insertStockQuantities()\\\" class=\\\"btn btn-primary\\\"> {{'stocklogistics.createsuggestion' | translate}} </button>\\n <button ng-click=\\\"vm.submitAndCreateOrders()\\\" class=\\\"btn btn-default\\\" ng-disabled=\\\"!vm.canSubmitAndCreateOrders()\\\"> {{'stocklogistics.createorder' | translate}} </button>\\n </div>\\n </div>\\n\\n <!-- Locations selector -->\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.locations\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.selectAllLocations()\\\"> {{'common.all' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.selectNoLocations()\\\"> {{'common.none' | translate}} </button>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <wj-flex-grid style=\\\"width: auto\\\"\\n selection-mode=\\\"Row\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"false\\\"\\n class=\\\"orders-flex-grid\\\"\\n initialized=\\\"vm.captureLocationsGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'base.use' | translate}}\\\" width=\\\"50\\\" binding=\\\"isVisible\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'location.locationnumber' | translate}}\\\" width=\\\"50\\\" binding=\\\"locationNumber\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'location.name' | translate}}\\\" width=\\\"200\\\" binding=\\\"locationName\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.distributionweight' | translate}}\\\" width=\\\"150\\\" binding=\\\"distributionWeight\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.locationpriority' | translate}}\\\" width=\\\"150\\\" binding=\\\"locationPriority\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.from' | translate}}\\\" width=\\\"150\\\" binding=\\\"outDeliverable\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.to' | translate}}\\\" width=\\\"150\\\" binding=\\\"inDeliverable\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.rules\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.difftocreatesuggestion' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.minDiffToCreateSuggestion\\\" ng-disabled=\\\"true\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.threshold' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.lowerThresholdQuantity\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.movemaximum' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.moveMaximum\\\" ng-disabled=\\\"true\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.minimumcostpricethreshold' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.minimumCostPriceThreshold\\\" />\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <!-- Grid section -->\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.hasRowData()\\\">\\n <div clas=\\\"form-group row\\\">\\n <wj-flex-grid style=\\\"width: auto; max-height: 500px\\\"\\n selection-mode=\\\"Row\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"false\\\"\\n class=\\\"orders-flex-grid\\\"\\n initialized=\\\"vm.captureArticlesGrid(s)\\\"\\n cell-edit-ended=\\\"vm.validateGridRow(s)\\\"\\n beginning-edit=\\\"vm.preventChangingOfIsOkValue(s, e)\\\">\\n </wj-flex-grid>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\" id=\\\"orderSearchRegion\\\">\\n <div class=\\\"row-row\\\">\\n <div class=\\\"col w-xxl bg-white-only b-b\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.search}\\\"><a ng-click=\\\"vm.changeToSearchTab()\\\">{{'purchaseorder.ordering' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.locations}\\\"><a ng-click=\\\"vm.changeToLocationsTab()\\\">{{'stocklogistics.choselocations' | translate}}</a></li>\\n <!--<li ng-class=\\\"{'active' : vm.tabSelection.rules}\\\"><a ng-click=\\\"vm.changeToRulesTab()\\\">{{'stocklogistics.rules' | translate}}</a></li>-->\\n </ul>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.search\\\">\\n <div class=\\\"input-group m-b-xxs list-menu b-b\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <form ng-submit=\\\"vm.searchArticles()\\\">\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </form>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"m-b-none m-t-none\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.handleNegativeEshopQuantities\\\" />\\n <i></i>\\n {{'stocklogistics.handlenegativeeshopvalues' | translate}}\\n </label>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"form-group row col-lg-12\\\">\\n <button ng-click=\\\"vm.insertStockQuantities()\\\" class=\\\"btn btn-primary\\\"> {{'stocklogistics.createsuggestion' | translate}} </button>\\n <button ng-click=\\\"vm.submitAndCreateOrders()\\\" class=\\\"btn btn-default\\\" ng-disabled=\\\"!vm.canAccess('order', 'create')\\\"> {{'stocklogistics.createorder' | translate}} </button>\\n </div>\\n </div>\\n\\n <!-- Locations selector -->\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.locations\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.selectAllLocations()\\\"> {{'common.all' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.selectNoLocations()\\\"> {{'common.none' | translate}} </button>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <wj-flex-grid style=\\\"width: auto\\\"\\n selection-mode=\\\"Row\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"false\\\"\\n class=\\\"orders-flex-grid\\\"\\n initialized=\\\"vm.captureLocationsGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'base.use' | translate}}\\\" width=\\\"50\\\" binding=\\\"isVisible\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'location.locationnumber' | translate}}\\\" width=\\\"50\\\" binding=\\\"locationNumber\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'location.name' | translate}}\\\" width=\\\"200\\\" binding=\\\"locationName\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.distributionweight' | translate}}\\\" width=\\\"150\\\" binding=\\\"distributionWeight\\\" is-read-only=\\\"false\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.locationpriority' | translate}}\\\" width=\\\"150\\\" binding=\\\"locationPriority\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.from' | translate}}\\\" width=\\\"150\\\" binding=\\\"outDeliverable\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stocklogistics.to' | translate}}\\\" width=\\\"150\\\" binding=\\\"inDeliverable\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\" ng-show=\\\"vm.tabSelection.rules\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.difftocreatesuggestion' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.minDiffToCreateSuggestion\\\" ng-disabled=\\\"true\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.threshold' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.lowerThresholdQuantity\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.movemaximum' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.moveMaximum\\\" ng-disabled=\\\"true\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group row col-lg-12\\\">\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"control-label\\\">{{'stocklogistics.minimumcostpricethreshold' | translate}}:</label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <input class=\\\"form-control ng-pristine ng-valid ng-touched\\\" type=\\\"number\\\" ng-model=\\\"vm.minimumCostPriceThreshold\\\" />\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <!-- Grid section -->\\n <div class=\\\"col-lg-12\\\">\\n <div clas=\\\"form-group row\\\">\\n <wj-flex-grid style=\\\"width: auto; max-height: 500px\\\"\\n selection-mode=\\\"Row\\\"\\n headers-visibility=\\\"Column\\\"\\n is-read-only=\\\"false\\\"\\n class=\\\"orders-flex-grid\\\"\\n initialized=\\\"vm.captureArticlesGrid(s)\\\"\\n cell-edit-ended=\\\"vm.validateGridRow(s)\\\"\\n beginning-edit=\\\"vm.preventChangingOfIsOkValue(s, e)\\\">\\n </wj-flex-grid>\\n </div>\\n </div>\\n\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-defualt\\\" style=\\\"max-height: 1000px; overflow-block:hidden; height: 100%; display:flex; flex-direction: column; position: static\\\">\\n <div class=\\\"panel-heading font-bold\\\" style=\\\"height:100%;\\\">\\n <div class=\\\"col-lg-2\\\"> </div>\\n <div class=\\\"col-lg-2\\\">\\n <button class=\\\"btn btn-default\\\" style=\\\"width:100%; margin-top:10px\\\" ng-click=\\\"vm.goToPreviousStep()\\\" ng-disabled=\\\"vm.stepHandler.currentStep === 0\\\">{{'common.back' | translate}}</button>\\n </div>\\n <h2 class=\\\"col-lg-4\\\" style=\\\"text-align:center; margin:0px;\\\">\\n {{ vm.stepHandler.steps[vm.stepHandler.currentStep] }}\\n </h2>\\n <div class=\\\"col-lg-2\\\">\\n <button class=\\\"btn btn-primary\\\" style=\\\"width:100%; margin-top:10px\\\" ng-click=\\\"vm.goToNextStep()\\\" ng-disabled=\\\"!vm.validSelection()\\\">{{'common.next' | translate}}</button>\\n </div>\\n <div class=\\\"col-lg-2\\\"> </div>\\n </div>\\n <div class=\\\"panel-body\\\" style=\\\"position:static;\\\">\\n <div ng-show=\\\"vm.stepHandler.currentStep === 0\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <div class=\\\"col-lg-3\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\"\\n style=\\\"width:60%; display:inline-block\\\"\\n ng-model=\\\"vm.locationFilter\\\" \\n ng-change=\\\"vm.filterChanged('location')\\\" \\n placeholder=\\\"{{ 'common.filter' | translate }} {{ 'contacts.locations' | translate }}\\\"/>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.locationFilter.length === 0\\\" ng-click=\\\"vm.deselectSelection('location')\\\">Rensa</button>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-hide=\\\"vm.locationFilter.length === 0\\\" ng-click=\\\"vm.selectFilterSelection('location')\\\">Välj Urval</button>\\n <ul class=\\\"b-r b-l b-b\\\" style=\\\"overflow-y:scroll; height:500px; padding-left:4px\\\">\\n <li ng-repeat=\\\"location in vm.filteredLocations | filter: { selected: true }\\\" style=\\\"background-color:aliceblue;\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"location.selected\\\" ng-change=\\\"vm.filterChanged('location')\\\" style=\\\"overflow-anchor: none;\\\"/>\\n <i></i>\\n {{location.locationName}}\\n </label>\\n </li>\\n <div class=\\\"b-b\\\"></div>\\n <li ng-repeat=\\\"location in vm.filteredLocations | filter: { selected: false }\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"location.selected\\\" ng-change=\\\"vm.filterChanged('location')\\\" style=\\\"overflow-anchor: none;\\\"/>\\n <i></i>\\n {{location.locationName}}\\n </label>\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"col-lg-3\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\"\\n style=\\\"width:60%; display:inline-block\\\"\\n ng-model=\\\"vm.mainGroupFilter\\\" \\n ng-change=\\\"vm.filterChanged('mainGroup')\\\" \\n placeholder=\\\"{{ 'common.filter' | translate }} {{ 'article.maingroup' | translate }}\\\"/>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.mainGroupFilter.length === 0\\\" ng-click=\\\"vm.deselectSelection('mainGroup')\\\">Rensa</button>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-hide=\\\"vm.mainGroupFilter.length === 0\\\" ng-click=\\\"vm.selectFilterSelection('mainGroup')\\\">Välj Urval</button>\\n <ul class=\\\"b-r b-l b-b\\\" style=\\\"overflow-y:scroll; height:500px; padding-left:4px\\\">\\n <li class =\\\"ui-select-choices-group\\\">\\n <div class=\\\"float;left\\\" ng-repeat=\\\"mainGroup in vm.filteredMainGroups | filter: { selected: true }\\\" style=\\\"background-color:aliceblue;\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input style=\\\"position:fixed\\\" type=\\\"checkbox\\\" href=\\\"javascript:void();\\\" ng-model=\\\"mainGroup.selected\\\" ng-change=\\\"vm.filterChanged('mainGroup')\\\"/>\\n <i></i>\\n {{mainGroup.mainGroupDescription}}\\n </label>\\n </div>\\n <div class=\\\"b-b\\\"></div>\\n <div ng-repeat=\\\"mainGroup in vm.filteredMainGroups | filter: { selected: false }\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input style=\\\"position:fixed\\\" type=\\\"checkbox\\\" ng-model=\\\"mainGroup.selected\\\" ng-change=\\\"vm.filterChanged('mainGroup')\\\"/>\\n <i></i>\\n {{mainGroup.mainGroupDescription}}\\n </label>\\n </div>\\n </li>\\n </ul>\\n </div>\\n <div class=\\\"col-lg-3\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\" \\n style=\\\"width:60%; display:inline-block\\\"\\n ng-model=\\\"vm.brandFilter\\\" \\n ng-change=\\\"vm.filterChanged('brand')\\\" \\n placeholder=\\\"{{ 'common.filter' | translate }} {{ 'article.brand' | translate }}\\\"/>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.brandFilter.length === 0\\\" ng-click=\\\"vm.deselectSelection('brand')\\\">Rensa</button>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-hide=\\\"vm.brandFilter.length === 0\\\" ng-click=\\\"vm.selectFilterSelection('brand')\\\">Välj Urval</button>\\n <div class=\\\"b-r b-l b-b\\\" style=\\\"overflow:hidden; overflow-y:scroll; height:500px; padding-left:4px\\\">\\n <div ng-repeat=\\\"brand in vm.filteredBrands | filter: { selected: true }\\\" style=\\\"background-color:aliceblue\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input style=\\\"position: fixed;\\\" type=\\\"checkbox\\\" href=\\\"javascript:void();\\\" ng-model=\\\"brand.selected\\\" ng-change=\\\"vm.filterChanged('brand')\\\"/>\\n <i></i>\\n {{brand.brandDescription}}\\n </label>\\n </div>\\n <div class=\\\"b-b\\\"></div>\\n <div ng-repeat=\\\"brand in vm.filteredBrands | filter: { selected: false }\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input style=\\\"position: fixed;\\\" type=\\\"checkbox\\\" href=\\\"javascript:void();\\\" ng-model=\\\"brand.selected\\\" ng-change=\\\"vm.filterChanged('brand')\\\"/>\\n <i></i>\\n {{brand.brandDescription}}\\n </label>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-lg-3\\\">\\n <input type=\\\"text\\\" \\n class=\\\"form-control enterAsTab\\\"\\n style=\\\"width:60%; display:inline-block\\\"\\n ng-model=\\\"vm.collectionFilter\\\" \\n ng-change=\\\"vm.filterChanged('collection')\\\" \\n placeholder=\\\"{{ 'common.filter' | translate }} {{ 'article.articlecollection' | translate }}\\\"/>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-show=\\\"vm.collectionFilter.length === 0\\\" ng-click=\\\"vm.deselectSelection('collection')\\\">Rensa</button>\\n <button class=\\\"btn btn-default\\\" style=\\\"margin-bottom:3px; width:38%; display:inline-block;\\\" ng-hide=\\\"vm.collectionFilter.length === 0\\\" ng-click=\\\"vm.selectFilterSelection('collection')\\\">Välj Urval</button>\\n <div class=\\\"b-r b-l b-b\\\" style=\\\"overflow-y:scroll; height:500px; padding-left:4px\\\">\\n <div ng-repeat=\\\"collection in vm.filteredCollections | filter: { selected: true }\\\" style=\\\"background-color:aliceblue\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"collection.selected\\\" ng-change=\\\"vm.filterChanged('collection')\\\"/>\\n <i></i>\\n {{collection.collectionCode}}\\n </label>\\n </div>\\n <div class=\\\"b-b\\\"></div>\\n <div ng-repeat=\\\"collection in vm.filteredCollections | filter: { selected: false }\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"collection.selected\\\" ng-change=\\\"vm.filterChanged('collection')\\\"/>\\n <i></i>\\n {{collection.collectionCode}}\\n </label>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <h4>Andra val:</h4>\\n <label class=\\\"i-checks m-t-xs\\\" ng-if=\\\"vm.filterIsCurrent\\\" style=\\\"background-color:aliceblue\\\" >\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterIsCurrent\\\"/>\\n <i></i>\\n {{ 'stocklogistics.includeiscurrent' | translate}}\\n </label>\\n <label class=\\\"i-checks m-t-xs\\\" ng-if=\\\"!vm.filterIsCurrent\\\">\\n <input type=\\\"checkbox\\\" ng-model=\\\"vm.filterIsCurrent\\\"/>\\n <i></i>\\n {{ 'stocklogistics.includeiscurrent' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n </div>\\n <div class=\\\"panel-footer\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n input.highlightable{\\n border: 1px solid rgba(255, 255, 255, 0);\\n padding:0px;\\n height:auto;\\n width:99%;\\n }\\n input.highlightable:hover{\\n border-color: lightgray;\\n }\\n input.highlightable:focus{\\n border-color:lightslategray;\\n }\\n .table-readable-compact > thead > tr > th.separator,\\n .table-readable-compact > tbody > tr > td.separator{\\n min-width: 10px !important;\\n max-width: 10px !important;\\n width: 10px !important;\\n background-color:rgb(212, 218, 219); \\n padding:0px;\\n }\\n .table-readable-compact > thead > tr > th,\\n .table-readable-compact > thead > tr > td {\\n min-width: 30px !important;\\n }\\n .custom-text {\\n margin-left: 20px;\\n margin-bottom: 10px;\\n }\\n input[type=\\\"range\\\"] {\\n appearance: slider-vertical;\\n }\\n #changessavedanim {\\n font-size:smaller; \\n float:right;\\n\\n animation:changessavedanim 1.1s 1;\\n -webkit-animation:changessavedanim 1.1s 1;\\n animation-fill-mode: forwards;\\n\\n animation-delay:1s;\\n -webkit-animation-delay:1s; /* Safari and Chrome */\\n -webkit-animation-fill-mode: forwards;\\n }\\n\\n @keyframes changessavedanim{\\n from {opacity :1;}\\n to {opacity :0;}\\n }\\n\\n @-webkit-keyframes changessavedanim{\\n from {opacity :1;}\\n to {opacity :0;}\\n }\\n</style>\\n\\n<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">\\n {{ vm.createMode ? ('article.create' | translate) : ' ' + ('article.update' | translate) }}\\n {{ 'article.autoOrderCurve' | translate }}\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"custom-text\\\">\\n {{'article.explainCurve' | translate}}\\n </div>\\n <div ng-if=\\\"!vm.createMode\\\" style=\\\"margin-bottom: 30px;\\\">\\n <div class=\\\"col-lg-11\\\">\\n <ca-singleselect class=\\\"w-100\\\" model=\\\"vm.selectedAutoMonthMultiplier\\\" choices=\\\"vm.autoMonthMultipliers\\\"\\n order-by=\\\"'name'\\\" item-renderer=\\\"'dropDownName'\\\"></ca-singleselect>\\n </div>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.createNewToggle()\\\">\\n {{'common.new' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" ng-click=\\\"vm.deleteSelected()\\\" ng-if=\\\"!vm.createMode && vm.selectedAutoMonthMultiplier && vm.selectedAutoMonthMultiplier.id !== -1\\\">\\n <i class=\\\"fa fa-trash\\\"></i>\\n </button>\\n </div>\\n\\n <div style=\\\"margin-bottom: 30px\\\">\\n <table class=\\\"table-condensed table-readable-compact\\\" style=\\\"background-color:white;border:0px; \\\" ng-if=\\\"vm.selectedAutoMonthMultiplier && vm.selectedAutoMonthMultiplier.id !== -1\\\">\\n <thead>\\n <tr>\\n <th colspan=\\\"4\\\">\\n <div style=\\\"white-space: nowrap; min-width: 30px;\\\">\\n <div><i style=\\\"font-size:x-small; position:absolute;margin-top:-17px;margin-left:-4px\\\">{{ 'article.articleTypeName' | translate }}: </i></div> \\n <input\\n id=\\\"nameInput\\\"\\n type=\\\"text\\\"\\n ng-model=\\\"vm.selectedAutoMonthMultiplier.name\\\"\\n style=\\\"text-align:left;\\\" \\n class=\\\"enterAsTab highlightable\\\"\\n enter-as-tab\\n ng-blur=\\\"vm.saveOnChange()\\\"\\n ng-style=\\\"{'background-color': vm.selectedAutoMonthMultiplier.name ? '' : 'lightcoral'}\\\"/>\\n </div>\\n </th>\\n </tr>\\n <tr> \\n <th align=\\\"left\\\">\\n <div style=\\\"min-width: 30px; text-align: left; border: 1px; border-right:4px; font-size: 11px;\\\">{{ ('common.all' | translate).toUpperCase() }}</div>\\n </th>\\n <th class=\\\"separator\\\"></th>\\n <th ng-repeat=\\\"field in vm.fields\\\" align=\\\"right\\\">\\n <div style=\\\"min-width: 30px; text-align: right; border: 1px; font-size: 11px;\\\">{{ field.abbreviation }}</div>\\n </th>\\n </tr>\\n </thead>\\n <tbody ng-if=\\\"vm.selectedAutoMonthMultiplier\\\">\\n <tr>\\n <td style=\\\"border-right:4px;\\\">\\n <input \\n type=\\\"range\\\"\\n ng-model=\\\"vm.allMonthsMultiplier\\\"\\n ng-mouseup=\\\"vm.updateOnAllMonths()\\\"\\n ng-change=\\\"vm.handleConvertValueAllMonths()\\\"\\n step=\\\"0.1\\\"\\n min=\\\"0\\\" \\n max=\\\"4\\\"\\n orient=\\\"vertical\\\"\\n tabindex=\\\"-1\\\"\\n list=\\\"verticalRangeValues\\\"\\n class=\\\"m-b-xs\\\"/>\\n <input\\n type=\\\"number\\\"\\n ng-model=\\\"vm.allMonthsMultiplier\\\"\\n style=\\\"text-align:center; text-indent: 14px;\\\" \\n step=\\\"0.1\\\"\\n class=\\\"enterAsTab highlightable\\\"\\n enter-as-tab\\n ng-blur=\\\"vm.updateOnAllMonths()\\\"/>\\n </td>\\n <td class=\\\"separator\\\"></td>\\n <td ng-repeat=\\\"field in vm.fields\\\">\\n <input \\n type=\\\"range\\\"\\n ng-model=\\\"vm.selectedAutoMonthMultiplier[field.full.toLowerCase()]\\\"\\n ng-mouseup=\\\"vm.saveOnChange()\\\"\\n ng-change=\\\"vm.handleConvertValue(field.full.toLowerCase())\\\"\\n step=\\\"0.1\\\"\\n min=\\\"0\\\" \\n max=\\\"4\\\"\\n orient=\\\"vertical\\\"\\n tabindex=\\\"-1\\\"\\n list=\\\"verticalRangeValues\\\"\\n class=\\\"m-b-xs\\\"/>\\n <input\\n type=\\\"number\\\"\\n ng-model=\\\"vm.selectedAutoMonthMultiplier[field.full.toLowerCase()]\\\"\\n style=\\\"text-align:center; text-indent: 14px;\\\" \\n step=\\\"0.1\\\"\\n class=\\\"enterAsTab highlightable\\\"\\n enter-as-tab\\n ng-change=\\\"vm.saveOnChange()\\\"/>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n <button ng-if=\\\"vm.createMode\\\" class=\\\"btn btn-primary btn\\\" ng-click=\\\"vm.create()\\\" ng-disabled=\\\"vm.ongoingRequest || !vm.selectedAutoMonthMultiplier.name\\\">{{'common.save' | translate}}</button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal()\\\" ng-disabled=\\\"vm.ongoingRequest\\\">{{'common.close' | translate}}</button>\\n <div id=\\\"changessavedanim\\\" ng-if=\\\"!vm.ongoingRequest && vm.enableChangesSavedNotification\\\"><i class=\\\"fa fa-check\\\" aria-hidden=\\\"true\\\"></i> {{ 'common.allChangesSaved' | translate }}...</div>\\n </div>\\n</div>\\n<datalist id=\\\"verticalRangeValues\\\">\\n <option value=\\\"4\\\"></option>\\n <option value=\\\"3\\\"></option>\\n <option value=\\\"2\\\"></option>\\n <option value=\\\"1\\\"></option>\\n <option value=\\\"0\\\"></option>\\n</datalist>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading font-bold\\\">\\n <span>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.openLabelsModal()\\\">\\n {{'article.getlabels' | translate}}\\n </button> \\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('product.articles.article')\\\"> \\n {{'article.articles' | translate}} \\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.modelinventorysearch.modelinventory')\\\">\\n {{'stock.inventorymodel' | translate}}\\n </button>\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.productStateGo('stock.articlesearch.article')\\\">\\n {{'common.stock' | translate}}\\n </button>\\n\\n </span> \\n <div> </div>\\n <span>{{vm.selectedArticle.alternativeArticleNumber + ' ' + vm.selectedArticle.articleName}}</span>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12 b-b\\\">\\n <div class=\\\"row\\\" style=\\\"margin-bottom: 10px;\\\">\\n <label class=\\\"col-lg-12\\\"> {{'article.autoOrderCurve' | translate}}: </label>\\n <div class=\\\"col-lg-10\\\">\\n <ca-singleselect class=\\\"w-100\\\" model=\\\"vm.selectedMultiplier\\\" choices=\\\"vm.autoMonthMultipliers\\\"\\n order-by=\\\"'name'\\\" item-renderer=\\\"'dropDownName'\\\"></ca-singleselect>\\n </div>\\n <div class=\\\"col-lg-2 d-flex justify-content-end\\\">\\n <button class=\\\"btn btn-primary btn-sm\\\"\\n ng-click=\\\"vm.openMultiplierModal()\\\">{{'article.handleCurve' | translate}}</button>\\n </div>\\n </div> \\n </div>\\n <div class=\\\"col-lg-12 m-t\\\">\\n <div class=\\\"row mt-3\\\">\\n <label class=\\\"col-lg-12\\\"> {{'stocklogistics.to' | translate}}: </label>\\n <div class=\\\"col-lg-12\\\">\\n <wj-auto-complete selected-index-changed=\\\"vm.selectedLocationChanged(s)\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.locations\\\"\\n display-member-path=\\\"locationName\\\"\\n is-editable=\\\"false\\\"\\n required=\\\"true\\\"\\n style=\\\"width: 100%;\\\"></wj-auto-complete>\\n </div>\\n </div>\\n </div>\\n \\n \\n \\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection.maxPoint}\\\"><a ng-click=\\\"vm.switchToOrderingPointMax()\\\">{{'stocklogistics.orderingpointmax' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.minPoint}\\\"><a ng-click=\\\"vm.switchToOrderingPointMin()\\\">{{'stocklogistics.orderingpointmin' | translate}}</a></li>\\n <li ng-class=\\\"{'active' : vm.tabSelection.packSize}\\\"><a ng-click=\\\"vm.switchToPackSize()\\\">{{'stocklogistics.packsize' | translate}}</a></li>\\n </ul>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t b-r b-l b-b\\\">\\n <div class=\\\"col-lg-12\\\"> </div>\\n <wj-flex-grid initialized=\\\"vm.captureVariantsGrid(s)\\\" auto-generate-columns=\\\"False\\\" class=\\\"orders-flex-grid\\\" style=\\\"width: auto; max-width:100%\\\">\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <label class=\\\"col-lg-12\\\"> {{'stocklogistics.from' | translate}}: </label>\\n\\n <div class=\\\"col-lg-12\\\">\\n <ui-select ng-model=\\\"vm.selectedFromLocation\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.selectableFromLocations | filter:{'locationName': $select.search}\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <label class=\\\"col-lg-12\\\"> {{'stock.weekdays' | translate}}: </label>\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.monday\\\" />\\n <i></i>\\n {{'common.monday' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.tuesday\\\" />\\n <i></i>\\n {{'common.tuesday' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.wednesday\\\" />\\n <i></i>\\n {{'common.wednesday' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.thursday\\\" />\\n <i></i>\\n {{'common.thursday' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.friday\\\" />\\n <i></i>\\n {{'common.friday' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.saturday\\\" />\\n <i></i>\\n {{'common.saturday' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.weekdaychoices.sunday\\\" />\\n <i></i>\\n {{'common.sunday' | translate}}\\n </label>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveStockLogistics()\\\">{{'common.save' | translate}}</button>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div ui-view=\\\"\\\"></div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"hbox hbox-auto-xs hbox-auto-sm bg-light\\\">\\n\\n <div class=\\\"col w-xl lter b-r\\\" ui-view=\\\"supportList\\\"></div>\\n \\n <div class=\\\"col bg-white-only\\\" ui-view=\\\"supportView\\\"></div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'role.create' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-sm-4\\\">\\n <ca-form-group-row label=\\\"'article.variant'\\\">\\n <ca-singleselect\\n model=\\\"vm.selectedVariant\\\" choices=\\\"vm.variants\\\"\\n order-by=\\\"'id'\\\" item-renderer=\\\"['variantName']\\\" />\\n </ca-form-group-row>\\n </div>\\n <div ng-show=\\\"vm.selectedVariant != undefined && vm.selectedVariant.id != -1\\\">\\n <div class=\\\"col-sm-4\\\">\\n <ca-form-group-row label=\\\"'variantdetail.statisticName'\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"statisticname\\\" ng-model=\\\"vm.statisticName\\\" enter-as-tab>\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"col-sm-4\\\" style=\\\"height:38px\\\"></div>\\n <div class=\\\"col-sm-12\\\"> </div>\\n <div>\\n <div class=\\\"col-sm-3\\\">\\n <label for=\\\"convertFromText\\\" style=\\\"margin-right:10px\\\">Konvertera frÃ¥n text:</label>\\n <input type=\\\"checkbox\\\" id=\\\"convertFromText\\\" id=\\\"fromListOfItem\\\" ng-model=\\\"vm.useListOfItems\\\"/>\\n </div>\\n <div ng-show=\\\"vm.useListOfItems\\\" class=\\\"col-sm-3\\\">\\n <textarea name=\\\"input\\\" style=\\\"width: 100%; height:400px\\\" ng-model=\\\"vm.fulltextInput\\\"></textarea>\\n </div>\\n <div ng-show=\\\"vm.useListOfItems\\\" class=\\\"col-sm-6\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.convertToLines()\\\">Konvertera</button>\\n </div>\\n </div>\\n <div class=\\\"col-sm-12\\\"> </div>\\n <div class=\\\"col-sm-12\\\">\\n <div class=\\\"alert alert-danger\\\" style=\\\"height:36px;margin:0px;padding:7px\\\" role=\\\"alert\\\">OBS: Auto Sortering funkar inte helt till 100%! - OSB: Max 50 variant detaljer Ã¥t gÃ¥ngen.</div>\\n </div>\\n <div class=\\\"col-sm-12\\\"> </div>\\n <div class=\\\"col-sm-3\\\">\\n <label for=\\\"varToAdd\\\" style=\\\"margin-right:10px\\\">Antal detaljer:</label>\\n </div>\\n <div class=\\\"col-sm-1\\\">\\n <input type=\\\"number\\\" id=\\\"varToAdd\\\" ng-model=\\\"vm.variantsToAdd\\\" ng-change=\\\"vm.updateListOfVariants()\\\" min=\\\"1\\\" max=\\\"50\\\"/>\\n </div>\\n <div class=\\\"col-sm-3\\\">\\n <label for=\\\"autoSortOrder\\\" style=\\\"margin-right:10px\\\">Auto Sortering:</label>\\n <input type=\\\"checkbox\\\" tabindex=\\\"-1\\\" id=\\\"autoSortOrder\\\" ng-model=\\\"vm.autoSortOrder\\\" ng-change=\\\"vm.doAutoSortOrder()\\\"/>\\n </div>\\n <div class=\\\"col-sm-5\\\" style=\\\"height:38px\\\"></div>\\n <div ng-repeat=\\\"variantDetail in vm.newVariantDetails\\\">\\n <div class=\\\"col-sm-5\\\">\\n <ca-form-group-row label=\\\"'variant.variantName'\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"variantdetailname\\\" ng-model=\\\"variantDetail.variantDetailName\\\" ng-change=\\\"vm.doAutoSortOrder()\\\" autocomplete=\\\"off\\\" enter-as-tab>\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"col-sm-2\\\">\\n <label for=\\\"variantDetail.overrideAutoSort\\\" style=\\\"margin-right:10px\\\">Sortering:</label>\\n </div>\\n <div class=\\\"col-sm-1\\\">\\n <input type=\\\"checkbox\\\" tabindex=\\\"-1\\\" ng-model=\\\"variantDetail.overrideAutoSort\\\" ng-change=\\\"vm.doAutoSortOrder()\\\"/>\\n </div>\\n <div class=\\\"col-sm-2\\\"> \\n <input type=\\\"number\\\" class=\\\"form-control enterAsTab\\\" name=\\\"sortorder\\\" ng-model=\\\"variantDetail.sortOrder\\\" autocomplete=\\\"off\\\" ng-disabled=\\\"vm.autoSortOrder && !variantDetail.overrideAutoSort\\\" enter-as-tab>\\n </div>\\n <div class=\\\"col-sm-2\\\" style=\\\"height:38px\\\"></div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.startEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.article'\\\">\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveProduct(article)\\\" on-article-removed=\\\"vm.removeProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n\\n <div style=\\\"margin-bottom: 20px;\\\"> </div>\\n\\n <ca-form-group-row label=\\\"'article.articleVariants'\\\" ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.id > 0\\\">\\n <ui-select ng-model=\\\"vm.selectedProductVariant\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{ 'support.chooseProductVariant' | translate }}\\\">\\n {{$select.selected.variantDetail1 + \\\", \\\" + $select.selected.variantDetail2 + \\\": \\\" + $select.selected.barcode}}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"productVariant in vm.selectedProductCopy.productVariants | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['externalId', 'barcode']}\\\">\\n <span>{{::productVariant.variantDetail1 + \\\", \\\" + productVariant.variantDetail2 + \\\": \\\" + productVariant.barcode}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'article.barcode'\\\" ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.id > 0\\\">\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"barcode\\\" ng-model=\\\"vm.newBarcode\\\" enter-as-tab>\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.startEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.article'\\\">\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveProduct(article)\\\" on-article-removed=\\\"vm.removeProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n\\n <div>Tänk pÃ¥ att om du flyttar streckkoder mellan olika produktvarianter finns det en risk att det blir fel i externa system som vi integrerar mot.</div>\\n\\n <div style=\\\"margin-bottom: 20px;\\\"> </div>\\n\\n <div style=\\\"font-weight: bold;\\\" ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.id > 0\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>Produktnamn</th>\\n <th>Produktnummer</th>\\n <th>Lev. produktnummer</th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr>\\n <td>{{ vm.selectedProductCopy.articleName }}</td>\\n <td>{{ vm.selectedProductCopy.articleNumber }}</td>\\n <td>{{ vm.selectedProductCopy.alternativeArticleNumber }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div style=\\\"margin-bottom: 20px;\\\" style=\\\"font-weight: bold;\\\" ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.id > 0\\\"> </div>\\n\\n <div ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.id > 0\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <th>Färg</th>\\n <th>Storlek</th>\\n <th>Externt ID / SKU</th>\\n <th>Primär streckkod</th>\\n <th>Streckkod(er)</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"productVariant in vm.selectedProductCopy.productVariants\\\">\\n <tr>\\n <td>{{ productVariant.variantDetail1 }}</td>\\n <td>{{ productVariant.variantDetail2 }}</td>\\n <td>{{ productVariant.externalId }}</td>\\n <td>\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"productVariant.newBarcode\\\" ng-disabled=\\\"!vm.isEditing\\\" enter-as-tab style=\\\"width: 150px;\\\">\\n </td>\\n <td>\\n <span ng-repeat=\\\"altbarcode in productVariant.barcodes\\\" style=\\\"display:inline-block;\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" ng-model=\\\"altbarcode.newBarcode\\\" ng-disabled=\\\"!vm.isEditing\\\" enter-as-tab style=\\\"width: 150px; margin-right:3px;\\\">\\n </span>\\n <input type=\\\"button\\\" class=\\\"btn btn-default\\\" value=\\\"+\\\" ng-click=\\\"vm.addBarcodeToProductVariant(productVariant)\\\" ng-disabled=\\\"!vm.isEditing\\\">\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.startEditing()\\\" ng-if=\\\"!vm.isEditing\\\" ng-disabled=\\\"!vm.selectedProduct || vm.selectedProduct.id === 0\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.article'\\\">\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveProduct(article)\\\" on-article-removed=\\\"vm.removeProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n\\n <div style=\\\"margin-bottom: 20px;\\\"> </div>\\n \\n <ca-form-group-row label=\\\"'common.active'\\\" ng-if=\\\"vm.selectedProduct && vm.selectedProduct.id > 0\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.isGroupSaleArticle\\\" ng-disabled=\\\"!vm.isEditing\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.startEditing()\\\" ng-if=\\\"!vm.isEditing\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-disabled=\\\"!vm.isEditing || !vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.article'\\\">\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveProduct(article)\\\" on-article-removed=\\\"vm.removeProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'support.currentItemGroup'\\\" >\\n <span>{{ vm.selectedProductCopy.itemGroup.itemGroupCode + ' ' + vm.selectedProductCopy.itemGroup.itemGroupLongName }}</span>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'article.itemgroup'\\\" >\\n <ui-select ng-model=\\\"vm.selectedItemGroup\\\" theme=\\\"bootstrap\\\" ng-disabled=\\\"!vm.isEditing\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.itemGroupCode + \\\" \\\" + $select.selected.itemGroupLongName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"itemGroup in vm.itemGroups | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['itemGroupCode', 'itemGroupLongName']}\\\">\\n <span>{{itemGroup.itemGroupCode + ' ' + itemGroup.itemGroupLongName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </ca-form-group-row>\\n <div style=\\\"margin-bottom: 20px;\\\"> </div>\\n\\n <ca-form-group-row label=\\\"'support.currentPreferredSupplier'\\\">\\n <div ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.preferredSupplier\\\">\\n <label>{{ vm.selectedProductCopy.preferredSupplier.companyName }}</label>\\n </div>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'brand.preferredCompany'\\\">\\n <ca-singleselect model=\\\"vm.selectedProduct.preferredSupplier\\\" choices=\\\"vm.selectedItemGroup.brand.companies\\\" order-by=\\\"'companyName'\\\" item-renderer=\\\"'companyName'\\\" mandatory=\\\"true\\\" disabled-by=\\\"!vm.isEditing || !(vm.selectedItemGroup && vm.selectedItemGroup.id)\\\" />\\n </ca-form-group-row>\\n <div style=\\\"margin-bottom: 20px;\\\"> </div>\\n\\n <ca-form-group-row label=\\\"'support.currentSuppliers'\\\">\\n <div ng-if=\\\"vm.selectedProductCopy && vm.selectedProductCopy.suppliers\\\">\\n <span ng-repeat=\\\"supplier in vm.selectedProductCopy.suppliers | orderBy:'supplier.companyName'\\\"> {{ supplier.companyName }} </span>\\n </div> \\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'brand.companies'\\\">\\n <ca-multiselect model=\\\"vm.selectedProduct.suppliers\\\" lock-choice=\\\"vm.selectedProduct.preferredSupplier.id\\\" choices=\\\"vm.selectedItemGroup.brand.companies\\\" order-by=\\\"'companyName'\\\" placeholder=\\\"'article.addCompany'\\\" item-renderer=\\\"['companyName']\\\" disabled-by=\\\"!vm.isEditing || !(vm.selectedItemGroup && vm.selectedItemGroup.id)\\\" />\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <h2>Ändra Storleks benämning.</h2>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.article'\\\">\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveProduct(article)\\\" on-article-removed=\\\"vm.removeProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n\\n <div style=\\\"font-weight: bold;\\\" ng-if=\\\"vm.selectedProduct && vm.selectedProduct.id > 0\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.openEditVariantDetailDialog()\\\">Ändra variantDetaljer</button>\\n </div>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.resetForm()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.reset' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'location.locationnumber'\\\">\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"locationnumber\\\" ng-model=\\\"vm.location.locationNumber\\\" enter-as-tab>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'location.name'\\\">\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"locationName\\\" ng-model=\\\"vm.location.locationName\\\" enter-as-tab>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'location.organizationnumber'\\\">\\n <input ng-if=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"organizationNumber\\\" ng-model=\\\"vm.location.organizationNumber\\\" enter-as-tab>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'location.startdate'\\\">\\n <wj-input-date class=\\\"col-sm-12\\\" id=\\\"wjStartDate\\\"\\n value=\\\"vm.location.startDate\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'location.type'\\\" ng-if=\\\"vm.isEditing\\\">\\n <ui-select ng-model=\\\"vm.selectedLocationType\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{ 'support.chooseLocationType' | translate }}\\\">\\n {{ $select.selected.description }}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"type in vm.locationTypes | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['description']}\\\">\\n <span>{{ ::type.description }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'location.category'\\\" ng-if=\\\"vm.isEditing\\\">\\n <ui-select ng-model=\\\"vm.selectedLocationCategory\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{ 'support.chooseLocationCategory' | translate }}\\\">\\n {{ $select.selected.category }}\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"category in vm.locationCategories | multiPartFilter: {searchTerm: $select.search} : {searchableTerms: ['category']}\\\">\\n <span>{{ ::category.category }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'common.active'\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.location.isActive\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.deleteProduct()\\\" ng-disabled=\\\"!vm.isAllowedToDelete()\\\"> {{'common.delete' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row label=\\\"'article.article'\\\">\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveProduct(article)\\\" on-article-removed=\\\"vm.removeProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.mergeProducts()\\\" ng-disabled=\\\"!vm.isAllowedToMerge()\\\"> SlÃ¥ ihop produkter </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row>\\n <label>Till produkt</label>\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveToProduct(article)\\\" on-article-removed=\\\"vm.removeToProduct()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row>\\n <label>FrÃ¥n produkt 1 (obligatorisk)</label>\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveFromProduct1(article)\\\" on-article-removed=\\\"vm.removeFromProduct1()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row>\\n <label>FrÃ¥n produkt 2 (valfri)</label>\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveFromProduct2(article)\\\" on-article-removed=\\\"vm.removeFromProduct2()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <ca-form-group-row>\\n <label>FrÃ¥n produkt 3 (valfri)</label>\\n <ca-article-search-single-select on-article-selected=\\\"vm.recieveFromProduct3(article)\\\" on-article-removed=\\\"vm.removeFromProduct3()\\\" page-size=\\\"20\\\" disabled-by=\\\"\\\" />\\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-body\\\">\\n <div style=\\\"width:50%\\\">\\n <ca-form-group-row label=\\\"'time.startdate'\\\">\\n <wj-input-date\\n value=\\\"vm.selectedStartDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n class=\\\"form-control\\\">\\n </wj-input-date>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'time.enddate'\\\">\\n <wj-input-date\\n value=\\\"vm.selectedEndDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n class=\\\"form-control\\\">\\n </wj-input-date>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'user.locations'\\\">\\n <ca-multiselect model=\\\"vm.selectedLocations\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" item-renderer=\\\"'locationName'\\\"/>\\n </ca-form-group-row>\\n\\n <div>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.search()\\\"> {{'common.search' | translate}} </button>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-click=\\\"vm.showSequenceNumbers = !vm.showSequenceNumbers\\\" ng-if=\\\"vm.missingEasyPosSequenceNumbers.length > 0 && vm.showSequenceNumbers\\\">\\n <a class=\\\"auto\\\" href=\\\"\\\">\\n <div class=\\\"col-lg-12\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\"> </i> <span class=\\\"ca-font\\\"> Dölj sekvensnummerlista</span>\\n </div>\\n </a>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-click=\\\"vm.showSequenceNumbers = !vm.showSequenceNumbers\\\" ng-if=\\\"vm.missingEasyPosSequenceNumbers.length > 0 && !vm.showSequenceNumbers\\\">\\n <a class=\\\"auto\\\" href=\\\"\\\">\\n <div class=\\\"col-lg-12 b-b\\\">\\n <i class=\\\"fa fa-fw fa-angle-down\\\"> </i> <span class=\\\"ca-font\\\"> Visa sekvensnummerlista</span>\\n </div>\\n </a>\\n </div> \\n <div class=\\\"col-lg-12\\\" ng-if=\\\"vm.missingEasyPosSequenceNumbers.length > 0\\\" ng-show=\\\"vm.showSequenceNumbers\\\">\\n <span ng-repeat=\\\"rec in vm.missingEasyPosSequenceNumbers\\\">{{ rec + ', ' }}</span>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\"> </div>\\n\\n <div ng-if=\\\"vm.missingEasyPosReceipts && vm.missingEasyPosReceipts.missingReceiptSpans.length > 0\\\">\\n <table class=\\\"table\\\" style=\\\"width: 100%;\\\">\\n <thead>\\n <tr>\\n <th style=\\\"position: sticky; top: 0; background-color: white;\\\">Butik</th>\\n <th style=\\\"position: sticky; top: 0; background-color: white;\\\">Kassa</th>\\n <th style=\\\"position: sticky; top: 0; background-color: white;\\\">Storlek pÃ¥ glapp</th>\\n <th style=\\\"position: sticky; top: 0; background-color: white;\\\"> </th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"mrs in vm.missingEasyPosReceipts.missingReceiptSpans\\\">\\n <tr>\\n <td style=\\\"font-weight:bold;\\\">{{ mrs.locationNumber + ' ' + mrs.locationName }}</td>\\n <td style=\\\"font-weight:bold;\\\">{{ mrs.cashRegisterNumber }}</td>\\n <td style=\\\"font-weight:bold;\\\">{{ (mrs.receiptNumberDiff - 1) }}</td>\\n <td style=\\\"font-weight:bold;\\\"> </td>\\n </tr>\\n <tr>\\n <td uib-tooltip=\\\"Sista bokföringsdatum innan glapp\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"topleft\\\">Datum före:<br>{{ mrs.receipt1AccountingDate }}</td>\\n <td uib-tooltip=\\\"Sista sekvensnummer innan glapp\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"topleft\\\">Sekvensnummer före:<br>{{ mrs.receipt1SequenceNumber }}</td>\\n <td uib-tooltip=\\\"Första bokföringsdatum efter glapp\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"topleft\\\">Datum efter:<br>{{ mrs.receipt2AccountingDate }}</td>\\n <td uib-tooltip=\\\"Första sekvensnummer efter glapp\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"topleft\\\">Sekvensnummer efter:<br>{{ mrs.receipt2SequenceNumber }}</td>\\n </tr>\\n <tr>\\n <td colspan=\\\"4\\\" style=\\\"padding-left: 20px;\\\">\\n <table class=\\\"table\\\">\\n <thead>\\n <tr>\\n <td style=\\\"font-weight:bold;\\\">Kvittonummer</td>\\n <td style=\\\"font-weight:bold;\\\">Sekvensnummer</td>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"mr in mrs.missingReceipts\\\">\\n <td>{{ mr.receiptNumber }}</td>\\n <td>{{ mr.sequenceNumber }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\\r\\n<div class=\\\"vbox\\\">\\r\\n <div class=\\\"row-row\\\">\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <label class=\\\"btn btn-default btn-file\\\">\\r\\n {{'stock.readfile' | translate}} <input id=\\\"xlf\\\" type=\\\"file\\\" name=\\\"xlfile\\\" style=\\\"display:none;\\\">\\r\\n </label>\\r\\n visar 50 första raderna\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <table class=\\\"table-hover table-condensed table-readable-compact table-background\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <td> barcode </td>\\r\\n <td> externalId </td>\\r\\n <td> purchaseCostPerItem </td>\\r\\n <td> quantity </td>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr ng-repeat=\\\"row in vm.displayRows\\\"> \\r\\n <td>{{row.barcode}}</td>\\r\\n <td>{{row.externalId}}</td>\\r\\n <td>{{row.purchaseCostPerItem}}</td>\\r\\n <td>{{row.quantity}}</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <span style=\\\"display:inline-block;\\\"><ui-select ng-model=\\\"vm.selectedLocation\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab style=\\\"max-width: 250px;\\\">\\r\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\r\\n <ui-select-choices repeat=\\\"location in vm.locations | filter:{'locationName': $select.search}\\\">\\r\\n <span>{{location.locationName}}</span>\\r\\n </ui-select-choices>\\r\\n </ui-select></span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-lg-12\\\"> </div>\\r\\n\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n\\r\\n <button class=\\\"btn btn-sm btn-primary\\\" ng-click=\\\"vm.submitOriginalBalance()\\\"> submit </button>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <!-- <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div> -->\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"$state.go('support.supportcases.changebarcode')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">{{ 'support.changeBarcode' | translate }}</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.changebarcodes')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Byt/lägg till streckkoder</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.changevariantdetail')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Byta Storlek pÃ¥ ArtikelVariant</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.createlocation')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">{{ 'support.createLocation' | translate }}</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.mergeproducts')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">SlÃ¥ ihop produkter</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.changeisgroupsalearticle')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Ändra varugruppsförsäljning</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.addvariantdetail')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Lägg till variantdetalj</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.updateinventorystatus')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Ändra status pÃ¥ inventering</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.triggertochangelog')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Trigga till changelog</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.missingreceipts')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Hitta saknade kvitton</span>\\n </span>\\n </a>\\n <a ng-click=\\\"$state.go('support.supportcases.originalbalanceimport')\\\" class=\\\"list-group-item m-l\\\">\\n <span class=\\\"block text-ellipsis m-l-n\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">Lägg upp IB</span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .smallComment {\\n font-size: 0.8em;\\n font-style: italic;\\n }\\n</style>\\n<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isAllowedToSave()\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <!-- Filtering/search section -->\\n <ul class=\\\"nav nav-tabs\\\">\\n <li ng-class=\\\"{'active' : vm.tabSelection == 'orders'}\\\">\\n <a ng-click=\\\"vm.changeTab('orders')\\\">{{'support.triggerOrders' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection == 'customerorders'}\\\">\\n <a ng-click=\\\"vm.changeTab('customerorders')\\\">{{'support.triggerCustomerOrders' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection == 'products'}\\\">\\n <a ng-click=\\\"vm.changeTab('products')\\\">{{'support.triggerProducts' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection == 'productvariants'}\\\">\\n <a ng-click=\\\"vm.changeTab('productvariants')\\\">{{'support.triggerProductVariants' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection == 'stocks'}\\\">\\n <a ng-click=\\\"vm.changeTab('stocks')\\\">{{'support.triggerStocks' | translate}}</a>\\n </li>\\n <li ng-class=\\\"{'active' : vm.tabSelection == 'pricelistitems'}\\\">\\n <a ng-click=\\\"vm.changeTab('pricelistitems')\\\">{{'support.triggerPriceListItems' | translate}}</a>\\n </li>\\n </ul>\\n\\n <div> </div>\\n\\n <ca-form-group-row label=\\\"'support.searchTerm'\\\">\\n <input type=\\\"text\\\" class=\\\"form-control enterAsTab\\\" name=\\\"searchterm\\\" ng-model=\\\"vm.searchTerm\\\" enter-as-tab>\\n <div class=\\\"smallComment\\\">Du kan ange ex. produktnummer, streckkod, SKU</div>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'support.testRun'\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.testRun\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n\\n <!-- <div ng-show=\\\"vm.tabSelection == 'orders'\\\"></div>\\n <div ng-show=\\\"vm.tabSelection == 'customerorders'\\\"></div>\\n <div ng-show=\\\"vm.tabSelection == 'products'\\\"></div>\\n <div ng-show=\\\"vm.tabSelection == 'productvariants'\\\"></div> -->\\n <div ng-show=\\\"vm.tabSelection == 'stocks'\\\">\\n <ca-form-group-row label=\\\"'reports.ui.stockvalue.locations'\\\">\\n <ca-multiselect model=\\\"vm.selectedLocationIds\\\" choices=\\\"vm.locations\\\" order-by=\\\"'locationName'\\\" placeholder=\\\"'contacts.locations'\\\" item-renderer=\\\"['locationName']\\\"/>\\n </ca-form-group-row>\\n </div>\\n <div ng-show=\\\"vm.tabSelection == 'pricelistitems'\\\">\\n <ca-form-group-row label=\\\"'article.pricelist'\\\">\\n <ui-select ng-model=\\\"vm.selectedPriceListId\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.pricelistName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"priceList in vm.priceLists\\\">\\n <span>{{priceList.pricelistName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </ca-form-group-row>\\n </div>\\n\\n <div ng-if=\\\"vm.updatedOrderIds && vm.updatedOrderIds.length > 0\\\">\\n <ca-form-group-row label=\\\"'support.triggerIds'\\\">\\n <div class=\\\"smallComment\\\">Dessa order-ID blev triggade till changeloggen ({{ vm.updatedOrderIds.length }} st). OBS! Kolla om testRun är sann, dÃ¥ kommer ID returneras men inget sparas till databasen.</div>\\n <span ng-repeat=\\\"id in vm.updatedOrderIds\\\">{{ id }}, </span>\\n </ca-form-group-row>\\n </div>\\n <div ng-if=\\\"vm.updatedCustomerOrderIds && vm.updatedCustomerOrderIds.length > 0\\\">\\n <ca-form-group-row label=\\\"'support.triggerIds'\\\">\\n <div class=\\\"smallComment\\\">Dessa kundorder-ID blev triggade till changeloggen ({{ vm.updatedCustomerOrderIds.length }} st). OBS! Kolla om testRun är sann, dÃ¥ kommer ID returneras men inget sparas till databasen.</div>\\n <span ng-repeat=\\\"id in vm.updatedCustomerOrderIds\\\">{{ id }}, </span>\\n </ca-form-group-row>\\n </div>\\n <div ng-if=\\\"vm.updatedProductIds && vm.updatedProductIds.length > 0\\\">\\n <ca-form-group-row label=\\\"'support.triggerIds'\\\">\\n <div class=\\\"smallComment\\\">Dessa produkt-ID blev triggade till changeloggen ({{ vm.updatedProductIds.length }} st). OBS! Kolla om testRun är sann, dÃ¥ kommer ID returneras men inget sparas till databasen.</div>\\n <span ng-repeat=\\\"id in vm.updatedProductIds\\\">{{ id }}, </span>\\n </ca-form-group-row>\\n </div>\\n <div ng-if=\\\"vm.updatedProductVariantIds && vm.updatedProductVariantIds.length > 0\\\">\\n <ca-form-group-row label=\\\"'support.triggerIds'\\\">\\n <div class=\\\"smallComment\\\">Dessa produktvariant-ID blev triggade till changeloggen ({{ vm.updatedProductVariantIds.length }} st). OBS! Kolla om testRun är sann, dÃ¥ kommer ID returneras men inget sparas till databasen.</div>\\n <span ng-repeat=\\\"id in vm.updatedProductVariantIds\\\">{{ id }}, </span>\\n </ca-form-group-row>\\n </div>\\n <div ng-if=\\\"vm.updatedStockIds && vm.updatedStockIds.length > 0\\\">\\n <ca-form-group-row label=\\\"'support.triggerIds'\\\">\\n <div class=\\\"smallComment\\\">Dessa lager-ID blev triggade till changeloggen ({{ vm.updatedStockIds.length }} st). OBS! Kolla om testRun är sann, dÃ¥ kommer ID returneras men inget sparas till databasen.</div>\\n <span ng-repeat=\\\"id in vm.updatedStockIds\\\">{{ id }}, </span>\\n </ca-form-group-row>\\n </div>\\n <div ng-if=\\\"vm.updatePriceListItemIds && vm.updatePriceListItemIds.length > 0\\\">\\n <ca-form-group-row label=\\\"'support.triggerIds'\\\">\\n <div class=\\\"smallComment\\\">Dessa pricelistitem-ID blev triggade till changeloggen ({{ vm.updatePriceListItemIds.length }} st). OBS! Kolla om testRun är sann, dÃ¥ kommer ID returneras men inget sparas till databasen.</div>\\n <span ng-repeat=\\\"id in vm.updatePriceListItemIds\\\">{{ id }}, </span>\\n </ca-form-group-row>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .darkerBg {\\n background-color: #ccc;\\n }\\n</style>\\n<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.startEditing()\\\" ng-if=\\\"!vm.isEditing\\\" ng-disabled=\\\"!(vm.selectedInventory && vm.selectedInventory.id > 0)\\\"> {{'common.edit' | translate}} </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChange()\\\" ng-if=\\\"vm.isEditing\\\" ng-disabled=\\\"!vm.isAllowedToSave()\\\"> {{'common.save' | translate}} </button>\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.cancelEditing()\\\" ng-if=\\\"vm.isEditing\\\"> {{'common.cancel' | translate}} </button>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"input-group m-b-xxs list-menu b-b\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\"\\n items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.searchTermChange()\\\"\\n ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <table class=\\\"table table-hover\\\">\\n <thead>\\n <th>{{'stock.inventorydate' | translate}}</th>\\n <th>{{'stock.inventorytype' | translate}}</th>\\n <th>{{'stock.inventorystatus' | translate}}</th>\\n <th>{{'stock.location' | translate}}</th>\\n <th>{{'inventory.inventorydescription' | translate}}</th>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"inventory in vm.inventories\\\">\\n <td ng-class=\\\"{darkerBg: vm.selectedInventory.id === inventory.id}\\\">\\n <a ng-click=\\\"vm.selectInventory(inventory)\\\" class=\\\"ca-celllink\\\">\\n {{ inventory.inventoryDate }}\\n </a>\\n </td>\\n <td>{{ inventory.inventoryType.inventoryTypeName }}</td>\\n <td>{{ inventory.inventoryStatus.inventoryStatusName }}</td>\\n <td>{{ inventory.location.locationName }}</td>\\n <td>{{ inventory.inventoryDescription }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div style=\\\"margin-bottom: 20px;\\\"> </div>\\n \\n <ca-form-group-row label=\\\"'stock.inventorystatus'\\\" ng-if=\\\"vm.isEditing && vm.selectedInventory && vm.selectedInventory.id > 0\\\">\\n <ca-singleselect model=\\\"vm.selectedInventoryStatus\\\" choices=\\\"vm.inventoryStatuses\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'statusName'\\\" mandatory=\\\"true\\\"/> \\n </ca-form-group-row>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\" ng-hide=\\\"vm.state === 4\\\">\\n <div ng-if=\\\"vm.state === 0\\\"><!--Keep session?-->\\n <div class=\\\"header\\\">{{'login.refreshsession.firstheader' | translate}}</div>\\n <div class=\\\"body bg-gray\\\" style=\\\"text-align: center;\\\">\\n <div>{{'login.refreshsession.timeleft' | translate}}: {{vm.timer.displayValue}}</div>\\n <h4>{{'login.refreshsession.firstmessage' | translate}}</h4>\\n <div style=\\\"padding:8px\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.refreshSession()\\\" style=\\\"margin-right:8px\\\">\\n {{'login.refreshsession.keepsession' | translate}}\\n </button>\\n <button class=\\\"btn btn-danger\\\" ng-click=\\\"vm.state = 1\\\" style=\\\"margin-left:8px\\\">\\n {{'login.refreshsession.logmeout' | translate}}\\n </button>\\n </div>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.state === 1\\\"><!--Are you sure?-->\\n <div class=\\\"header\\\" style=\\\"background-color:firebrick\\\">{{'login.refreshsession.secondheader' | translate}} </div>\\n <div class=\\\"body bg-gray\\\" style=\\\"text-align: center;\\\">\\n <div>{{'login.refreshsession.timeleft' | translate}}: {{vm.timer.displayValue}}</div>\\n <h4>{{'login.refreshsession.secondmessage' | translate}}</h4>\\n <div style=\\\"padding:8px\\\">\\n <button class=\\\"btn btn-danger\\\" ng-click=\\\"vm.closeModal(false)\\\" style=\\\"margin-right:8px\\\">\\n {{'login.refreshsession.yes' | translate}}\\n </button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.state = 0\\\" style=\\\"margin-left:8px\\\">\\n {{'login.refreshsession.no' | translate}}\\n </button>\\n </div>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.state === 2\\\"><!--Refresh error!-->\\n <div class=\\\"header\\\" style=\\\"background-color:firebrick\\\">{{'login.refreshsession.error' | translate}} </div>\\n <div class=\\\"body bg-gray\\\" style=\\\"text-align: center;\\\">\\n <div>{{'login.refreshsession.timeleft' | translate}}: {{vm.timer.displayValue}}</div>\\n <h4>{{'common.error' | translate}}: {{vm.errorMessage}}</h4>\\n <div style=\\\"padding:8px\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.refreshSession()\\\" style=\\\"margin-right:8px\\\">\\n {{'login.refreshsession.tryagain' | translate}}\\n </button>\\n <button class=\\\"btn btn-danger\\\" ng-click=\\\"vm.state = 1\\\" style=\\\"margin-left:8px\\\">\\n {{'login.refreshsession.logmeout' | translate}}\\n </button>\\n </div>\\n </div>\\n </div>\\n <div ng-if=\\\"vm.state === 3\\\"><!--Refresh success!-->\\n <div class=\\\"header\\\" style=\\\"background-color:green\\\">{{'login.refreshsession.success' | translate}} </div>\\n <div class=\\\"body bg-gray\\\" style=\\\"text-align: center;\\\">\\n <div>{{'common.close' | translate}}s {{'discount.in' | translate | lowercase}} {{vm.successCountDownTimer}}s...</div>\\n <div> </div>\\n <button class=\\\"btn btn-success\\\" ng-click=\\\"vm.closeModal()\\\">\\n {{'common.close' | translate}}\\n </button>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{vm.timeStampDay.date.substring(0, 10)}} - {{vm.location.locationName}} - {{vm.user.firstName}}</div>\\n <div class=\\\"body bg-gray\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-lg-8\\\">\\n <input type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.timeStampDay.note\\\" />\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.timeStampDay.notify\\\" />\\n <i></i>\\n {{'time.notifyadmin' | translate}}\\n </label>\\n </div>\\n <div class=\\\"col-lg-2\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.saveTimeStampingDayNote()\\\"> {{'time.savenote' | translate}} </button>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <label class=\\\"col-lg-1\\\"> {{'time.in' | translate}} </label>\\n <div class=\\\"col-lg-2\\\">\\n <wj-input-time\\n value=\\\"vm.newInStamp.dateTime\\\"\\n format=\\\"HH:mm\\\"\\n step=\\\"1\\\">\\n </wj-input-time>\\n </div>\\n\\n <label class=\\\"col-lg-1\\\"> {{'time.out' | translate}} </label>\\n <div class=\\\"col-lg-2\\\">\\n <wj-input-time\\n value=\\\"vm.newOutStamp.dateTime\\\"\\n format=\\\"HH:mm\\\"\\n step=\\\"1\\\">\\n </wj-input-time>\\n </div>\\n\\n <div class=\\\"col-lg-2\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.createNewTimeStamp()\\\" ng-disabled=\\\"!vm.allowTimeSpanCreation()\\\"> {{'common.add' | translate}} </button>\\n </div>\\n\\n <div class=\\\"col-lg-2\\\"> </div>\\n\\n <div class=\\\"col-lg-2\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showStampsForAllLocations\\\" />\\n <i></i>\\n {{'time.showall' | translate}}\\n </label>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid items-source=\\\"vm.timeStampPairs\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" initialized=\\\"vm.captureStampsHistoryGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'time.in' | translate}}\\\" binding=\\\"inStamp.dateTime\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\"> {{$item.inStamp.dateTime.substring(11, 16)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.out' | translate}}\\\" binding=\\\"outStamp.dateTime\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\"> {{$item.outStamp.dateTime.substring(11, 16)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.hours' | translate}}\\\" binding=\\\"span\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\"> {{$item.span.toString()}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'stock.location' | translate}}\\\" binding=\\\"inStamp.location.locationName\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'common.delete' | translate}}\\\" binding=\\\"\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n <button class=\\\"btn btn-default btn-xs\\\" ng-click=\\\"vm.deleteTimeStampPair($item)\\\"> <i class=\\\"fa fa-trash-o\\\"></i> </button>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"panel panel-default\\\">\\n\\n <div class=\\\"panel-heading font-bold\\\">\\n\\n </div>\\n\\n <div class=\\\"wrapper-xs b-b\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></span>\\n <input type=\\\"text\\\" class=\\\"form-control input-sm no-border no-bg text-md\\\" ng-model=\\\"vm.searchTerm\\\" ng-model-options=\\\"{debounce: 500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\">\\n </div>\\n </div>\\n\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"col-lg-12\\\">\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-lg-1\\\"> {{'time.startdate' | translate}}: </label>\\n\\n <div class=\\\"col-lg-2\\\">\\n <wj-input-date\\n value=\\\"vm.startDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n\\n <label class=\\\"col-lg-1\\\"> {{'time.enddate' | translate}}: </label>\\n\\n <div class=\\\"col-lg-2\\\">\\n <wj-input-date\\n value=\\\"vm.endDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\">\\n </wj-input-date>\\n </div>\\n\\n <div class=\\\"col-lg-4\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-2\\\"> </div>\\n </div>\\n\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"wrapper text-center\\\">\\n <div uib-pagination boundary-links=\\\"true\\\" total-items=\\\"vm.totalItems\\\" items-per-page=\\\"vm.itemsPerPage\\\" max-size=\\\"10\\\" ng-change=\\\"vm.loadTimeStampingUsers()\\\" ng-model=\\\"vm.currentPage\\\" class=\\\"pagination-sm\\\" previous-text=\\\"‹\\\" next-text=\\\"›\\\" first-text=\\\"«\\\" last-text=\\\"»\\\"></div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid items-source=\\\"vm.timeStampingUsers\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" initialized=\\\"vm.captureTimeStampingUsersGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'user.employeenumber' | translate}}\\\" binding=\\\"employeeNumber\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.salarytype' | translate}}\\\" binding=\\\"\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'user.firstname' | translate}}\\\" binding=\\\"firstName\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <a ng-click=\\\"vm.loadTimeStampingDaysForUser($item)\\\" class=\\\"ca-celllink\\\">\\n {{$item.firstName}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'user.lastname' | translate}}\\\" binding=\\\"lastName\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.startdate' | translate}}\\\" binding=\\\"periodStartDate\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> {{$item.periodStartDate.replace(\\\"T\\\", \\\" \\\").substring(0, 10)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.enddate' | translate}}\\\" binding=\\\"periodEndDate\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> {{$item.periodEndDate.replace(\\\"T\\\", \\\" \\\").substring(0, 10)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.hoursworked' | translate}}\\\" binding=\\\"workedHours\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.note' | translate}}\\\" binding=\\\"hasNotesForPeriod\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <i class=\\\"fa fa-check text-success\\\" ng-show=\\\"$item.hasTimeStampingWarnings\\\"></i>\\n <i class=\\\"fa fa-times text-danger\\\" ng-hide=\\\"$item.hasTimeStampingWarnings\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.attested' | translate}}\\\" binding=\\\"isAttested\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <i class=\\\"fa fa-check text-success\\\" ng-show=\\\"$item.isAttested\\\"></i>\\n <i class=\\\"fa fa-times text-danger\\\" ng-hide=\\\"$item.isAttested\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.locked' | translate}}\\\" binding=\\\"isLockedForPeriod\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <i class=\\\"fa fa-check text-success\\\" ng-show=\\\"$item.isLockedForPeriod\\\"></i>\\n <i class=\\\"fa fa-times text-danger\\\" ng-hide=\\\"$item.isLockedForPeriod\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.printed' | translate}}\\\" binding=\\\"isPrintedForPeriod\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <i class=\\\"fa fa-check text-success\\\" ng-show=\\\"$item.isPrintedForPeriod\\\"></i>\\n <i class=\\\"fa fa-times text-danger\\\" ng-hide=\\\"$item.isPrintedForPeriod\\\"></i>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12 b-t\\\" ng-show=\\\"vm.showTimeReports\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showTimeReports\\\">\\n <div class=\\\"col-lg-2\\\">\\n <button class=\\\"btn btn-primary btn-md\\\" ng-click=\\\"vm.attestAll()\\\" ng-disabled=\\\"!vm.mayAttestAll\\\"> {{'time.attestall' | translate}} </button>\\n <button class=\\\"btn btn-default btn-md\\\" ng-click=\\\"vm.getExcelPrintout()\\\"> {{'time.print' | translate}} </button>\\n </div>\\n \\n <div class=\\\"col-lg-4\\\">\\n <div class=\\\"col-lg-8\\\">\\n <wj-input-date\\n value=\\\"vm.newTimeReportDate\\\"\\n min=\\\"vm.startDate\\\"\\n max=\\\"vm.endDate\\\"\\n format=\\\"yyyy-MM-dd\\\"\\n style=\\\"width:100%\\\"\\n initialized=\\\"vm.captureNewTimeReportDatePicker(s)\\\">\\n </wj-input-date>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <button class=\\\"btn btn-default btn-md\\\" ng-click=\\\"vm.addTimeReport()\\\" ng-disabled=\\\"!vm.isValidNewTimeReportDate()\\\"> {{'time.addday' | translate}} </button>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showTimeReports && vm.timeReports.length > 0\\\">\\n <wj-flex-grid items-source=\\\"vm.timeReports\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" \\n cell-edit-ended=\\\"vm.handleTimeStampDayCellEditEnded()\\\" cell-edit-ending=\\\"vm.handleTimeStampCellEditEnding()\\\"\\n initialized=\\\"vm.captureTimeReportsGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'time.date' | translate}}\\\" binding=\\\"timeStampDay.date\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n <a ng-click=\\\"vm.showTimeStampsForDay($item.timeStampDay)\\\" class=\\\"ca-celllink\\\">\\n {{$item.timeStampDay.date.replace(\\\"T\\\", \\\" \\\").substring(0, 10)}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.originaltimeworked' | translate}}\\\" binding=\\\"originalWorkTime\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n {{$item.originalWorkTime.toString().substring(0, 5)}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.timeworked' | translate}}\\\" binding=\\\"workTime\\\" width=\\\"*\\\" is-read-only=\\\"false\\\">\\n {{$item.workTime.toString().substring(0, 5)}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.breaktime' | translate}}\\\" binding=\\\"breakTime\\\" width=\\\"*\\\" is-read-only=\\\"false\\\">\\n {{$item.breakTime.toString().substring(0, 5)}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.timeminusbreaks' | translate}}\\\" binding=\\\"\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n {{vm.dateDifference($item.workTime, $item.breakTime)}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.note' | translate}}\\\" binding=\\\"timeStampDay.note\\\" width=\\\"8*\\\" is-read-only=\\\"true\\\">\\n <a ng-click=\\\"vm.toggleTimeStampDayNotification($item)\\\">\\n <span ng-style=\\\"vm.getNotificationStyle($item.timeStampDay)\\\">{{$item.timeStampDay.note}} </span>\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.printed' | translate}}\\\" binding=\\\"isPrinted\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <i class=\\\"fa fa-check text-success\\\" ng-show=\\\"$item.isPrinted\\\"></i>\\n <i class=\\\"fa fa-times text-danger\\\" ng-hide=\\\"$item.isPrinted\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.locked' | translate}}\\\" binding=\\\"isLocked\\\" width=\\\"2*\\\" is-read-only=\\\"true\\\">\\n <i class=\\\"fa fa-check text-success\\\" ng-show=\\\"$item.isLocked\\\"></i>\\n <i class=\\\"fa fa-times text-danger\\\" ng-hide=\\\"$item.isLocked\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.attested' | translate}}\\\" binding=\\\"isAttested\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n <a><i class=\\\"fa fa-check text-success\\\" ng-click=\\\"vm.unattestTimeStampingDay($item.timeStampDay)\\\" ng-if=\\\"$item.isAttested === true\\\"></i></a>\\n <a><i class=\\\"fa fa-times text-danger\\\" ng-click=\\\"vm.attestTimeStampingDay($item.timeStampDay)\\\" ng-if=\\\"$item.isAttested === false\\\"></i></a>\\n <i class=\\\"fa fa-square-o\\\" ng-if=\\\"$item.isAttested !== false && $item.isAttested !== true\\\"></i>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column is-read-only=\\\"true\\\" align=\\\"center\\\">\\n <button class=\\\"btn btn-default btn-xs\\\" ng-click=\\\"vm.attestTimeStampingDay($item.timeStampDay)\\\" ng-if=\\\"$item.isAttested === false\\\"> {{'time.attest' | translate}} </button>\\n <button class=\\\"btn btn-default btn-xs\\\" ng-click=\\\"vm.unattestTimeStampingDay($item.timeStampDay)\\\" ng-if=\\\"$item.isAttested === true\\\"> {{'time.unattest' | translate}} </button>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-6\\\" ng-show=\\\"vm.timeStampsForDay.length > 0\\\">\\n <wj-flex-grid items-source=\\\"vm.timeStampsForDay\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" initialized=\\\"vm.captureTimeStampsGrid(s)\\\">\\n\\n <wj-flex-grid-column header=\\\"{{'time.time' | translate}}\\\" binding=\\\"dateTime\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n {{vm.getHoursAndMinutes($item.dateTime)}}\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.type' | translate}}\\\" binding=\\\"timeStampType.timeStampName\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n {{$item.timeStampType.timeStampName}}\\n </wj-flex-grid-column>\\n\\n </wj-flex-grid>\\n </div>\\n\\n </div>\\n\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"vbox\\\">\\n\\n <div class=\\\"row-row\\\">\\n <div class=\\\"cell scrollable hover\\\">\\n <div class=\\\"cell-inner\\\">\\n <div class=\\\"m-t-n-xxs\\\">\\n <div class=\\\"list-group no-radius no-border no-bg m-b-none\\\">\\n <a ng-click=\\\"vm.selectUser(user)\\\" class=\\\"list-group-item m-l\\\" ng-repeat=\\\"user in vm.userList\\\" ng-class=\\\"{'focus m-l-none': user.id === vm.selectedUserId}\\\">\\n <span class=\\\"text-ellipsis m-l-n\\\" ng-class=\\\"{'m-n': user.id === vm.selectedUserId }\\\">\\n <span class=\\\"pull-left text-ellipsis lg-label\\\">{{user.firstName + ' ' + user.lastName}}</span>\\n <span class=\\\"pull-right\\\">\\n <i class=\\\"fa fa-check\\\" ng-if=\\\"!user.hasTimeStampingWarnings\\\"></i>\\n <i class=\\\"fa fa-exclamation\\\" ng-if=\\\"user.hasTimeStampingWarnings\\\"></i>\\n </span>\\n </span>\\n </a>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{'time.timestamping' | translate}} - {{vm.currentUser.firstName + ' ' + vm.currentUser.lastName}} <button class=\\\"btn btn-default pull-right\\\" ng-click=\\\"vm.closeModal()\\\"> X </button> </div>\\n <div class=\\\"body bg-gray\\\">\\n\\n <div class=\\\"col-lg-12\\\" id=\\\"currentTimeSection\\\">\\n <div class=\\\"col-lg-12\\\">\\n <div class=\\\"col-lg-6\\\">\\n <h1>{{vm.currentLocalTime.getHours()}}:{{((vm.currentLocalTime.getMinutes() < 10) ? \\\"0\\\" : \\\"\\\") + vm.currentLocalTime.getMinutes()}}</h1>\\n </div>\\n <div class=\\\"col-lg-6\\\">\\n <h1 class=\\\"pull-right\\\">{{vm.totalTimeThisMonth.toString().substring(0,5)}}</h1>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n\\n <div class=\\\"col-lg-4\\\" ng-hide=\\\"vm.stampInDisabled\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.stampIn()\\\" ng-disabled=\\\"vm.buttonsAreDisabled\\\"> {{'time.stampin' | translate}} </button>\\n </div>\\n <div class=\\\"col-lg-4\\\" ng-hide=\\\"vm.stampOutDisabled\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.stampOut()\\\" ng-disabled=\\\"vm.buttonsAreDisabled\\\"> {{'time.stampout' | translate}} </button>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <ui-select ng-model=\\\"vm.stampCreationRequest.location\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.locationName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"location in vm.locations | filter:{'locationName': $select.search}\\\">\\n <span>{{location.locationName}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n\\n <div class=\\\"col-lg-4\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n {{'time.previoustimestamps' | translate}}:\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid items-source=\\\"vm.previousTimeStampDays\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" initialized=\\\"vm.captureTimeStampDaysGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'time.time' | translate}}\\\" binding=\\\"date\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\">\\n <a ng-click=\\\"vm.changeDisplayedTimeStampDay($item)\\\">\\n {{$item.date.toString().replace('T', ' ').substring(0, 10)}}\\n </a>\\n </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.note' | translate}}\\\" binding=\\\"note\\\" width=\\\"9*\\\" is-read-only=\\\"false\\\"></wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\" \\\" binding=\\\"\\\" width=\\\"*\\\" is-read-only=\\\"true\\\">\\n <button class=\\\"btn btn-default btn-xs\\\" ng-click=\\\"vm.updateTimeStampDay($item)\\\"> <i class=\\\"fa fa-save\\\"></i> </button>\\n </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <wj-flex-grid items-source=\\\"vm.previousTimeStamps\\\" selection-mode=\\\"Row\\\" headers-visibility=\\\"Column\\\" class=\\\"orders-flex-grid\\\" initialized=\\\"vm.captureStampHistoryGrid(s)\\\">\\n <wj-flex-grid-column header=\\\"{{'time.time' | translate}}\\\" binding=\\\"dateTime\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\"> {{$item.dateTime.toString().replace('T', ' ').substring(11, 16)}} </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.type' | translate}}\\\" binding=\\\"timeStampType.timeStampName\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n <wj-flex-grid-column header=\\\"{{'time.location' | translate}}\\\" binding=\\\"location.locationName\\\" width=\\\"3*\\\" is-read-only=\\\"true\\\"> </wj-flex-grid-column>\\n </wj-flex-grid>\\n </div>\\n\\n </div>\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n\\n </div>\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table{\\n font-size: 13px;\\n }\\n</style>\\n\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + vm.item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div ng-if=\\\"!vm.isLoaded && !vm.hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n \\n\\n <div class=\\\"wgt-wrapper\\\">\\n <div ng-repeat=\\\"integration in vm.widgetData\\\" class=\\\"col-sm-6\\\">\\n \\n <div class=\\\"ca-integration-status-intagration-name ca-integration-status-label\\\">{{integration.integrationName}}</div>\\n <div>\\n <span class=\\\"ca-integration-status-estimated-queue-minutes\\\">{{integration.outboundQueueStatus.estimatedQueueMinutes}}</span> \\n <span class=\\\"ca-integration-status-time-unit\\\">MIN</span>\\n </div>\\n <div>\\n <span class=\\\"ca-integration-status-date\\\">{{integration.outboundQueueStatus.lastIntegrationBatchCompletedDate | date:'yy-MM-dd HH:mm'}}</span>\\n </div>\\n \\n </div>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table{\\n font-size: 13px;\\n }\\n</style>\\n\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + vm.item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div ng-if=\\\"!vm.isLoaded && !vm.hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div class=\\\"wgt-wrapper\\\">\\n <p ng-if=\\\"vm.widgetData.locationName\\\">{{ vm.widgetData.locationName }}</p>\\n <table class=\\\"table\\\">\\n <tr ng-repeat=\\\"x in vm.widgetData.refunds\\\">\\n <td style=\\\" text-align: left;\\\"><a ng-click=\\\"vm.gotoArticle(x.article.id)\\\">{{ x.article.alternativeArticleNumber }} {{ x.article.articleName }}</a></td>\\n <td style=\\\"color:red;\\\">{{ x.totalSum | currency }}</td>\\n <td>{{ x.quantity }}</td>\\n </tr>\\n </table>\\n\\n </div>\\n\\n <div ng-if=\\\"vm.hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table{\\n font-size: 13px;\\n }\\n</style>\\n\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + vm.item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div ng-if=\\\"!vm.isLoaded && !vm.hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n \\n\\n <div class=\\\"wgt-wrapper\\\">\\n <div>\\n <ca-singleselect model=\\\"vm.selectedmaingroup\\\" choices=\\\"vm.maingroups\\\" order-by=\\\"'label'\\\" item-renderer=\\\"'label'\\\"/>\\n </div>\\n <div>\\n <canvas class=\\\"chart chart-line\\\" chart-data=\\\"vm.chart.data\\\"\\n chart-labels=\\\"vm.chart.labels\\\" chart-series=\\\"vm.chart.series\\\" chart-options=\\\"vm.chart.options\\\"\\n chart-dataset-override=\\\"vm.chart.datasetOverride\\\" chart-click=\\\"vm.chart.onClick\\\">\\n </canvas>\\n </div>\\n </div>\\n\\n <div ng-if=\\\"vm.hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table{\\n font-size: 13px;\\n }\\n</style>\\n\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{'widget.' + vm.item.name | translate}} {{ selectedLocation }}\\n </div>\\n <div class=\\\"wgt-body\\\" style=\\\"overflow: auto;padding-top: 0px;padding-bottom: 20px;top: 0px;bottom: 50px;\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div ng-if=\\\"!vm.isLoaded && !vm.hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div class=\\\"wgt-wrapper\\\">\\n <p ng-if=\\\"vm.widgetData.locationName\\\">{{ vm.widgetData.locationName }}</p>\\n <table class=\\\"table\\\" style=\\\"width: 100%;height: 100%;\\\">\\n <tr ng-repeat=\\\"x in vm.widgetData.sold\\\">\\n <td style=\\\" text-align: left;text-overflow: ellipsis; overflow:hidden; max-width:200px; white-space: nowrap;\\\">\\n <a ng-click=\\\"vm.gotoArticle(x.article.id)\\\">{{ x.article.alternativeArticleNumber }} {{ x.article.articleName }}</a></td>\\n <td style=\\\"color:red;\\\">{{ x.totalSum | currency }}</td>\\n <td>{{ x.quantity }}</td>\\n </tr>\\n </table>\\n\\n </div>\\n\\n <div ng-if=\\\"vm.hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"custom-edit-input\\\">\\n <div class=\\\"inputs\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.address.addressLine1 }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.addressLine1\\\" placeholder=\\\"{{'address.addressline1' | translate}}\\\">\\n <span ng-show=\\\"!vm.isEditing && vm.address.addressLine2\\\">, {{ vm.address.addressLine2 }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.addressLine2\\\" placeholder=\\\"{{'address.addressline2' | translate}}\\\">\\n <span ng-show=\\\"!vm.isEditing && vm.address.addressLine3\\\">, {{ vm.address.addressLine3 }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.addressLine3\\\" placeholder=\\\"{{'address.addressline3' | translate}}\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">, {{ vm.address.postalCode }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.postalCode\\\" placeholder=\\\"{{'address.postalCode' | translate}}\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.address.city }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.city\\\" placeholder=\\\"{{'address.city' | translate}}\\\">\\n <span ng-show=\\\"!vm.isEditing && vm.address.country\\\">, {{ vm.address.country }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.address.country\\\" placeholder=\\\"{{'address.country' | translate}}\\\">\\n </div>\\n <div class=\\\"tools\\\" ng-if=\\\"vm.showTools\\\">\\n <button ng-show=\\\"vm.isEditing\\\" type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" ng-click=\\\"vm.remove()\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .articleListContainer {\\n display: flex;\\n flex-direction: column;\\n height: 90%;\\n align-content: space-between;\\n }\\n .articleListContainerItem.searchBoxItem {\\n }\\n .articleListContainerItem.mainListItem {\\n overflow: auto;\\n flex-shrink: 2; \\n }\\n .articleListContainerItem.paginationItem {\\n text-align: center;\\n }\\n .hover-bg:hover {\\n background-color: #e4eaec !important;\\n }\\n .productlist-w-transition {\\n transition: all ease-in-out .405s;\\n }\\n .productlist-hide-transition {\\n transition: all ease-in .375s, transform step-end .255s;\\n }\\n .productlist-show-transition {\\n transition: all ease-in .255s, transform step-end .375s;\\n }\\n .scale-x-zero{\\n transform:scaleX(0);\\n }\\n .scale-x-one{\\n transform:scaleX(1);\\n }\\n .h-zero{\\n height: 0px;\\n }\\n .o-zero{\\n opacity: 0;\\n }\\n .h-max{\\n height: 80px;\\n }\\n .o-max{\\n opacity: 1;\\n }\\n .pos-abs{\\n position:absolute;\\n }\\n .filter-transition {\\n transition: all ease-in-out .195s;\\n }\\n .no-click { \\n pointer-events: none; \\n }\\n</style>\\n<div class=\\\"articleListContainer pos-abs\\\" ng-class=\\\"{ 'productlist-show-transition scale-x-zero o-zero no-click' : vm.articleListIsVisible, 'productlist-hide-transition scale-x-one o-max' : !vm.articleListIsVisible }\\\">\\n <div class=\\\"wrapper-3xs\\\" style=\\\"padding-top:7px\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'customerinvoice.showSearchFields' | translate}}\\\" tooltip-popup-delay=\\\"300\\\">\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.toggleHideArticleList()\\\"><i class=\\\"fa fa-fw fa-angle-double-right\\\"></i></a>\\n </span>\\n </div>\\n</div>\\n\\n<div class=\\\"articleListContainer\\\" ng-class=\\\"{ 'productlist-show-transition scale-x-zero o-zero no-click' : !vm.articleListIsVisible, 'productlist-hide-transition scale-x-one o-max' : vm.articleListIsVisible }\\\">\\n <div class=\\\"articleListContainerItem searchBoxItem\\\">\\n <div class=\\\"wrapper-xs\\\" style=\\\"padding-top:7px; padding-bottom:0px\\\">\\n <form ng-submit=\\\"vm.searchTermChange()\\\">\\n <div class=\\\"input-group m-b-xxs list-menu\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" ng-if=\\\"vm.showNewButton\\\"><button type=\\\"button\\\" class=\\\"btn btn-sm btn-default\\\" ng-click=\\\"vm.goToNew()\\\">{{'common.new' | translate}}</button></span>\\n <input id=\\\"SearchInput\\\" type=\\\"text\\\" class=\\\"form-control input-sm no-border text-md\\\" style=\\\"background-color:white\\\" ng-model=\\\"vm.filter\\\" ng-model-options=\\\"{debounce: 2500}\\\" ng-change=\\\"vm.searchTermChange()\\\" placeholder=\\\"{{'common.search' | translate}}\\\"\\n tooltip-placement=\\\"top-right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.articleList.pressEnter' | translate}}\\\" tooltip-popup-delay=\\\"300\\\">\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\"><button type=\\\"submit\\\" class=\\\"btn btn-sm btn-default\\\"><i class=\\\"fa fa-search text-md m-t-xxs\\\"></i></button></span>\\n <span class=\\\"input-group-addon input-sm no-border no-bg\\\" style=\\\"padding:4px\\\"\\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'customerinvoice.hideSearchFields' | translate}}\\\" tooltip-popup-delay=\\\"300\\\">\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.toggleHideArticleList()\\\" ng-show=\\\"vm.articleListIsVisible\\\"> <div class=\\\"fa fa-fw fa-angle-double-left\\\"></div></a>\\n </span>\\n <input type=\\\"submit\\\" style=\\\"position: absolute; left:-9999px; width: 1px; height: 1px;\\\"/>\\n </div>\\n </form>\\n </div>\\n <div class=\\\"col-lg-12 b-b\\\" style=\\\"font-size:small;text-align:left;\\\">\\n <span style=\\\"text-align:left; padding:0px\\\" class=\\\"input-group-addon input-sm no-border no-bg\\\">\\n <b style=\\\"padding-right:10px\\\"> {{ 'common.filter' | translate }}: </b>\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.filterDropdownIsVisisble = !vm.filterDropdownIsVisisble\\\" ng-show=\\\"vm.filterDropdownIsVisisble\\\"> <i class=\\\"fa fa-fw fa-angle-down\\\"></i> </a>\\n <a class=\\\"b-b b-t b-r b-l\\\" ng-click=\\\"vm.filterDropdownIsVisisble = !vm.filterDropdownIsVisisble\\\" ng-hide=\\\"vm.filterDropdownIsVisisble\\\"> <i class=\\\"fa fa-fw fa-angle-right\\\"></i> </a>\\n <i ng-show=\\\"vm.useElasticProductSearch\\\" style=\\\"padding-left:20px\\\"><u><a tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{ 'article.elasticSearch.tooltip' | translate }}\\\" tooltip-popup-delay=\\\"300\\\"> {{ 'article.search.tip' | translate }} </a></u></i>\\n </span>\\n </div>\\n <div class=\\\"col-lg-12 filter-transition\\\" ng-class=\\\"{ 'h-max o-max b-b' : vm.filterDropdownIsVisisble, 'h-zero o-zero no-click' : !vm.filterDropdownIsVisisble }\\\">\\n <div style=\\\"font-size:small;text-align:left; margin-bottom:8px; margin-top:8px\\\">\\n <ca-form-group-row-other label=\\\"'article.matchEntireSearch'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" name=\\\"match\\\" ng-model=\\\"vm.match\\\" ng-change=\\\"vm.searchTermChange()\\\" ng-checked=\\\"vm.match\\\"/>\\n <i></i>\\n </label>\\n </ca-form-group-row-other>\\n <ca-form-group-row-other label=\\\"'article.showInactive'\\\"> \\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" name=\\\"inactive\\\" ng-model=\\\"vm.inactive\\\" ng-change=\\\"vm.searchTermChange()\\\" ng-checked=\\\"vm.inactive\\\"/>\\n <i></i>\\n </label>\\n </ca-form-group-row-other>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"articleListContainerItem mainListItem\\\">\\n <div ng-click=\\\"vm.selectArticle(article)\\\" class=\\\"list-group-item no-radius no-border no-bg hover-bg b-b\\\" ng-repeat=\\\"article in vm.articles\\\" ng-class=\\\"{'focus m-l-none': article.id === vm.selectedArticleId}\\\">\\n <div class=\\\"block text-ellipsis m-l-n\\\" tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{article.useAlternativeArticleNumber && article.alternativeArticleNumber.length > 0 ? article.alternativeArticleNumber : article.articleNumber}}: {{article.articleName}}\\\" tooltip-popup-delay=\\\"200\\\">\\n <div class=\\\"text-ellipsis m-l\\\" style=\\\"font-weight: bold;\\\">\\n {{article.useAlternativeArticleNumber && article.alternativeArticleNumber.length > 0 ? article.alternativeArticleNumber : article.articleNumber}}\\n </div>\\n <div class=\\\"text-ellipsis m-l\\\">{{article.articleName}}</div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"articleListContainerItem paginationItem\\\">\\n <div\\n uib-pagination\\n boundary-links=\\\"true\\\"\\n total-items=\\\"vm.totalItems\\\"\\n items-per-page=\\\"vm.pageSize\\\"\\n max-size=\\\"5\\\"\\n ng-change=\\\"vm.searchTermChange()\\\"\\n ng-model=\\\"vm.currentPage\\\"\\n class=\\\"pagination-sm\\\"\\n previous-text=\\\"‹\\\"\\n next-text=\\\"›\\\"\\n first-text=\\\"«\\\"\\n last-text=\\\"»\\\"></div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div>\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-11\\\">\\n <ui-select class=\\\"editable-input\\\" ng-model=\\\"vm.selectedArticle\\\" theme=\\\"bootstrap\\\" limit=\\\"1\\\" on-select=\\\"vm.selectArticle()\\\" on-remove=\\\"vm.removeArticle()\\\" ng-disabled=\\\"vm.disabledBy\\\">\\n <ui-select-match placeholder=\\\"{{'order.addarticle' | translate}}\\\">\\n <span>{{$select.selected.articleName + ' (' + ($select.selected.useAlternativeArticleNumber && $select.selected.alternativeArticleNumber.length > 0 ? $select.selected.alternativeArticleNumber : $select.selected.articleNumber) + ')'}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"article in vm.searchResultArticles track by article.id\\\" refresh=\\\"vm.refreshArticles($select.search)\\\" refresh-delay=\\\"200\\\">\\n <span>{{::article.articleName + ' (' + (article.useAlternativeArticleNumber && article.alternativeArticleNumber.length > 0 ? article.alternativeArticleNumber : article.articleNumber) + ')'}}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<span style=\\\"display: block; float: right;\\\">\\n <button ng-click=\\\"vm.toggleConfirmationVisiblity()\\\" class=\\\"btn btn-sm btn-default\\\" type=\\\"button\\\" ng-hide=\\\"vm.confirmationVisible\\\">{{ vm.confirmTitle | translate }}</button>\\n <span ng-show=\\\"vm.confirmationVisible\\\" class=\\\"ca-slide-in-span\\\" ng-class=\\\"{ true : 'ca-slide-in-from-right', false : ''}[vm.confirmationVisible]\\\">\\n <button ng-click=\\\"vm.confirm()\\\" class=\\\"btn btn-sm btn-default\\\" type=\\\"button\\\">{{ 'common.confirm' | translate }}</button>\\n <button ng-click=\\\"vm.toggleConfirmationVisiblity()\\\" class=\\\"btn btn-sm btn-default\\\" type=\\\"button\\\">{{ 'common.cancel' | translate }}</button>\\n </span>\\n</span>\\n<div style=\\\"clear:both;height:1px;\\\"> </div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"custom-edit-input\\\">\\n <div class=\\\"inputs\\\">\\n <span ng-show=\\\"!vm.isEditing\\\">{{ vm.contactInfo.value }}</span>\\n <input ng-show=\\\"vm.isEditing\\\" type=\\\"text\\\" class=\\\"form-control\\\" ng-model=\\\"vm.contactInfo.value\\\">\\n </div>\\n <div class=\\\"tools\\\">\\n <button ng-show=\\\"vm.isEditing\\\" type=\\\"button\\\" class=\\\"btn btn-sm btn-danger\\\" ng-click=\\\"vm.remove()\\\"><i class=\\\"fa fa-times\\\"></i></button>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div ng-if=\\\"vm.filteredErrorList.length > 0\\\" class=\\\"ca-errorListStyle\\\" style=\\\"padding:5px 15px;\\\">\\n <div>\\n <label ng-show=\\\"vm.label && vm.label.length > 0\\\" style=\\\"float:left;\\\">{{vm.label | translate}}</label>\\n <div style=\\\"clear: both; height:1px\\\"> </div>\\n </div>\\n <ul>\\n <li ng-repeat=\\\"item in vm.filteredErrorList\\\">{{ item.message }}</li>\\n </ul>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-group row\\\">\\n <label ng-show=\\\"vm.label && vm.label.length > 0\\\" class=\\\"col-sm-4 control-label\\\">{{vm.label | translate}}:</label>\\n <div class=\\\"col-sm-8\\\">\\n <ng-transclude></ng-transclude>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-group row\\\">\\n <label ng-show=\\\"vm.label && vm.label.length > 0\\\" class=\\\"col-sm-8 control-label\\\">{{vm.label | translate}}:</label>\\n <div class=\\\"col-sm-4\\\">\\n <ng-transclude></ng-transclude>\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<ui-select multiple=\\\"\\\" class=\\\"editable-input\\\" ng-model=\\\"vm.model\\\" ng-disabled=\\\"vm.disabledBy\\\" theme=\\\"bootstrap\\\">\\n <ui-select-match ui-lock-choice=\\\"$item.id == vm.lockChoice\\\" placeholder=\\\"{{vm.placeholder | translate}}\\\">\\n <span>{{vm.renderItem('list', $item)}}</span>\\n </ui-select-match>\\n <ui-select-choices repeat=\\\"item in vm.choices | orderBy:vm.orderBy | filter:$select.search track by item.id\\\">\\n <span>{{vm.renderItem('choice', item)}}</span>\\n </ui-select-choices>\\n</ui-select>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div ng-repeat=\\\"contactinfo in vm.contactInfos\\\" class=\\\"ca-searchlist-detail\\\">\\n <span tooltip-append-to-body=\\\"true\\\" uib-tooltip=\\\"{{contactinfo.value}}\\\" class=\\\"ca-searchlist-detail-label\\\">{{contactinfo.contactInfoType.typeName}} </span>\\n <span >{{contactinfo.value}}</span>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<ui-select ng-model=\\\"vm.model\\\" ng-disabled=\\\"vm.disabledBy\\\" theme=\\\"bootstrap\\\" class=\\\" enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"{{vm.placeholder | translate}}\\\">{{vm.renderItem('selected', $select.selected)}}</ui-select-match>\\n <ui-select-choices repeat=\\\"item in vm.choices | orderBy:vm.orderBy | filter:vm.filter($select.search) track by item.id\\\">\\n <span ng-if=\\\"item.id !== -1\\\">{{vm.renderItem('choice', item)}}</span>\\n <span ng-if=\\\"item.id === -1\\\"> </span>\\n </ui-select-choices>\\n</ui-select>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n \\n</style>\\n\\n<div class=\\\"noselect\\\" ng-click=\\\"vm.changeSortOrder()\\\"\\nuib-tooltip=\\\"{{ vm.getTooltipText() }}\\\" 'common.reset'\\ntooltip-placement=\\\"top\\\" tooltip-delay=\\\"500\\\" tooltip-append-to-body=\\\"true\\\"> \\n {{ vm.header | translate}}:\\n <span ng-if=\\\"vm.orderBy === vm.valueName && vm.reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"vm.reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"vm.orderBy !== vm.valueName || vm.reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n ul.dropdown-menu{\\n position: absolute !important;\\n max-height: 200px !important;\\n display: inline;\\n z-index: 9999999;\\n }\\n li.ui-select-choices-group{\\n z-index: 9999999;\\n }\\n div.size-correction > div {\\n height: 24px;\\n }\\n div.size-correction > div > div {\\n height: 24px;\\n }\\n div.size-correction > div > div > span {\\n height: 24px;\\n padding:0px;\\n margin:0px;\\n padding-top: 3px;\\n padding-left: 6px;\\n font-size: smaller;\\n }\\n div.size-correction > div > div > span > span > span{\\n display: table-cell; \\n vertical-align:middle;\\n }\\n div.size-correction > div > input {\\n height: 24px;\\n padding:0px;\\n margin:0px;\\n padding-left: 6px;\\n font-size:smaller;\\n }\\n div.size-correction > div > ul > li {\\n font-size:smaller;\\n }\\n div.size-correction > div > ul > li > div {\\n height:20px;\\n }\\n</style>\\n\\n<div>\\n <div class=\\\"form-group row\\\">\\n <div class=\\\"col-lg-11\\\" style=\\\"position:relative; display:flex; height: 24px;\\\">\\n <div style=\\\"width: 100%;\\\" class=\\\"size-correction\\\">\\n <ui-select class=\\\"editable-input\\\" ng-model=\\\"vm.model\\\" theme=\\\"bootstrap\\\" limit=\\\"1\\\" on-select=\\\"vm.select()\\\" allow-clear=\\\"true\\\" on-remove=\\\"vm.remove()\\\" ng-disabled=\\\"vm.disabledBy\\\">\\n <ui-select-match placeholder=\\\"{{'article.newarticlevariant.addavariant' | translate}}\\\">\\n <span>{{ $select.selected.name }}</span>\\n </ui-select-match> \\n <ui-select-choices repeat=\\\"variantDetail in vm.searchResultVariantDetail track by variantDetail.id\\\" refresh=\\\"vm.refresh($select.search)\\\" refresh-delay=\\\"200\\\">\\n <span>{{ variantDetail.name }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </div>\\n <button class=\\\"btn btn-sm btn-default\\\" style=\\\"padding-left:6px;padding-right:6px;padding-top:4px;font-size:smaller\\\" ng-if=\\\"vm.model\\\" type=\\\"button\\\" ng-click=\\\"vm.remove()\\\"><i class=\\\"fa fa-trash-o\\\" aria-hidden=\\\"true\\\"></i></button>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<li class=\\\"hidden-folded\\\" ng-if=\\\"vm.shouldRender('root')\\\" ng-class=\\\"{active:vm.node.expanded}\\\">\\n <span>\\n <a class=\\\"auto\\\" href=\\\"\\\" ng-click=\\\"vm.onClick()\\\">\\n <i ng-class=\\\"vm.node.iconClass\\\"></i>\\n <span class=\\\"hidden-folded\\\">{{ vm.getNodeLabel(vm.node) | translate}}</span>\\n <span class=\\\"hidden-folded pull-right text-muted\\\" ng-if=\\\"vm.node.nodes.length\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-hide=\\\"vm.node.expanded\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down\\\" ng-show=\\\"vm.node.expanded\\\"></i>\\n </span>\\n </a>\\n </span>\\n <ul class=\\\"nav nav-sub dk\\\" ng-if=\\\"vm.node.nodes.length\\\">\\n <navigation-node class=\\\"child\\\" ng-repeat=\\\"child in vm.node.nodes\\\" node=\\\"child\\\" level=\\\"vm.level + 1\\\" claims=\\\"vm.claims\\\" license-modules=\\\"vm.licenseModules\\\" root=\\\"vm.root\\\" branch=\\\"vm.branch\\\"></navigation-node>\\n </ul>\\n</li>\\n\\n<li ng-if=\\\"vm.shouldRender('leaf')\\\" class=\\\"active\\\" ui-sref-active=\\\"active\\\">\\n <a ng-class=\\\"{'focus m-l-none': vm.hasFocus()}\\\" ng-click=\\\"vm.onClick()\\\">\\n <span class=\\\"text-xs\\\">{{ vm.getIndentation(vm.level)}} {{ vm.getNodeLabel(vm.node) }}</span>\\n <span class=\\\"hidden-folded pull-right text-muted\\\" ng-if=\\\"vm.node.nodes.length\\\">\\n <i class=\\\"fa fa-fw fa-angle-right\\\" ng-hide=\\\"vm.node.expanded\\\"></i>\\n <i class=\\\"fa fa-fw fa-angle-down\\\" ng-show=\\\"vm.node.expanded\\\"></i>\\n </span> \\n </a>\\n <ul class=\\\"nav nav-sub dk\\\" ng-if=\\\"vm.node.nodes.length\\\" ng-show=\\\"vm.node.expanded\\\">\\n <navigation-node class=\\\"child\\\" ng-repeat=\\\"child in vm.node.nodes\\\" node=\\\"child\\\" level=\\\"vm.level + 1\\\" claims=\\\"vm.claims\\\" license-modules=\\\"vm.licenseModules\\\" root=\\\"vm.root\\\" branch=\\\"vm.branch\\\"></navigation-node>\\n </ul> \\n</li>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"dashboard-header\\\">\\n <div class=\\\"dashboard-controls\\\">\\n <div class=\\\"btn-group\\\" uib-dropdown is-open=\\\"status.isopen\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-default dropdown-toggle\\\" uib-dropdown-toggle ng-disabled=\\\"disabled\\\" id=\\\"ddWidgets\\\" data-toggle=\\\"dropdown\\\" aria-expanded=\\\"true\\\">\\n <i class=\\\"fa fa-plus\\\"></i>\\n {{'dashboard.addwidget' | translate}}<span class=\\\"caret\\\"></span>\\n </button>\\n <ul class=\\\"dropdown-menu\\\" role=\\\"menu\\\" aria-labelledby=\\\"ddWidgets\\\" uib-dropdown-menu>\\n <li ng-repeat=\\\"widget in widgetDefinitions\\\">\\n <a role=\\\"menuitem\\\" ng-click=\\\"addNewWidget(widget)\\\">{{'widget.' + widget.name | translate}}</a>\\n {{ sortOrder}}\\n </li>\\n </ul>\\n </div>\\n </div>\\n</div>\\n<div gridster=\\\"gridsterOpts\\\">\\n <ul>\\n <li gridster-item=\\\"item\\\" ng-repeat=\\\"item in widgets\\\">\\n <widget-body>\\n </widget-body>\\n </li>\\n </ul>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"widget-body\\\" >\\n <div class=\\\"dropdown widget-menu-area btn-group\\\" uib-dropdown on-toggle=\\\"toggled(open)\\\" aria-expanded=\\\"false\\\">\\n <a href class=\\\"dropdown-toggle\\\" uib-dropdown-toggle>\\n <i class=\\\"fa fa-bars\\\" ng-click=\\\"iconClicked()\\\" />\\n </a>\\n <ul class=\\\"dropdown-menu\\\" role=\\\"menu\\\" uib-dropdown-menu>\\n <li ng-click=\\\"close()\\\"><i class=\\\"fa fa-close\\\" ng-click=\\\"iconClicked()\\\" /></li>\\n <li ng-if=\\\"settings\\\" ng-click=\\\"settings()\\\" ><i class=\\\"fa fa-gear\\\" ng-click=\\\"iconClicked()\\\" /></li>\\n </ul>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"modal-header\\\">\\n <h3 class=\\\"modal-title\\\">{{'widget.settingtitle' | translate}} </h3>\\n</div>\\n<div class=\\\"modal-body\\\">\\n <h3>{{'widget.chooselocation' | translate }} </h3>\\n\\n {{'widget.selectlocation' | translate}}\\n <select ng-model=\\\"selectedSettingItem\\\"\\n ng-options=\\\"l.id as l.locationName\\n for l in currentUser.locations\\\">\\n <option value=\\\"\\\">{{'widget.alllocations' | translate}}</option>\\n </select>\\n</div>\\n<div class=\\\"modal-footer\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"saveSettings()\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$dismiss()\\\">{{'common.cancel' | translate}}</button>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"modal-header\\\">\\n <h3 class=\\\"modal-title\\\">{{'widget.settingtitle' | translate}} </h3>\\n</div>\\n<div class=\\\"modal-body\\\" style=\\\"padding:5px\\\" ng-style=\\\"{'height': businessAreas.length > 0 ? '140px' : '80px'}\\\">\\n <b><div style=\\\"font-size:medium\\\">{{'widget.chooselocation' | translate }} </div></b>\\n\\n <div class=\\\"col-lg-12\\\">\\n {{'widget.selectlocation' | translate}}\\n <select ng-model=\\\"selectedSettingItem\\\"\\n ng-options=\\\"l.id as l.locationName\\n for l in currentUser.locations\\\">\\n <option value=\\\"\\\">{{'widget.alllocations' | translate}}</option>\\n </select>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\">\\n {{'widget.selecttimeperiod' | translate}}:\\n <select ng-model=\\\"selectedWidgetTimeFrame\\\">\\n <option value=\\\"1\\\">{{ 'widget.settingtimeperiod.1' | translate }}</option>\\n <option value=\\\"2\\\">{{ 'widget.settingtimeperiod.2' | translate }}</option>\\n <option value=\\\"0\\\">{{ 'widget.settingtimeperiod.0' | translate }}</option>\\n </select>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\" ng-show=\\\"businessAreas.length > 0\\\">\\n {{ 'product.businessareas' | translate }}:\\n <ca-singleselect model=\\\"selectedBusinessArea\\\" change-callback=\\\"filterData()\\\" choices=\\\"businessAreas\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\"/>\\n </div>\\n</div>\\n<div class=\\\"modal-footer\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"saveSettings()\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$dismiss()\\\">{{'common.cancel' | translate}}</button>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"modal-header\\\">\\n <h3 class=\\\"modal-title\\\">{{'widget.settingtitle' | translate}} </h3>\\n</div>\\n<div class=\\\"modal-body\\\" style=\\\"height:80px; padding:5px\\\">\\n <b><div style=\\\"font-size:medium\\\">{{'widget.chooselocation' | translate }} </div></b>\\n <div class=\\\"col-lg-12\\\">\\n {{'widget.selectlocation' | translate}}:\\n <select ng-model=\\\"selectedSettingItem.locationIds\\\"\\n ng-options=\\\"l.id as l.locationName\\n for l in currentUser.locations\\\">\\n <option value=\\\"\\\">{{'widget.alllocations' | translate}}</option>\\n </select>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\">\\n {{ 'widget.hidetooltip' | translate }}:\\n <input type=\\\"checkbox\\\" ng-model=\\\"selectedSettingItem.hideTooltip\\\"/>\\n </div>\\n</div>\\n<div class=\\\"modal-footer\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"saveSettings()\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$dismiss()\\\">{{'common.cancel' | translate}}</button>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"modal-header\\\">\\n <h3 class=\\\"modal-title\\\">{{'widget.settingtitle' | translate}} </h3>\\n</div>\\n<div class=\\\"modal-body\\\">\\n <h3>{{'widget.chooselocation' | translate }} </h3>\\n\\n {{'widget.selectmultiplelocation' | translate}}\\n \\n <ca-multiselect model=\\\"selectedSettingItems\\\" choices=\\\"currentUser.locations\\\" order-by=\\\"'id'\\\" item-renderer=\\\"['locationNumber', 'locationName']\\\"/>\\n <select ng-model=\\\"selectedSettingItems\\\"\\n ng-options=\\\"l.id as l.locationName\\n for l in currentUser.locations\\\">\\n <option value=\\\"\\\">{{'widget.alllocations' | translate}}</option>\\n </select>\\n</div>\\n<div class=\\\"modal-footer\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"saveSettings()\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$dismiss()\\\">{{'common.cancel' | translate}}</button>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"modal-header\\\">\\n <h3 class=\\\"modal-title\\\">{{'widget.settingtitle' | translate}} </h3>\\n</div>\\n<div class=\\\"modal-body\\\" style=\\\"height:80px; padding:5px\\\">\\n <b><div style=\\\"font-size:medium\\\">{{'widget.chooselocation' | translate }} </div></b>\\n <div class=\\\"col-lg-12\\\">\\n {{'widget.selectlocation' | translate}}:\\n <select ng-model=\\\"selectedSettingItem.locationIds\\\"\\n ng-options=\\\"l.id as l.locationName\\n for l in currentUser.locations\\\">\\n <option value=\\\"\\\">{{'widget.alllocations' | translate}}</option>\\n </select>\\n </div>\\n \\n <div class=\\\"col-lg-12\\\">\\n {{'widget.selecttimeperiod' | translate}}:\\n <select ng-model=\\\"selectedSettingItem.selectedWidgetTimeFrame\\\">\\n <option value=\\\"1\\\">{{ 'widget.settingtimeperiod.1' | translate }}</option>\\n <option value=\\\"2\\\">{{ 'widget.settingtimeperiod.2' | translate }}</option>\\n <option value=\\\"0\\\">{{ 'widget.settingtimeperiod.0' | translate }}</option>\\n </select>\\n </div>\\n</div>\\n<div class=\\\"modal-footer\\\">\\n <button type=\\\"button\\\" class=\\\"btn btn-primary\\\" ng-click=\\\"saveSettings()\\\">{{'common.save' | translate}}</button>\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" ng-click=\\\"$dismiss()\\\">{{'common.cancel' | translate}}</button>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table{\\n font-size: 13px;\\n }\\n</style>\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div ng-if=\\\"!isLoaded && !hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <table class=\\\"table\\\">\\n <tr ng-repeat=\\\"x in widgetData\\\">\\n <td style=\\\" text-align: left;\\\"><a ng-click=\\\"gotoArticle(x.article.id)\\\">{{ x.article.alternativeArticleNumber }} {{ x.article.articleName }}</a></td>\\n <td>{{ x.location}}</td>\\n <td style=\\\"color:red;\\\">{{ x.quantity}}</td>\\n </tr>\\n </table>\\n\\n </div>\\n\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div ng-if=\\\"!isLoaded && !hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div class=\\\"wgt-wrapper heatmap-container\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n div > div.google-visualization-tooltip { pointer-events: none }\\n</style>\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <div ng-if=\\\"!isLoaded && !hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div style=\\\"position:relative; z-index: 100;\\\">\\n <p class=\\\"wgt-location\\\">\\n <span ng-if=\\\"selectedLocationNumber\\\">{{ selectedLocationNumber }}</span> <span ng-if=\\\"selectedLocation\\\">{{ selectedLocation }}</span>\\n <span ng-if=\\\"!selectedLocation\\\">{{'widget.alllocations' | translate}} {{ 'common.locations' | translate }}</span>\\n <span ng-if=\\\"selectedWidgetTimeFrame !== undefined\\\">  {{ 'widget.settingtimeperiod.' + selectedWidgetTimeFrame | translate }}</span>\\n </p>\\n </div>\\n <div class=\\\"grid\\\"> \\n <div google-chart class=\\\"chart-container chart_wrap\\\" style=\\\"margin-top: -10px\\\"></div>\\n </div>\\n </div>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <h1 class=\\\"text-center\\\">\\n {{transactionDate | date:'yyyy-MM-dd HH:mm:ss'}}\\n </h1>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <div class=\\\"text-primary-dk\\\">\\n <h1 class=\\\"text-center\\\">\\n {{widgetData.s7 | number:0}} / {{widgetData.s15 | number:0}}\\n \\n ({{widgetData.salesGrowth | number:1}} %)\\n </h1>\\n </div>\\n\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n div > div.google-visualization-tooltip { pointer-events: none }\\n\\n .pieChartBA {\\n width:140px; \\n height:50px; \\n padding-top:6px; \\n padding-bottom:6px; \\n padding-left:12px; \\n padding-right:12px;\\n }\\n</style>\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">\\n <span ng-if=\\\"selectedLocation\\\">{{ selectedLocationNumber + ' ' + selectedLocation }}</span>\\n <span ng-if=\\\"!selectedLocation\\\">{{'widget.alllocations' | translate}} {{ 'common.locations' | translate }}</span>\\n <span>  {{ 'widget.settingtimeperiod.' + selectedWidgetTimeFrame | translate }}</span>\\n </p>\\n <div ng-attr-id=\\\"{{ 'pieChart-' + $id }}\\\" google-chart></div>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n thead.stly-body{\\n font-size: smaller;\\n }\\n thead.stly-body > tr > th {\\n text-align: right;\\n }\\n thead.stly-body > tr > th.ta-l {\\n text-align: left;\\n }\\n tbody.stly-body{\\n font-size: smaller;\\n }\\n tbody.stly-body > tr > th {\\n text-align: left;\\n }\\n tbody.stly-body > tr > td {\\n text-align: right;\\n }\\n tbody.stly-body > tr > td.ta-l {\\n text-align: left;\\n }\\n tbody.stly-body > tr > td.ta-c {\\n text-align: center;\\n font-size: x-small;\\n }\\n</style>\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">\\n <span ng-if=\\\"selectedLocation\\\">{{'flexmonster.location' | translate}}: {{ selectedLocationNumber + ' ' + selectedLocation }}</span>\\n <span ng-if=\\\"!selectedLocation\\\">{{'widget.alllocations' | translate}} {{ 'common.locations' | translate }}</span>\\n <span> - {{'widget.period' | translate}}: {{ 'widget.settingtimeperiod.' + selectedWidgetTimeFrame | translate }}</span>\\n </p>\\n <div ng-repeat=\\\"data in widgetData\\\" class=\\\"b-t b-b\\\">\\n <table class=\\\"table\\\">\\n <thead class=\\\"stly-body\\\">\\n <tr>\\n <th style=\\\"width:25%\\\"></th>\\n <th style=\\\"width:20%\\\">{{ 'widget.thisyear' | translate }}:</th>\\n <th style=\\\"width:15%\\\"></th>\\n <th style=\\\"width:39%\\\" class=\\\"ta-l\\\">{{ 'widget.lastyear' | translate }}:</th>\\n </tr>\\n </thead>\\n <tbody class=\\\"stly-body\\\">\\n <tr>\\n <th>{{ 'salestotal.totalReceiptCount' | translate }}:</th>\\n <td>{{ data.thisYear.numberOfReciepts | number:0 }}</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.numberOfRecieptsDiff)}\\\">(<span ng-if=\\\"data.numberOfRecieptsDiff > 0\\\">+</span>{{ data.numberOfRecieptsDiff | number:0 }})</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.numberOfReciepts | number:0 }}</td>\\n </tr>\\n <tr>\\n <th>{{ 'widget.saleincvat' | translate }}:</th>\\n <td>{{ data.thisYear.salesPriceTotalIncVat | number:1 }}</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.salesPriceTotalIncVatDiff)}\\\">(<span ng-if=\\\"data.salesPriceTotalIncVatDiff > 0\\\">+</span>{{ data.salesPriceTotalIncVatDiff | number:1 }})</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.salesPriceTotalIncVat | number:1 }}</td>\\n </tr>\\n <tr>\\n <th>{{ 'flexmonster.total_purchasecost' | translate }}:</th>\\n <td>{{ data.thisYear.totalSalesPurchaseCost | number:1 }}</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.totalSalesPurchaseCostDiff)}\\\">(<span ng-if=\\\"data.totalSalesPurchaseCostDiff > 0\\\">+</span>{{ data.totalSalesPurchaseCostDiff | number:1 }})</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.totalSalesPurchaseCost | number:1 }}</td>\\n </tr>\\n <tr>\\n <th>{{ 'widget.gpsek' | translate }}:</th>\\n <td>{{ data.thisYear.grossProfitTotal | number:1 }}</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.grossProfitTotalDiff)}\\\">(<span ng-if=\\\"data.grossProfitTotalDiff > 0\\\">+</span>{{ data.grossProfitTotalDiff | number:1 }})</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.grossProfitTotal | number:1 }}</td>\\n </tr>\\n <tr>\\n <th>{{ 'widget.gppercent' | translate }}:</th>\\n <td>{{ data.thisYear.grossProfitPercent * 100 | number:1 }}%</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.grossProfitPercentDiff)}\\\">(<span ng-if=\\\"data.grossProfitPercentDiff > 0\\\">+</span>{{ data.grossProfitPercentDiff * 100 | number:1 }}%)</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.grossProfitPercent * 100 | number:1 }}%</td>\\n </tr>\\n <tr>\\n <th>{{ 'widget.averageperreciept' | translate }}:</th>\\n <td>{{ data.thisYear.averageCostPerReceipt | number:1 }}</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.averageCostPerReceiptDiff)}\\\">(<span ng-if=\\\"data.averageCostPerReceiptDiff > 0\\\">+</span>{{ data.averageCostPerReceiptDiff | number:1 }})</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.averageCostPerReceipt | number:1 }}</td>\\n </tr>\\n <tr ng-if=\\\"data.thisYear.numberOfVisitors !== 0 || data.lastYear.numberOfVisitors !== 0\\\">\\n <th>{{ 'flexmonster.customerCount' | translate }}:</th>\\n <td>{{ data.thisYear.numberOfVisitors | number:0 }}</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.numberOfVisitorsDiff)}\\\">(<span ng-if=\\\"data.numberOfVisitorsDiff > 0\\\">+</span>{{ data.numberOfVisitorsDiff | number:0 }})</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.numberOfVisitors | number:0 }}</td>\\n </tr>\\n <tr ng-if=\\\"data.thisYear.receiptPerVisitor !== 0 || data.lastYear.receiptPerVisitor !== 0\\\">\\n <th>{{ 'widget.conversion' | translate }}:</th>\\n <td>{{ data.thisYear.receiptPerVisitor * 100 | number:1 }}%</td>\\n <td class=\\\"ta-c\\\" ng-style=\\\"{'color': getDifferenceColour(data.receiptPerVisitorDiff)}\\\">(<span ng-if=\\\"data.receiptPerVisitorDiff > 0\\\">+</span>{{ data.receiptPerVisitorDiff * 100 | number:1 }}%)</td>\\n <td class=\\\"ta-l\\\">{{ data.lastYear.receiptPerVisitor * 100 | number:1}}%</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <h1 class=\\\"text-center\\\">{{widgetData}}</h1>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <h1 class=\\\"text-center\\\">{{count}}</h1>\\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n tr.ys-headerrow > th {\\n font-size: smaller;\\n text-align: right;\\n }\\n tr.ys-row > td {\\n font-size: smaller;\\n text-align: right;\\n }\\n tr.ys-row > td.loc-name {\\n font-size: small;\\n font-weight: bold;\\n text-align: left;\\n }\\n</style>\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">\\n <span ng-repeat=\\\"location in selectedLocations | orderBy:'locationNumber'\\\">{{ location.locationNumber + ' ' + location.locationName }}  </span>\\n </p>\\n <table class=\\\"table\\\">\\n <tr class=\\\"ca-table-grouprow ys-headerrow\\\">\\n <th></th>\\n <th>{{ 'salestotal.totalReceiptCount' | translate }}:</th>\\n <th>{{ 'widget.saleincvat' | translate }}:</th>\\n <th>{{ 'widget.gpsek' | translate }}:</th>\\n <th>{{ 'widget.gppercent' | translate }}:</th>\\n <th>{{ 'widget.averageperreciept' | translate }}:</th>\\n <th ng-if=\\\"anyVisitors()\\\">{{ 'flexmonster.customerCount' | translate }}:</th>\\n <th ng-if=\\\"anyVisitors()\\\">{{ 'widget.conversion' | translate }}:</th>\\n </tr>\\n <tr class=\\\"ys-row\\\" ng-repeat=\\\"data in widgetData.locations | orderBy:'location.locationNumber'\\\">\\n <td class=\\\"loc-name\\\">{{ data.location.locationNumber }} {{ data.location.locationName }}</td>\\n <td><span ng-if=\\\"data.numberOfReciepts\\\">{{ data.numberOfReciepts | number:0}}</span></td>\\n <td><span ng-if=\\\"data.salesPriceTotalIncVat\\\">{{ data.salesPriceTotalIncVat | number:1}}</span></td>\\n <td><span ng-if=\\\"data.grossProfitTotal\\\">{{ data.grossProfitTotal | number:1}}</span></td>\\n <td><span ng-if=\\\"data.grossProfitPercent\\\">{{ data.grossProfitPercent * 100 | number:1}}%</span></td>\\n <td><span ng-if=\\\"data.averageCostPerReceipt\\\">{{ data.averageCostPerReceipt | number:1}}</span></td>\\n <td ng-if=\\\"anyVisitors()\\\"><span ng-if=\\\"data.numberOfVisitors\\\">{{ data.numberOfVisitors | number:0}}</span></td>\\n <td ng-if=\\\"anyVisitors()\\\"><span ng-if=\\\"data.receiptPerVisitor\\\">{{ data.receiptPerVisitor * 100 | number:1}}%</span></td>\\n </tr>\\n </table> \\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <h1 class=\\\"text-center\\\" ng-if=\\\"widgetData.salesPriceTotal\\\">{{widgetData.salesPriceTotal | number:0}} kr</h1>\\n <p class=\\\"text-center\\\">\\n <span ng-if=\\\"widgetData.salesPriceTotal>0 && widgetData.salesPriceGroupSale>0\\\" class=\\\"text-xs\\\">{{(widgetData.salesPriceGroupSale/widgetData.salesPriceTotal)*100 | number:1}} <span class=\\\"text-muted\\\"> VGR%</span></span>\\n <span class=\\\"text-xs\\\" ng-if=\\\"widgetData.numberOfReciepts\\\"> {{widgetData.numberOfReciepts}} <span class=\\\"text-muted\\\">KUNDER</span></span>\\n <span class=\\\"text-xs\\\" ng-if=\\\"widgetData.numberOfReciepts\\\"> {{ widgetData.salesPriceTotal/widgetData.numberOfReciepts| number:0}} <span class=\\\"text-muted\\\">SNITTKÖP</span></span>\\n </p>\\n <table class=\\\"table\\\" ng-if=\\\"!selectedLocation && widgetData.locations.length\\\">\\n <tr class=\\\"ca-table-grouprow\\\">\\n <td style=\\\" text-align: left;\\\"></td>\\n <td style=\\\" text-align: right;\\\">TOTAL</td>\\n <td style=\\\" text-align: right;\\\">VGR%</td>\\n <td style=\\\" text-align: right;\\\">Kunder</td>\\n <td style=\\\" text-align: right;\\\">Snittköp</td>\\n </tr>\\n <tr ng-repeat=\\\"data in widgetData.locations | orderBy:'location.locationName' \\\">\\n <td style=\\\" text-align: left;\\\">{{ data.location.locationName }}</td>\\n <td style=\\\" text-align: right;\\\" ><span ng-if=\\\"data.salesPriceTotal\\\">{{ data.salesPriceTotal| number:0}}</span></td>\\n <td style=\\\" text-align: right;\\\"><span ng-if=\\\"data.salesPriceGroupSale\\\">{{(data.salesPriceGroupSale/data.salesPriceTotal)*100 | number:1}}</span></td>\\n <td style=\\\" text-align: right;\\\"><span ng-if=\\\"data.numberOfReciepts\\\">{{ data.numberOfReciepts| number:0}}</span></td>\\n <td style=\\\" text-align: right;\\\"><span ng-if=\\\"data.numberOfReciepts\\\">{{ data.salesPriceTotal/data.numberOfReciepts| number:0}}</span></td>\\n </tr>\\n </table> \\n </div>\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n tr.ys-headerrow > th {\\n font-size: small;\\n text-align: left;\\n position: sticky; \\n top:0px;\\n background-color: white;\\n padding-bottom:5px;\\n user-select: none;\\n }\\n tr.ys-headerrow > th:hover {\\n background-color:whitesmoke;\\n }\\n tr.ys-row:hover {\\n background-color:whitesmoke;\\n }\\n tr.ys-row > td > a {\\n color:lightskyblue;\\n }\\n tr.ys-row:hover > td > a {\\n color:cornflowerblue;\\n }\\n tr.ys-row > td {\\n font-size: smaller;\\n text-align: left;\\n padding-bottom:5px;\\n padding-top:5px;\\n }\\n</style>\\n<div class=\\\"wgt\\\" style=\\\"padding-right: 10px\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\" style=\\\"overflow: auto; height:90%; padding-top: 0px;padding-right: 10px;padding-bottom: 20px;top: 0px;bottom: 50px;\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <h4 class=\\\"m-l-sm\\\">\\n <span ng-if=\\\"!selectedLocation \\\">{{ 'common.allLocations' | translate }}</span>\\n <span ng-if=\\\"selectedLocation\\\">{{ selectedLocation }}</span>\\n </h4>\\n </div>\\n </div>\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <div class=\\\"col-lg-12\\\" ng-class=\\\"{ 'b-b' : filterShow }\\\">\\n <a ng-click=\\\"filterShow = !filterShow\\\" style=\\\"font-size: smaller;\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"filterShow ? 'fa-angle-down' : 'fa-angle-right' \\\"></i>\\n <b ng-hide=\\\"filterShow\\\">{{ 'common.show' | translate }}</b> \\n <b ng-show=\\\"filterShow\\\">{{ 'productimport.hide' | translate }}</b> \\n <b>{{ 'analysis.filter' | translate }}</b> \\n </a>\\n <i ng-hide=\\\"filterShow\\\" style=\\\"font-size: smaller; color:lightgrey\\\">\\n   <span ng-if=\\\"filter.orderType !== 'all'\\\"> {{ 'flexmonster.orderType' | translate }}: {{ filter.orderType === 'automatic' ? ('orderType.Automatic' | translate) : ('orderType.AutomaticInternal' | translate) }}</span>\\n   <span ng-if=\\\"filter.businessArea.id > 0\\\"> {{ 'product.businessareas' | translate }}: {{ filter.businessArea.name }} </span>\\n   <span ng-if=\\\"filter.brand.id > 0\\\"> {{ 'article.brand' | translate }}: {{ filter.brand.name }} </span>\\n </i>\\n </div>\\n <div ng-if=\\\"filterShow\\\" style=\\\"font-size: smaller;\\\">\\n <div> </div>\\n <div class=\\\"col-lg-12\\\">{{ 'flexmonster.orderType' | translate }}:\\n <select id=\\\"orderTypeSelect\\\" ng-model=\\\"filter.orderType\\\" ng-change=\\\"filterData()\\\">\\n <option value=\\\"all\\\" selected>{{ 'common.all' | translate }}</option>\\n <option value=\\\"automatic\\\">{{ 'orderType.Automatic' | translate }}</option>\\n <option value=\\\"automaticInternal\\\">{{ 'orderType.AutomaticInternal' | translate }}</option>\\n </select>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"distinctBusinessAreaIds.length > 0\\\">\\n {{ 'product.businessareas' | translate }}:\\n <ca-singleselect model=\\\"filter.businessArea\\\" change-callback=\\\"filterData()\\\" choices=\\\"distinctBusinessAreaIds\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\"/>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"distinctBrandIds.length > 0\\\">\\n {{ 'article.brand' | translate }}:\\n <ca-singleselect model=\\\"filter.brand\\\" change-callback=\\\"filterData()\\\" choices=\\\"distinctBrandIds\\\" order-by=\\\"'name'\\\" item-renderer=\\\"'name'\\\"/>\\n </div>\\n <div> </div>\\n </div>\\n <div class=\\\"col-lg-12 b-t\\\" style=\\\"font-size: smaller;\\\">\\n {{ 'common.totalResults' | translate }}: {{widgetData.length}}\\n </div>\\n </div>\\n </div>\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n <table class=\\\"table\\\" style=\\\"width: 100%; height: 100%;\\\">\\n <thead>\\n <tr class=\\\"ys-headerrow\\\">\\n <th ng-click=\\\"changeSortOrder('orderNumber')\\\" \\n uib-tooltip=\\\"{{ 'widget.ordersorton' | translate}} {{ 'order.ordernumber' | translate}}\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\">{{ 'order.ordernumber' | translate }}:\\n <span ng-if=\\\"orderAutoOrder_OrderBy === 'orderNumber' && orderAutoOrder_Reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"orderAutoOrder_Reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"orderAutoOrder_OrderBy !== 'orderNumber' || orderAutoOrder_Reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n </th>\\n <th ng-click=\\\"changeSortOrder('fromName')\\\" \\n uib-tooltip=\\\"{{ 'widget.ordersorton' | translate}} {{ 'widget.from' | translate}}\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\">{{ 'widget.from' | translate }}:\\n <span ng-if=\\\"orderAutoOrder_OrderBy === 'fromName' && orderAutoOrder_Reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"orderAutoOrder_Reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"orderAutoOrder_OrderBy !== 'fromName' || orderAutoOrder_Reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n </th>\\n <th ng-click=\\\"changeSortOrder('toName')\\\" \\n uib-tooltip=\\\"{{ 'widget.ordersorton' | translate}} {{ 'widget.to' | translate}}\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\">{{ 'widget.to' | translate }}:\\n <span ng-if=\\\"orderAutoOrder_OrderBy === 'toName' && orderAutoOrder_Reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"orderAutoOrder_Reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"orderAutoOrder_OrderBy !== 'toName' || orderAutoOrder_Reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n </th>\\n <th ng-click=\\\"changeSortOrder('orderSystemStatusName')\\\" \\n uib-tooltip=\\\"{{ 'widget.ordersorton' | translate}} {{ 'order.status' | translate}}\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\">{{ 'order.status' | translate }}:\\n <span ng-if=\\\"orderAutoOrder_OrderBy === 'orderSystemStatusName' && orderAutoOrder_Reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"orderAutoOrder_Reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"orderAutoOrder_OrderBy !== 'orderSystemStatusName' || orderAutoOrder_Reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n </th>\\n <th ng-click=\\\"changeSortOrder('orderSystemTypeName')\\\" \\n uib-tooltip=\\\"{{ 'widget.ordersorton' | translate}} {{ 'order.ordertype' | translate}}\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\">{{ 'order.ordertype' | translate }}:\\n <span ng-if=\\\"orderAutoOrder_OrderBy === 'orderSystemTypeName' && orderAutoOrder_Reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"orderAutoOrder_Reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"orderAutoOrder_OrderBy !== 'orderSystemTypeName' || orderAutoOrder_Reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n </th>\\n <th ng-click=\\\"changeSortOrder('orderCreatedDate')\\\" style=\\\"text-align: right\\\" \\n uib-tooltip=\\\"{{ 'widget.ordersorton' | translate}} {{ 'reports.transit.order.createdDate' | translate}}\\\" \\n tooltip-placement=\\\"top\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\">{{ 'reports.transit.order.createdDate' | translate }}:\\n <span ng-if=\\\"orderAutoOrder_OrderBy === 'orderCreatedDate' && orderAutoOrder_Reverse !== undefined\\\">\\n <i class=\\\"fa\\\" ng-class=\\\"orderAutoOrder_Reverse ? 'fa-sort-desc' : 'fa-sort-asc'\\\" aria-hidden=\\\"true\\\"></i>\\n </span>\\n <i style=\\\"color:lightgrey;\\\" ng-if=\\\"orderAutoOrder_OrderBy !== 'orderCreatedDate' || orderAutoOrder_Reverse === undefined\\\" class=\\\"fa fa-sort\\\" aria-hidden=\\\"true\\\"></i>\\n </th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr class=\\\"ys-row\\\" ng-repeat=\\\"data in widgetData | orderBy: orderAutoOrder_OrderBy : orderAutoOrder_Reverse\\\" ng-click=\\\"goToOrder(data.id)\\\" \\n tooltip-placement=\\\"right\\\" tooltip-append-to-body=\\\"true\\\" tooltip-enable=\\\"!hideTooltip\\\"\\n uib-tooltip=\\\"{{ 'widget.autoorderclicktooltip' | translate }}\\\" tooltip-popup-delay=\\\"50\\\">\\n <td><a>{{ data.orderNumber }}</a></td>\\n <td>{{ data.fromName }}</td>\\n <td>{{ data.toName }}</td>\\n <td>{{ data.orderSystemStatusName }}</td>\\n <td>{{ data.orderSystemTypeName }}</td>\\n <td style=\\\"text-align: right\\\">{{ data.orderCreatedDate | date:'yyyy-MM-dd hh:mm:ss' }}</td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\r\\n <div class=\\\"wgt-heading\\\">\\r\\n {{ 'widget.' + item.name | translate}}\\r\\n </div>\\r\\n <div class=\\\"wgt-body\\\">\\r\\n <p class=\\\"wgt-location\\\" ng-show=\\\"selectedLocation\\\">{{ selectedLocation }}</p>\\r\\n <table class=\\\"table\\\">\\r\\n <tr ng-repeat=\\\"i in importFiles\\\">\\r\\n <td style=\\\" text-align: left;\\\"><a ng-click=\\\"gotoImportFile(i.importFileId)\\\">{{ i.fileName }}</a></td>\\r\\n <td> {{ i.importDate }}</td>\\r\\n <td ng-show=\\\"selectedLocation\\\"> \\r\\n <button ng-click=\\\"printImportFile(i.importFileId)\\\" class=\\\"btn btn-xs\\\" style=\\\"margin-top: 0px;\\\" ng-class=\\\"{ true : 'btn-default', false : 'btn-primary' }[vm.readyForImport]\\\" type=\\\"button\\\">{{ 'order.print' | translate }}</button>\\r\\n </td>\\r\\n </tr>\\r\\n </table>\\r\\n </div>\\r\\n</div>\\r\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n .table{\\n font-size: 13px;\\n }\\n</style>\\n<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}} foo\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n\\n <div ng-if=\\\"!isLoaded && !hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div class=\\\"wgt-wrapper\\\">\\n <p class=\\\"wgt-location\\\">{{ selectedLocation }}</p>\\n <table class=\\\"table\\\">\\n <tr ng-repeat=\\\"x in widgetData\\\">\\n <td ng-if=\\\"x.article.alternativeArticleNumber !== null\\\">{{ x.article.alternativeArticleNumber}}</td>\\n <td ng-if=\\\"x.article.alternativeArticleNumber === null\\\">{{ x.article.articleNumber}}</td>\\n <td>{{ x.article.articleName}}</td>\\n <td>{{ x.quantity}}</td>\\n </tr>\\n </table>\\n\\n </div>\\n\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}}\\n </div>\\n <div class=\\\"wgt-body\\\">\\n <div class=\\\"wgt-row\\\">\\n <div class=\\\"wgt-wrapper\\\">\\n {{ widgetData.selectedLocation}}\\n <chartist class=\\\"ct-chart\\\" chartist-data=\\\"toplistChartData\\\" chartist-chart-options=\\\"toplistChartOptions\\\" chartist-chart-type=\\\"Bar\\\"></chartist>\\n </div>\\n </div>\\n\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"wgt\\\">\\n <div class=\\\"wgt-heading\\\">\\n {{ 'widget.' + item.name | translate}} {{ selectedLocation }}\\n </div>\\n <div class=\\\"wgt-body\\\" style=\\\"overflow: auto;padding-top: 0px;padding-bottom: 20px;top: 0px;bottom: 50px;\\\">\\n <div class=\\\"wgt-row\\\">\\n <div ng-if=\\\"!isLoaded && !hasError\\\">\\n <i class=\\\"fa fa-2x fa-spinner fa-spin\\\"></i>\\n </div>\\n <div class=\\\"wgt-wrapper\\\">\\n <table class=\\\"table\\\" style=\\\"width: 100%;height: 100%;\\\">\\n <thead>\\n <tr>\\n <th style=\\\"text-align: left;position:sticky; top:0px;background-color: white;\\\">{{'order.ordernumber' | translate}}</th>\\n <th style=\\\"text-align: left;position:sticky; top:0px;background-color: white;\\\">{{'order.externalordernumber' | translate}}</th>\\n <th style=\\\"text-align: left;position:sticky; top:0px;background-color: white;\\\">{{'location.name' | translate}}</th>\\n <th style=\\\"text-align: left;position:sticky; top:0px;background-color: white;\\\">{{'brand.company' | translate}}</th>\\n <th style=\\\"text-align: left;position:sticky; top:0px;background-color: white;\\\">{{'order.planneddeliverydate' | translate}}</th>\\n <th style=\\\"text-align: right;position:sticky; top:0px;background-color: white;\\\">{{'order.undeliveredQuantity' | translate}}</th>\\n </tr>\\n </thead>\\n <tbody ng-repeat=\\\"w in widgetData\\\">\\n <tr>\\n <td style=\\\"text-align: left;\\\"><a ng-click=\\\"goToOrder(w.id)\\\">{{w.orderNumber}}</a></td>\\n <td style=\\\"text-align: left;text-overflow: ellipsis; overflow:hidden; max-width:200px; white-space: nowrap;\\\"\\n uib-tooltip=\\\"{{w.orderNumberExternal}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\"\\n ><a ng-click=\\\"goToOrder(w.id)\\\">{{w.orderNumberExternal}}</a></td>\\n <td style=\\\"text-align: left;\\\">{{w.locationName}}</td>\\n <td style=\\\"text-align: left;text-overflow: ellipsis; overflow:hidden; max-width:200px; white-space: nowrap;\\\"\\n uib-tooltip=\\\"{{w.supplier.companyName}}\\\" tooltip-append-to-body=\\\"true\\\" tooltip-placement=\\\"top-left\\\"\\n >{{w.supplier.companyName}}</td>\\n <td style=\\\"text-align: left;\\\">{{w.orderPlannedDeliveryDate | date:'yyyy-MM-dd'}}</td>\\n <td style=\\\"text-align: right;\\\">\\n <span tooltip-placement=\\\"top-right\\\" uib-tooltip=\\\"{{'order.orderedQuantity' | translate}}: {{w.orderedQuantity}} - {{'order.deliveredquantity' | translate}}: {{w.deliveredQuantity}}\\\">\\n <span ng-if=\\\"(w.orderedQuantity - w.deliveredQuantity) >= 0\\\">{{ (w.orderedQuantity - w.deliveredQuantity) }}</span>\\n <span ng-if=\\\"(w.orderedQuantity - w.deliveredQuantity) < 0\\\">{{ '+ ' + (abs(w.orderedQuantity - w.deliveredQuantity)) }}</span> <!-- Handling of overdelivery -->\\n </span>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n\\n <div ng-if=\\\"hasError\\\">\\n <h4>Error loading widget.</h4>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"reload()\\\">Reload</button>\\n </div>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"load-spinner\\\" ng-class=\\\"{ 'loading': isLoading }\\\">\\n <div class=\\\"block\\\" ng-if=\\\"spinnerMessage && spinnerMessage.length > 0\\\">\\n <div class=\\\"centered\\\">{{ spinnerMessage }}</div>\\n </div>\\n <span us-spinner=\\\"{speed:2,trail:20,corners:1,radius:15, width:5, length: 10,lines:15}\\\" spinner-key=\\\"{{spinnerName}}\\\"></span>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div style=\\\"max-height: 300px; overflow: auto;\\\"> Är du säker att du vill fakturera ordern?</div>\\n </label>\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div>\\n <span>Välj faktureringsdatum:   </span>\\n \\n <span>\\n <wj-input-date\\n value=\\\"vm.deliveryDate\\\"\\n initialized=\\\"\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </span>\\n </div>\\n <!-- <div>(Ej tidigare än senaste inventering: {{ vm.earliestAllowedDeliveryDate }}):</div> -->\\n </label>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<!-- When we decide to migrate this dialog to react -->\\n<!-- <colour-change\\n article-id=\\\"vm.articleId\\\"\\n initial-article-colours=\\\"vm.articleColours\\\">\\n</colour-change> -->\\n\\n<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'article.changeColour' | translate}} </div>\\n <div class=\\\"body bg-gray\\\">\\n <div style=\\\"margin-bottom: 30px\\\">\\n <div class=\\\"col-sm-6\\\">\\n <ca-singleselect model=\\\"vm.selectedColour\\\" choices=\\\"vm.uniqueColourNames\\\" item-renderer=\\\"'colourName'\\\" mandatory=\\\"true\\\" />\\n </div>\\n <div class=\\\"col-sm-6\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\" \\n ng-model=\\\"vm.replacementColourName\\\"\\n placeholder=\\\"{{'article.newColourName' | translate}}\\\">\\n </div>\\n </div>\\n <div>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveColourChange()\\\" ng-disabled=\\\"vm.ongoingRequest || vm.replacementColourName == '' || vm.colourNameIsTheSame()\\\">{{'common.save' | translate}}</button>\\n </div>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning', 'ca-danger-dialog': vm.level === 'danger'}\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div ng-bind-html=\\\"vm.message\\\" style=\\\"max-height: 300px; overflow: auto;\\\">{{ vm.message }}</div>\\n </label>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning', 'ca-danger-dialog': vm.level === 'danger' }\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div ng-bind-html=\\\"vm.message\\\" style=\\\"max-height: 300px; overflow: auto;\\\">{{ vm.message }}</div>\\n </label>\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div>\\n <span>Välj leveransdatum</span>\\n <span>\\n <wj-input-date\\n value=\\\"vm.deliveryDate\\\"\\n initialized=\\\"vm.setWijmoInputDateLimits(s)\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </span>\\n </div>\\n <div>(Ej tidigare än senaste inventering: {{ vm.earliestAllowedDeliveryDate }}):</div>\\n </label>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<style>\\n button.time-btn{\\n width: 30px; \\n padding:0px; \\n font-weight: bold;\\n }\\n</style>\\n<div class=\\\"form-box\\\">\\n <form name =\\\"deliveryDocumentDownloadForm\\\">\\n <div class=\\\"header\\\">\\n {{'order.print.deliverydocument' | translate}}\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n <div>\\n <div style=\\\"font-size:smaller; float: right\\\">\\n <span ng-repeat=\\\"option in vm.deliveryTimeOptions\\\">\\n <button ng-click=\\\"vm.deliveryTimeType = option.value\\\" ng-style=\\\"{'background-color' : vm.deliveryTimeType === option.value ? 'khaki' : 'white'}\\\" \\n class=\\\"btn btn-default btn-sm time-btn\\\" ng-disabled=\\\"vm.isFetchingData\\\">{{option.name}}\\n </button>\\n </span>\\n </div>\\n <label for=\\\"timeamount\\\">\\n {{'order.deliverydocument.timespan' | translate}}: \\n </label>\\n <input type=\\\"number\\\" \\n name=\\\"timeamount\\\"\\n step=\\\"any\\\"\\n class=\\\"form-control enterAsTab\\\"\\n ng-model=\\\"vm.deliveryTimeProximity\\\" \\n ng-model-options=\\\"{debounce: 1000}\\\"\\n enter-as-tab\\n ng-disabled=\\\"vm.isFetchingData\\\"/>\\n </div>\\n <div class=\\\"m-b\\\" style=\\\"text-align: center; font-size:smaller\\\">\\n <i>({{'order.deliverydocument.timespanExplanation' | translate}})</i>\\n </div>\\n <div class=\\\"b-t\\\">\\n {{'order.deliverydocument.deliveries' | translate}}: \\n <ca-singleselect\\n model=\\\"vm.deliveryDate\\\"\\n choices=\\\"vm.deliveryDates\\\"\\n order-by=\\\"startDate\\\"\\n mandatory=\\\"true\\\"\\n item-renderer=\\\"'description'\\\"\\n disabled-by=\\\"vm.isFetchingData\\\"/>\\n </div>\\n </div>\\n <div class=\\\"footer\\\">\\n <div style=\\\"display: flex; align-items: space-between;\\\">\\n <button class=\\\"btn btn-default\\\" style=\\\"flex: 1\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <div style=\\\"flex: 5\\\">\\n <i class=\\\"fa fa-spinner fa-spin\\\" style=\\\"font-size:24px;text-align:center;display: inline-block; width: 100%;\\\" aria-hidden=\\\"true\\\" ng-if=\\\"vm.isFetchingData\\\"></i>\\n </div>\\n <button class=\\\"btn btn-primary\\\" style=\\\"flex: 2\\\" style=\\\"float:right;\\\" ng-click=\\\"vm.downloadDocument()\\\" ng-disabled=\\\"!vm.deliveryDate.startDate || vm.isFetchingData\\\">{{'order.print.deliverydocument' | translate}}</button>\\n </div>\\n </div>\\n </form>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\r\\n <!-- <div class=\\\"header\\\"> {{'productimport.updateprices' | translate}}</div> -->\\r\\n <div class=\\\"header\\\"> </div>\\r\\n <div class=\\\"body bg-gray\\\">\\r\\n <div class=\\\"col-lg-12\\\"> \\r\\n <label class=\\\"col-lg-12 control-label\\\">\\r\\n <div style=\\\"max-height: 300px; overflow: auto;\\\"> {{'productimport.therearerelatedprices' | translate}}</div>\\r\\n </label>\\r\\n </div>\\r\\n <div class=\\\"col-lg-12\\\"> \\r\\n <ui-select ng-model=\\\"vm.selected\\\" theme=\\\"bootstrap\\\" enter-as-tab>\\r\\n <ui-select-match placeholder=\\\"\\\">{{ $select.selected.label | translate }}</ui-select-match>\\r\\n <ui-select-choices repeat=\\\"item in vm.selectionChoices\\\">\\r\\n <span>{{ item.label | translate }}</span>\\r\\n </ui-select-choices>\\r\\n </ui-select>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"pull-right\\\">\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.confirm' | translate}}</button>\\r\\n </div>\\r\\n </div>\\r\\n <div style=\\\"clear:both;\\\"> </div>\\r\\n</div>\\r\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'common.information' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div ng-bind-html=\\\"vm.message\\\" style=\\\"max-height: 300px; overflow: auto;\\\">{{ vm.message }}</div>\\n </label>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.close' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{'common.corrections' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div style=\\\"overflow: auto;\\\">\\n <wj-flex-grid\\n initialized=\\\"vm.captureVariantsGrid(s)\\\"\\n beginning-edit=\\\"vm.beginEditing(s, e)\\\"\\n class=\\\"orders-flex-grid\\\"\\n cell-edit-ended=\\\"vm.editEnded(s, e)\\\"\\n id=\\\"variantsGrid\\\">\\n </wj-flex-grid>\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.saveChanges()\\\">{{'common.save' | translate}}</button>\\n </div>\\n\\n <div>\\n \\n </div>\\n <div>\\n \\n </div>\\n\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'order.printlabel' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-sm-9\\\">\\n <ca-singleselect model=\\\"vm.selectedDate\\\" choices=\\\"vm.selectableDates\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\" />\\n </div>\\n </div>\\n\\n <div style=\\\"clear:both; height:1px;\\\"> </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button ng-click=\\\"vm.printOrderLabels()\\\" class=\\\"btn btn-sm btn-default\\\" style=\\\"display:inline-block;\\\"> {{'order.print' | translate}} </button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <!--<div class=\\\"header\\\">{{'login.header' | translate}}</div>-->\\n <div class=\\\"header\\\">\\n <span>\\n <img src=\\\"./assets/images/CleverApps_FullLogo.png\\\" style=\\\"max-height: 192px; width:150px;\\\" class=\\\"img-full\\\" alt=\\\"{{'login.header' | translate}}\\\">\\n </span>\\n </div>\\n <div class=\\\"body bg-gray\\\">\\n <form name=\\\"form\\\" class=\\\"form-validation\\\">\\n <div class=\\\"alert alert-warning\\\" ng-show=\\\"vm.authMessage\\\">\\n {{vm.authMessage}}\\n </div>\\n <div class=\\\"alert alert-danger\\\" ng-show=\\\"vm.authError\\\">\\n {{vm.authError}}\\n </div>\\n <div class=\\\"list-group list-group-sm\\\">\\n <div class=\\\"list-group-item\\\" ng-show=\\\"vm.showTenantInputField\\\">\\n <input type=\\\"text\\\" placeholder=\\\"{{'login.tenant' | translate}}\\\" class=\\\"form-control no-border\\\" ng-model=\\\"vm.tenantName\\\">\\n </div>\\n <div class=\\\"list-group-item\\\">\\n <input type=\\\"text\\\" placeholder=\\\"{{'login.username' | translate}}\\\" class=\\\"form-control no-border\\\" ng-model=\\\"vm.user.username\\\">\\n </div>\\n <div class=\\\"list-group-item\\\">\\n <input type=\\\"password\\\" placeholder=\\\"{{'login.password' | translate}}\\\" class=\\\"form-control no-border\\\" ng-model=\\\"vm.user.password\\\">\\n </div>\\n </div>\\n <button type=\\\"submit\\\" ng-click=\\\"vm.login()\\\" class=\\\"btn btn-lg btn-primary btn-block\\\">{{'common.login' | translate}}</button>\\n <button class=\\\"btn btn-lg btn-default btn-block\\\" ng-click=\\\"vm.showDialogTimeStamping()\\\">\\n <i class=\\\"fa fa-clock-o\\\"></i>\\n </button>\\n <div style=\\\"margin-top:10px;\\\">\\n <span ng-click=\\\"vm.showDialogResetPassword()\\\" style=\\\"color:blue; font-style:italic;\\\">{{'common.resetPasswordQuestion' | translate}}</span>\\n </div>\\n </form>\\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{'stock.newinventory' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n\\n <div class=\\\"col-lg-12\\\">\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-lg-4 control-label\\\">{{'inventory.inventorydescription' | translate}}</label>\\n <div class=\\\"col-lg-8\\\">\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"\\\"\\n ng-model=\\\"vm.newInventoryRequestData.inventoryDescription\\\"/>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 control-label\\\"> {{'stock.location' | translate}}: </label>\\n <div class=\\\"col-lg-8\\\">\\n <wj-auto-complete\\n selected-index-changed=\\\"vm.locationChanged(s)\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.locations\\\"\\n display-member-path=\\\"locationName\\\"\\n is-editable=\\\"false\\\"\\n required=\\\"true\\\">\\n </wj-auto-complete>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 control-label\\\"> {{'stock.inventorytype' | translate}}: </label>\\n <div class=\\\"col-lg-8\\\">\\n <wj-auto-complete\\n selected-index-changed=\\\"vm.inventoryTypeChanged(s)\\\"\\n show-drop-down-button=\\\"true\\\"\\n items-source=\\\"vm.inventoryTypes\\\"\\n display-member-path=\\\"inventoryTypeName\\\"\\n is-editable=\\\"false\\\"\\n required=\\\"true\\\">\\n </wj-auto-complete>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 control-label\\\">{{'stock.inventorydate' | translate}}: </label>\\n <div class=\\\"col-lg-4\\\">\\n <wj-input-date\\n value=\\\"vm.newInventoryRequestData.inventoryDate\\\"\\n min=\\\"2000-01-01\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </div>\\n <div class=\\\"col-lg-4\\\">\\n <wj-input-time\\n value=\\\"vm.newInventoryRequestData.inventoryDate\\\"\\n format=\\\"HH:mm\\\"\\n step=\\\"60\\\">\\n </wj-input-time>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-12 control-label\\\"> {{'stock.maingroupitemgroupexplanation' | translate}} </label>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 control-label\\\"> {{'article.maingroup' | translate}}: </label>\\n <div class=\\\"col-sm-8\\\">\\n <ca-multiselect model=\\\"vm.newInventoryRequestData.mainGroups\\\" choices=\\\"vm.mainGroups\\\" order-by=\\\"'mainGroupDescription'\\\" placeholder=\\\"'article.addMaingroup'\\\" item-renderer=\\\"['mainGroupCode','mainGroupDescription']\\\"/>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n <label class=\\\"col-sm-4 control-label\\\"> {{'article.brand' | translate}}: </label>\\n <div class=\\\"col-sm-8\\\">\\n <ca-multiselect model=\\\"vm.newInventoryRequestData.brands\\\" choices=\\\"vm.brands\\\" order-by=\\\"'brandDescription'\\\" placeholder=\\\"'article.addBrand'\\\" item-renderer=\\\"['brandCode','brandDescription']\\\"/>\\n </div>\\n </div>\\n\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.save()\\\">{{'common.save' | translate}}</button>\\n </div>\\n\\n <div>\\n \\n </div>\\n <div>\\n \\n </div>\\n\\n </div>\\n</div>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'common.print' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-lg-12 control-label\\\">\\n <label>\\n {{ 'inventory.print.confirmPrintInventoryReport' | translate }}\\n </label>\\n\\n <ca-form-group-row label=\\\"'common.language'\\\">\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('se')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('en')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'common.printFormat'\\\">\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setPrintFormat('pdf')\\\" ng-class=\\\"{ 'btn-primary': vm.printFormat == 'pdf', 'btn-default': vm.printFormat !== 'pdf' }\\\">PDF</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setPrintFormat('csv')\\\" ng-class=\\\"{ 'btn-primary': vm.printFormat == 'csv', 'btn-default': vm.printFormat !== 'csv' }\\\">CSV</button>\\n <!-- <button class=\\\"btn\\\" ng-click=\\\"vm.setPrintFormat('xls')\\\" ng-class=\\\"{ 'btn-primary': vm.printFormat == 'xls', 'btn-default': vm.printFormat !== 'xls' }\\\">XLS</button> -->\\n </ca-form-group-row>\\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-lg-6\\\">\\n <label>{ 'common.language' | translate }:</label>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('se')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('en')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\n </div>\\n <div class=\\\"col-lg-6\\\">\\n <label>Vikt-format:</label>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setWeightSetting('g')\\\" ng-class=\\\"{ 'btn-primary': vm.weightSetting == 'g', 'btn-default': vm.weightSetting !== 'g' }\\\">Gram</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setWeightSetting('kg')\\\" ng-class=\\\"{ 'btn-primary': vm.weightSetting == 'kg', 'btn-default': vm.weightSetting !== 'kg' }\\\">Kilogram</button>\\n </div>\\n <div> </div>\\n <label class=\\\"col-lg-12 control-label\\\">\\n <!-- <div ng-bind-html=\\\"vm.message\\\">{{ vm.message }}</div> -->\\n {{ 'customerinvoice.confirmFinalizeInvoice' | translate }}\\n </label>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-bind-html=\\\"vm.message\\\">{{ vm.message }}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-lg-12 control-label\\\">\\n <ca-form-group-row label=\\\"'common.language'\\\">\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('se')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('en')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\n </ca-form-group-row>\\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-lg-12 control-label\\\">\\n <label>\\n <!-- <div ng-bind-html=\\\"vm.message\\\">{{ vm.message }}</div> -->\\n {{ 'order.print.confirmPrintPickingList' | translate }}\\n </label>\\n\\n <ca-form-group-row label=\\\"'common.language'\\\">\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('se')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'se', 'btn-default': vm.printLanguage !== 'se' }\\\">Svenska</button>\\n <button class=\\\"btn\\\" ng-click=\\\"vm.setLanguage('en')\\\" ng-class=\\\"{ 'btn-primary': vm.printLanguage == 'en', 'btn-default': vm.printLanguage !== 'en' }\\\">English</button>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'stock.print.includeStorageItems'\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeStorageLocation\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n <ca-form-group-row label=\\\"'stock.print.includeIsPhotographed'\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeIsPhotographed\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'stock.print.includePrices'\\\">\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includePrices\\\" />\\n <i></i>\\n </label>\\n </ca-form-group-row>\\n\\n <ca-form-group-row label=\\\"'stock.groupinglevel'\\\">\\n <div class=\\\"col-sm-4\\\" style=\\\"padding-left: 0px;\\\">\\n <ca-singleselect model=\\\"vm.selectedGrouping\\\" choices=\\\"vm.groupings\\\" order-by=\\\"'id'\\\" item-renderer=\\\"'description'\\\" mandatory=\\\"true\\\"/>\\n </div>\\n </ca-form-group-row>\\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'common.filter' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <!-- <div style=\\\"text-align: right; margin-bottom: 10px;\\\">\\n <button ng-click=\\\"vm.clearFilter()\\\" class=\\\"btn btn-sm\\\" style=\\\"margin-right: 10px;\\\">{{ 'purchaseorderanalysis.resetfilter' | translate }}</button>\\n </div> -->\\n\\n <table style=\\\"width: 100%;\\\">\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{'purchaseorderanalysis.supplier' | translate}}:</td>\\n <td>\\n <ui-select ng-model=\\\"vm.selectedSupplier\\\" theme=\\\"bootstrap\\\" class=\\\"fixedMinWidth enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected.companyName}}</ui-select-match>\\n <ui-select-choices repeat=\\\"supplier in vm.suppliers | filter:{'companyName': $select.search}\\\">\\n <span>{{ supplier.companyName }}</span>\\n </ui-select-choices>\\n </ui-select> \\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{'common.resultsPerPage' | translate}}:</td>\\n <td>\\n <!-- <ca-singleselect model=\\\"vm.selectedNumberOfResultsPerPage\\\" choices=\\\"vm.numberOfResultsPerPage\\\" /> -->\\n <ui-select ng-model=\\\"vm.selectedNumberOfResultsPerPage\\\" theme=\\\"bootstrap\\\" class=\\\"fixedMinWidth enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{$select.selected}}</ui-select-match>\\n <ui-select-choices repeat=\\\"num in vm.numberOfResultsPerPage\\\">\\n <span>{{ num }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'article.articlecollection' | translate }}:</td>\\n <td>\\n <ui-select ng-model=\\\"vm.selectedArticleCollection\\\" ng-disabled=\\\"vm.showAllCollections\\\" theme=\\\"bootstrap\\\" class=\\\"fixedMinWidth enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{ $select.selected.collectionCode + ': ' + $select.selected.collectionDescription }}</ui-select-match>\\n <ui-select-choices repeat=\\\"articleCollection in vm.articleCollections | filter:{'collectionCode': $select.search}\\\">\\n <span>{{ articleCollection.collectionCode + ': ' + articleCollection.collectionDescription }}</span>\\n </ui-select-choices>\\n </ui-select> \\n <div>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showAllCollections\\\" />\\n <i></i>\\n </label>\\n {{ 'stock.showall' | translate }}\\n </div>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'article.maingroup' | translate }}:</td>\\n <td>\\n <ui-select ng-model=\\\"vm.selectedMainGroup\\\" theme=\\\"bootstrap\\\" class=\\\"fixedMinWidth enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{ $select.selected.mainGroupCode }} {{ $select.selected.mainGroupDescription }}</ui-select-match>\\n <ui-select-choices repeat=\\\"mainGroup in vm.mainGroups\\\">\\n <span>{{ mainGroup.mainGroupCode }} {{ mainGroup.mainGroupDescription }}</span>\\n </ui-select-choices>\\n </ui-select>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ vm.showWeeks ? 'purchaseorderanalysis.weeksLeftInStock' : 'purchaseorderanalysis.monthsLeftInStock' | translate }}</td>\\n <td>\\n <ui-select ng-model=\\\"vm.selectedWeekLimit\\\" theme=\\\"bootstrap\\\" class=\\\"fixedMinWidth enterAsTab\\\" enter-as-tab>\\n <ui-select-match placeholder=\\\"\\\">{{ vm.showWeeks ? $select.selected : $select.selected / 4 }} {{ vm.showWeeks ? 'purchaseorderanalysis.weeksLeft' : 'purchaseorderanalysis.monthsLeft' | translate }}</ui-select-match>\\n <ui-select-choices repeat=\\\"week in vm.weekLimit\\\">\\n <span>{{ vm.showWeeks ? week : week / 4 }} {{ vm.showWeeks ? 'purchaseorderanalysis.weeksLeft' : 'purchaseorderanalysis.monthsLeft' | translate }}</span>\\n </ui-select-choices>\\n </ui-select>\\n <div>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.keepProductTogether\\\" ng-change=\\\"vm.filterAnalysisRows()\\\" />\\n <i></i>\\n </label>\\n {{ 'purchaseorderanalysis.keepProductTogether' | translate }}\\n </div>\\n </td>\\n </tr>\\n <tr>\\n <td colspan=\\\"3\\\"> </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'purchaseorderanalysis.showWeeks' | translate }}</td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showWeeks\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'purchaseorderanalysis.groupByProduct' | translate }}</td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.showProduct\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'purchaseorderanalysis.showInactive' | translate }} {{ 'article.articles' | translate }}</td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeInactive\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n </table>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.filter' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\">{{'user.resetPasswordTitle' | translate}} <button class=\\\"btn btn-default pull-right\\\" ng-click=\\\"vm.closeModal()\\\"> X </button> </div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showPage === 0\\\">\\n <form name=\\\"resetPasswordForm\\\">\\n <div class=\\\"col-lg-12\\\">\\n <span style=\\\"font-size:2em; float:left;\\\">1.</span>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n {{'user.resetPasswordInstruction' | translate}}\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" ng-model=\\\"vm.currentUser.tenantName\\\" class=\\\"form-control\\\" placeholder=\\\"{{'login.tenant' | translate}}\\\">\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" ng-model=\\\"vm.usernameOrEmail\\\" class=\\\"form-control\\\" placeholder=\\\"{{'address.usernameOrEmail' | translate}}\\\" />\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default pull-right\\\" ng-disabled=\\\"vm.clickedResetPasswordButton === true\\\" ng-click=\\\"vm.resetPassword()\\\"> {{'user.resetPassword' | translate}} </button>\\n </div>\\n </form>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showPage === 1\\\">\\n <form name=\\\"resetPasswordConfirmForm\\\">\\n <div class=\\\"col-lg-12\\\">\\n <span style=\\\"font-size:2em; float:left;\\\">2.</span>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n {{'user.resetPasswordConfirmInstruction' | translate}}\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n \\n <div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" disabled ng-model=\\\"vm.currentUser.tenantName\\\" class=\\\"form-control\\\" placeholder=\\\"{{'login.tenant' | translate}}\\\">\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" ng-model=\\\"vm.currentUser.securityCode\\\" class=\\\"form-control\\\" placeholder=\\\"{{'login.securityCode' | translate}}\\\">\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" ng-model=\\\"vm.currentUser.newPassword\\\" class=\\\"form-control\\\" placeholder=\\\"{{'login.newPassword' | translate}}\\\">\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <input type=\\\"text\\\" ng-model=\\\"vm.currentUser.confirmPassword\\\" class=\\\"form-control\\\" placeholder=\\\"{{'login.confirmPassword' | translate}}\\\">\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default pull-right\\\" ng-click=\\\"vm.confirmNewPassword()\\\"> {{'user.confirmNewPassword' | translate}} </button>\\n </div>\\n </form>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n </div>\\n <div class=\\\"col-lg-12\\\" ng-show=\\\"vm.showPage === 2\\\">\\n <div class=\\\"col-lg-12\\\">\\n <span style=\\\"font-size:1.5em;\\\">3.</span>\\n </div>\\n <div class=\\\"col-lg-12\\\">\\n {{'user.resetPasswordFinalInstruction' | translate}}\\n </div>\\n\\n <div class=\\\"col-lg-12\\\">\\n \\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n </div>\\n <div class=\\\"form-group row\\\">\\n \\n </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\"> {{'common.filter' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <!-- <div style=\\\"text-align: right; margin-bottom: 10px;\\\">\\n <button ng-click=\\\"vm.clearFilter()\\\" class=\\\"btn btn-sm\\\" style=\\\"margin-right: 10px;\\\">{{ 'purchaseorderanalysis.resetfilter' | translate }}</button>\\n </div> -->\\n\\n <table style=\\\"width: 100%;\\\">\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{'salestotal.periodStart' | translate}}:</td>\\n <td>\\n <wj-input-date class=\\\"col-sm-12\\\" id=\\\"wjStartDate\\\"\\n value=\\\"vm.periodStartDate\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{'salestotal.periodEnd' | translate}}:</td>\\n <td>\\n <wj-input-date class=\\\"col-sm-12\\\" id=\\\"wjEndDate\\\"\\n value=\\\"vm.periodEndDate\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'salestotal.store' | translate }}:</td>\\n <td>\\n <ca-singleselect model=\\\"vm.selectedLocation\\\" choices=\\\"vm.locations\\\" item-renderer=\\\"['locationName']\\\"></ca-singleselect>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'salestotal.showApproved' | translate }}:</td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeApproved\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n <tr>\\n <td style=\\\"vertical-align: top;\\\">{{ 'salestotal.showForProcessing' | translate }}:</td>\\n <td>\\n <label class=\\\"i-checks m-t-xs\\\">\\n <input type=\\\"checkbox\\\" namef=\\\"a\\\" ng-model=\\\"vm.includeForProcessing\\\" />\\n <i></i>\\n </label>\\n </td>\\n </tr>\\n </table>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.filter' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\">\\n <div ng-bind-html=\\\"vm.message\\\" style=\\\"text-align: center;max-height: 300px; overflow: auto;\\\">{{ vm.message }}</div>\\n </label>\\n\\n <div style=\\\"margin-left:43%; width:14%\\\" ng-if=\\\"vm.fieldType === 'number'\\\">\\n <input type=\\\"number\\\"\\n step=\\\"1\\\"\\n min=\\\"{{vm.minValue}}\\\"\\n max=\\\"{{vm.maxValue}}\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"vm.numberValue\\\">\\n </div>\\n <div style=\\\"width:100px\\\" ng-if=\\\"vm.fieldType === 'date'\\\">\\n <wj-input-date\\n value=\\\"vm.dateValue\\\"\\n min=\\\"{{vm.minValue}}\\\"\\n max=\\\"{{vm.maxValue}}\\\"\\n format=\\\"yyyy-MM-dd\\\">\\n </wj-input-date>\\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.no' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.closeModal(true)\\\">{{'common.yes' | translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'common.confirm' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <label class=\\\"col-lg-12 control-label\\\">\\n {{ vm.message }}\\n </label>\\n <div>\\n <ca-address address=\\\"vm.address\\\" is-editing=\\\"true\\\" show-tools=\\\"false\\\"></ca-address>\\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.save()\\\">{{'common.save'| translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<div class=\\\"form-box\\\">\\n <div class=\\\"header\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\"> {{'order.editnotes' | translate}}</div>\\n <div class=\\\"body bg-gray\\\">\\n <div class=\\\"col-lg-12\\\" style=\\\"max-width:1178px;border: 1px solid #eaeff0; margin: 20px; padding: 20px\\\">\\n <label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\"> {{'order.note'| translate}}: </label>\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'order.note' | translate}}\\\"\\n ng-model=\\\"vm.note\\\"/>\\n <label style=\\\"font-weight:bold; vertical-align: text-top; padding-right:10px;\\\">{{'order.externalordernumber' | translate}}:</label>\\n <input class=\\\"editable-input form-control ng-pristine ng-valid ng-touched\\\"\\n type=\\\"text\\\"\\n placeholder=\\\"{{'order.externalordernumber' | translate}}\\\"\\n ng-model=\\\"vm.orderNumberExternal\\\"/>\\n </div>\\n </div>\\n\\n <div class=\\\"pull-right\\\">\\n <div class=\\\"col-lg-12\\\">\\n <button class=\\\"btn btn-default\\\" ng-click=\\\"vm.closeModal(false)\\\">{{'common.cancel' | translate}}</button>\\n <button class=\\\"btn btn-primary\\\" ng-class=\\\"{ 'ca-warning-dialog': vm.level === 'warning' }\\\" ng-click=\\\"vm.save()\\\">{{'common.save'| translate}}</button>\\n </div>\\n </div>\\n <div style=\\\"clear:both;\\\"> </div>\\n</div>\\n\";\n// Exports\nmodule.exports = code;","// extracted by mini-css-extract-plugin\nexport {};","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","var map = {\n\t\"./app/app.js\": 1842,\n\t\"./app/bridge/components.js\": 98350,\n\t\"./app/core/config/config.js\": 28356,\n\t\"./app/core/core.js\": 87530,\n\t\"./app/core/init/angularData.js\": 38614,\n\t\"./app/core/init/init.js\": 14348,\n\t\"./app/core/values/values.js\": 20756,\n\t\"./app/core/versionService.js\": 35370,\n\t\"./app/login/auth.api.js\": 65559,\n\t\"./app/login/login.module.js\": 24594,\n\t\"./app/main/analysis/analysis.api.js\": 11880,\n\t\"./app/main/analysis/analysis.module.js\": 21074,\n\t\"./app/main/analysis/pdfTemplate/pdfTemplate.js\": 87941,\n\t\"./app/main/analysis/reports/reports.js\": 29297,\n\t\"./app/main/analysis/userReports/userReport.component.js\": 16335,\n\t\"./app/main/analysis/userReports/userReports.js\": 48705,\n\t\"./app/main/base/accounts/account/account.js\": 63749,\n\t\"./app/main/base/accounts/accounts.api.js\": 82006,\n\t\"./app/main/base/accounts/accounts.module.js\": 81720,\n\t\"./app/main/base/articlecollections/articlecollection/articlecollection.js\": 65862,\n\t\"./app/main/base/articlecollections/articlecollections.api.js\": 52028,\n\t\"./app/main/base/articlecollections/articlecollections.module.js\": 55326,\n\t\"./app/main/base/articletypes/articletype/articletype.js\": 14882,\n\t\"./app/main/base/articletypes/articletypes.api.js\": 79364,\n\t\"./app/main/base/articletypes/articletypes.module.js\": 82134,\n\t\"./app/main/base/base.module.js\": 31804,\n\t\"./app/main/base/countries/countries.api.js\": 99580,\n\t\"./app/main/base/countries/countries.module.js\": 51582,\n\t\"./app/main/base/countries/country/country.js\": 57059,\n\t\"./app/main/base/currencies/currencies.api.js\": 61980,\n\t\"./app/main/base/currencies/currencies.module.js\": 89854,\n\t\"./app/main/base/currencies/currency/currency.js\": 37718,\n\t\"./app/main/base/customergroups/customergroup/customergroup.js\": 27741,\n\t\"./app/main/base/customergroups/customergroups.api.js\": 83926,\n\t\"./app/main/base/customergroups/customergroups.module.js\": 26840,\n\t\"./app/main/base/dashboard/dashboard.api.js\": 33468,\n\t\"./app/main/base/dashboard/dashboard.module.js\": 41950,\n\t\"./app/main/base/deliveryplanningtemplates/deliveryplanningtemplate/deliveryplanningtemplate.js\": 39461,\n\t\"./app/main/base/deliveryplanningtemplates/deliveryplanningtemplates.api.js\": 88952,\n\t\"./app/main/base/deliveryplanningtemplates/deliveryplanningtemplates.module.js\": 46850,\n\t\"./app/main/base/deliveryterms/deliveryterm/deliveryterm.js\": 90508,\n\t\"./app/main/base/deliveryterms/deliveryterms.api.js\": 74148,\n\t\"./app/main/base/deliveryterms/deliveryterms.module.js\": 98518,\n\t\"./app/main/base/invoicetypes/invoicetype/invoicetype.js\": 20961,\n\t\"./app/main/base/invoicetypes/invoicetypes.api.js\": 82342,\n\t\"./app/main/base/invoicetypes/invoicetypes.module.js\": 10472,\n\t\"./app/main/base/ordercollections/ordercollection/ordercollection.js\": 99148,\n\t\"./app/main/base/ordercollections/ordercollections.api.js\": 78316,\n\t\"./app/main/base/ordercollections/ordercollections.module.js\": 79310,\n\t\"./app/main/base/ordertypes/ordertype/ordertype.js\": 91240,\n\t\"./app/main/base/ordertypes/ordertypes.api.js\": 17752,\n\t\"./app/main/base/ordertypes/ordertypes.module.js\": 15650,\n\t\"./app/main/base/paymentterms/paymentterm/paymentterm.js\": 8400,\n\t\"./app/main/base/paymentterms/paymentterms.api.js\": 31468,\n\t\"./app/main/base/paymentterms/paymentterms.module.js\": 61518,\n\t\"./app/main/base/paymenttypes/paymenttype/paymenttype.js\": 7778,\n\t\"./app/main/base/paymenttypes/paymenttypes.api.js\": 70724,\n\t\"./app/main/base/paymenttypes/paymenttypes.module.js\": 60310,\n\t\"./app/main/base/returnreasons/returnreason/returnreason.js\": 36096,\n\t\"./app/main/base/returnreasons/returnreasons.api.js\": 5988,\n\t\"./app/main/base/returnreasons/returnreasons.module.js\": 42614,\n\t\"./app/main/base/shippingmethods/shippingmethod/shippingmethod.js\": 88325,\n\t\"./app/main/base/shippingmethods/shippingmethods.api.js\": 97268,\n\t\"./app/main/base/shippingmethods/shippingmethods.module.js\": 66214,\n\t\"./app/main/base/vats/vat/vat.js\": 98177,\n\t\"./app/main/base/vats/vats.api.js\": 43302,\n\t\"./app/main/base/vats/vats.module.js\": 21896,\n\t\"./app/main/budget/budget.module.js\": 20116,\n\t\"./app/main/budget/budgets.api.js\": 85557,\n\t\"./app/main/budget/budgets/budgets.js\": 38590,\n\t\"./app/main/budget/budgets/components/budgetImport.component.js\": 61396,\n\t\"./app/main/contacts/bulkoperation/bulkoperation.js\": 11866,\n\t\"./app/main/contacts/companies/companies.api.js\": 52748,\n\t\"./app/main/contacts/companies/companies.module.js\": 46542,\n\t\"./app/main/contacts/companies/company/company.js\": 83854,\n\t\"./app/main/contacts/components/addressform.component.js\": 38357,\n\t\"./app/main/contacts/components/contactinfoform.component.js\": 36153,\n\t\"./app/main/contacts/components/newaddressform.component.js\": 49941,\n\t\"./app/main/contacts/components/newcontactinfoform.component.js\": 49273,\n\t\"./app/main/contacts/contacts.js\": 15456,\n\t\"./app/main/contacts/locations/location/location.js\": 44133,\n\t\"./app/main/contacts/locations/locations.api.js\": 72528,\n\t\"./app/main/contacts/locations/locations.module.js\": 49962,\n\t\"./app/main/contacts/roles/role/role.js\": 84598,\n\t\"./app/main/contacts/roles/roles.api.js\": 82480,\n\t\"./app/main/contacts/roles/roles.module.js\": 60906,\n\t\"./app/main/contacts/users/user/user.js\": 26929,\n\t\"./app/main/contacts/users/users.api.js\": 19672,\n\t\"./app/main/contacts/users/users.module.js\": 84194,\n\t\"./app/main/customerinvoice/customerinvoice.api.js\": 41638,\n\t\"./app/main/customerinvoice/customerinvoice.module.js\": 28904,\n\t\"./app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicecontent.cmp.js\": 82788,\n\t\"./app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicerows.cmp.js\": 58036,\n\t\"./app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicesearch.cmp.js\": 81105,\n\t\"./app/main/customerinvoice/customerinvoicesearch/customerinvoicerowsearch.js\": 64778,\n\t\"./app/main/customerinvoice/customerinvoicesearch/customerinvoicesearch.js\": 85988,\n\t\"./app/main/customerorder/customerorder.api.js\": 39906,\n\t\"./app/main/customerorder/customerorder.module.js\": 16076,\n\t\"./app/main/customerorder/customerordersearch/customerordercontent/customerordercontent.cmp.js\": 81966,\n\t\"./app/main/customerorder/customerordersearch/customerordercontent/customerorderdeliveries.cmp.js\": 35587,\n\t\"./app/main/customerorder/customerordersearch/customerordercontent/customerorderpayments.cmp..js\": 85468,\n\t\"./app/main/customerorder/customerordersearch/customerordercontent/customerorderrefunds.cmp.js\": 12720,\n\t\"./app/main/customerorder/customerordersearch/customerordercontent/customerorderrows.cmp.js\": 61426,\n\t\"./app/main/customerorder/customerordersearch/customerordercontent/customerordersearch.cmp.js\": 74643,\n\t\"./app/main/customerorder/customerordersearch/customerordersearch.js\": 53243,\n\t\"./app/main/discountManagement/component/discountMultiselect.component.js\": 54757,\n\t\"./app/main/discountManagement/discountManagement.module.js\": 50350,\n\t\"./app/main/discountManagement/discounts/discount/discount.js\": 71504,\n\t\"./app/main/discountManagement/discounts/discounts.api.js\": 19605,\n\t\"./app/main/discountManagement/discounts/discounts.module.js\": 74621,\n\t\"./app/main/economy/economy.api.js\": 43174,\n\t\"./app/main/economy/economy.module.js\": 92040,\n\t\"./app/main/economy/siefileexport/siefileexport.js\": 45243,\n\t\"./app/main/main.js\": 21378,\n\t\"./app/main/order/order.module.js\": 49464,\n\t\"./app/main/order/orderDialogs/orderRowCommentDialog/orderRowCommentDialog.js\": 32495,\n\t\"./app/main/order/orderService.js\": 70321,\n\t\"./app/main/order/orderarticles.api.js\": 87817,\n\t\"./app/main/order/orderdelivery/components/barcodescanninginput.component.js\": 78950,\n\t\"./app/main/order/orderdelivery/components/orderarticles.component.js\": 71886,\n\t\"./app/main/order/orderdelivery/components/ordermetadata.component.js\": 25736,\n\t\"./app/main/order/orderdelivery/components/orderrowsdelivery.component.js\": 90088,\n\t\"./app/main/order/orderdelivery/components/orderrowsedit.component.js\": 42004,\n\t\"./app/main/order/orderdelivery/components/orderscannernavigation.component.js\": 26735,\n\t\"./app/main/order/orderdelivery/components/ordertotals.component.js\": 15966,\n\t\"./app/main/order/orderdelivery/orderdelivery.js\": 93819,\n\t\"./app/main/order/orderdeliveryplanning/editDeliveryPlanningDialog/editDeliveryPlanningDialog.js\": 85237,\n\t\"./app/main/order/orderdeliveryplanning/orderdeliveryplanning.js\": 6599,\n\t\"./app/main/order/orders.api.js\": 86777,\n\t\"./app/main/order/ordersearch/components/orderarticledeliveries.component.js\": 78665,\n\t\"./app/main/order/ordersearch/components/orderarticlerows.component.js\": 18104,\n\t\"./app/main/order/ordersearch/components/ordercontent.component.js\": 6858,\n\t\"./app/main/order/ordersearch/components/ordersearchresult.component.js\": 76260,\n\t\"./app/main/order/ordersearch/ordersearch.js\": 72055,\n\t\"./app/main/order/purchaseorder/components/articlessummarygrid.component.js\": 84855,\n\t\"./app/main/order/purchaseorder/components/opentobuygrid.component.js\": 70845,\n\t\"./app/main/order/purchaseorder/components/purchaseorderdistributiongrid.component.js\": 32393,\n\t\"./app/main/order/purchaseorder/components/purchaseorderextraoptions.component.js\": 42471,\n\t\"./app/main/order/purchaseorder/components/singlearticlesummarygrid.component.js\": 1624,\n\t\"./app/main/order/purchaseorder/purchaseorder.js\": 28843,\n\t\"./app/main/order/purchaseorderanalysis.api.js\": 70805,\n\t\"./app/main/order/purchaseorderanalysis/purchaseorderanalysis.js\": 73675,\n\t\"./app/main/order/purchaseordersearch/purchaseordersearch.js\": 55591,\n\t\"./app/main/order/reports/intrastatReports.js\": 40523,\n\t\"./app/main/order/reports/rms2Reports.api.js\": 72329,\n\t\"./app/main/order/reports/transitReports.js\": 34240,\n\t\"./app/main/order/rms2Orders.api.js\": 29253,\n\t\"./app/main/product/articleimport/articleimport.js\": 90176,\n\t\"./app/main/product/articles/article/article.js\": 38516,\n\t\"./app/main/product/articles/article/components/articlevariantsgrid.component.js\": 37166,\n\t\"./app/main/product/articles/article/components/articlevariantsgridcell.component.js\": 66690,\n\t\"./app/main/product/articles/articleAddNewArticleVariantDialog/articleAddNewArticleVariantDialog.js\": 55616,\n\t\"./app/main/product/articles/articleChangeItemGroupDialog/articleChangeItemGroupDialog.js\": 68654,\n\t\"./app/main/product/articles/articleChangeVariantDetailDialog/articleChangeVariantDetailDialog.js\": 23958,\n\t\"./app/main/product/articles/articleLabelsPrintDialog/articleLabelsPrintDialog.js\": 82226,\n\t\"./app/main/product/articles/articleNewIntrastatDialog/articleNewIntrastatDialog.js\": 87740,\n\t\"./app/main/product/articles/articles.js\": 56416,\n\t\"./app/main/product/articles/pricelistmanagement/pricelistmanagement.js\": 72776,\n\t\"./app/main/product/articles/pricelistmgmt.js\": 62967,\n\t\"./app/main/product/brands/brand/brand.js\": 6501,\n\t\"./app/main/product/brands/brands.api.js\": 6064,\n\t\"./app/main/product/brands/brands.module.js\": 14538,\n\t\"./app/main/product/businessareas/businessarea/businessarea.js\": 35835,\n\t\"./app/main/product/businessareas/businessareas.api.js\": 23346,\n\t\"./app/main/product/businessareas/businessareas.module.js\": 74204,\n\t\"./app/main/product/components/articlesearchmultiselect.component.js\": 36728,\n\t\"./app/main/product/components/itemGroupInline.component.js\": 65722,\n\t\"./app/main/product/departments/department/department.js\": 38810,\n\t\"./app/main/product/departments/departments.api.js\": 86878,\n\t\"./app/main/product/departments/departments.module.js\": 71472,\n\t\"./app/main/product/importeditor/importeditor.js\": 45034,\n\t\"./app/main/product/importfileslist/importfileslist.js\": 42012,\n\t\"./app/main/product/intrastats/intrastat.api.js\": 93747,\n\t\"./app/main/product/intrastats/intrastat/intrastat.js\": 92140,\n\t\"./app/main/product/intrastats/intrastats.module.js\": 63928,\n\t\"./app/main/product/maingroups/maingroup/maingroup.js\": 16362,\n\t\"./app/main/product/maingroups/maingroups.api.js\": 33926,\n\t\"./app/main/product/maingroups/maingroups.module.js\": 12296,\n\t\"./app/main/product/pricelisteditor/components/articleselection.component.js\": 14196,\n\t\"./app/main/product/pricelisteditor/components/pricelistsgrid.component.js\": 58794,\n\t\"./app/main/product/pricelisteditor/components/pricerangeinput.component.js\": 41566,\n\t\"./app/main/product/pricelisteditor/components/volumediscountrule.component.js\": 98375,\n\t\"./app/main/product/pricelisteditor/pricelisteditor.js\": 92740,\n\t\"./app/main/product/pricelists/pricelist/pricelist.js\": 20537,\n\t\"./app/main/product/pricelists/pricelists.api.js\": 61716,\n\t\"./app/main/product/pricelists/pricelists.module.js\": 9222,\n\t\"./app/main/product/product.module.js\": 54960,\n\t\"./app/main/product/productService.js\": 31033,\n\t\"./app/main/product/productimport/components/filelist.component.js\": 10308,\n\t\"./app/main/product/productimport/components/mapordate.component.js\": 68213,\n\t\"./app/main/product/productimport/components/maporselect.component.js\": 71049,\n\t\"./app/main/product/productimport/productimport.js\": 27656,\n\t\"./app/main/product/productimporteditor/components/importeditorsummary.component.js\": 42333,\n\t\"./app/main/product/productimporteditor/components/importeditortextdropdown.component.js\": 93465,\n\t\"./app/main/product/productimporteditor/components/importeditorvalidationerrors.component.js\": 41955,\n\t\"./app/main/product/productimporteditor/components/importrowsgrid.component.js\": 68067,\n\t\"./app/main/product/productimporteditor/productimporteditor.js\": 74352,\n\t\"./app/main/product/products.api.js\": 50385,\n\t\"./app/main/product/psychologicalprices/psychologicalprice/psychologicalprice.js\": 11864,\n\t\"./app/main/product/psychologicalprices/psychologicalprices.api.js\": 55226,\n\t\"./app/main/product/psychologicalprices/psychologicalprices.module.js\": 98900,\n\t\"./app/main/product/rms2Products.api.js\": 23309,\n\t\"./app/main/product/saleschannels/saleschannel/saleschannel.js\": 22315,\n\t\"./app/main/product/saleschannels/saleschannels.api.js\": 53750,\n\t\"./app/main/product/saleschannels/saleschannels.module.js\": 16920,\n\t\"./app/main/product/subcategories/subcategories.api.js\": 52574,\n\t\"./app/main/product/subcategories/subcategories.module.js\": 69104,\n\t\"./app/main/product/subcategories/subcategory/subcategory.js\": 61577,\n\t\"./app/main/product/variantgroups.api.js\": 57504,\n\t\"./app/main/product/variantgroups/variantgroup/variantgroup.js\": 92900,\n\t\"./app/main/product/variantgroups/variantgroups.js\": 21676,\n\t\"./app/main/product/variants.api.js\": 19291,\n\t\"./app/main/product/variants/variant/variant.js\": 27489,\n\t\"./app/main/product/variants/variants.js\": 66130,\n\t\"./app/main/product/volumediscounts/volumediscount/volumediscount.js\": 90710,\n\t\"./app/main/product/volumediscounts/volumediscounts.api.js\": 38370,\n\t\"./app/main/product/volumediscounts/volumediscounts.module.js\": 55660,\n\t\"./app/main/resellerorder/genericcomponents/readonlyorderheader.cmp.js\": 74101,\n\t\"./app/main/resellerorder/genericcomponents/resellerorderbreadcrumbs.cmp.js\": 46664,\n\t\"./app/main/resellerorder/genericcomponents/resellerordersearch.cmp.js\": 65820,\n\t\"./app/main/resellerorder/genericcomponents/resellerreturnorderbreadcrumbs.cmp.js\": 19918,\n\t\"./app/main/resellerorder/genericcomponents/scannernavigation.cmp.js\": 65810,\n\t\"./app/main/resellerorder/resellerorder.module.js\": 28172,\n\t\"./app/main/resellerorder/resellerordercreate/components/createorderheader.cmp.js\": 41951,\n\t\"./app/main/resellerorder/resellerordercreate/resellerordercreate.js\": 37329,\n\t\"./app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createDeliveryDate.cmp.js\": 42084,\n\t\"./app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createVariantDeliveryDateDialog.js\": 24613,\n\t\"./app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createVariantFulfillmentDialog.js\": 1578,\n\t\"./app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createfulfillmentvariants.cmp.js\": 60025,\n\t\"./app/main/resellerorder/resellerorderfulfillment/createfulfillment/createfulfillment.js\": 11640,\n\t\"./app/main/resellerorder/resellerorderfulfillment/manageorders/manageorders.js\": 71090,\n\t\"./app/main/resellerorder/resellerorderfulfillment/manageproducts/manageproducts.js\": 32672,\n\t\"./app/main/resellerorder/resellerordermodify/components/addlineitems.cmp.js\": 95069,\n\t\"./app/main/resellerorder/resellerordermodify/components/articlelist_amount.component.js\": 63710,\n\t\"./app/main/resellerorder/resellerordermodify/components/articlelist_overview.component.js\": 87253,\n\t\"./app/main/resellerorder/resellerordermodify/components/articlelist_quantity.component.js\": 18931,\n\t\"./app/main/resellerorder/resellerordermodify/components/resellerorderproductsearchmultiselect.component.js\": 517,\n\t\"./app/main/resellerorder/resellerordermodify/resellerordermodify.js\": 4581,\n\t\"./app/main/resellerorder/resellerordersearch/resellerordersearch.js\": 21317,\n\t\"./app/main/resellerorder/resellerorderservice.api.js\": 33771,\n\t\"./app/main/resellerorder/resellerorderview/components/resellerordercontent.cmp.js\": 90350,\n\t\"./app/main/resellerorder/resellerorderview/components/resellerorderrows.cmp.js\": 46290,\n\t\"./app/main/resellerorder/resellerorderview/resellerorderview.js\": 91105,\n\t\"./app/main/resellerorder/resellerreturnordercreate/components/createreturnorderheader.cmp.js\": 28847,\n\t\"./app/main/resellerorder/resellerreturnordercreate/resellerreturnordercreate.js\": 84789,\n\t\"./app/main/resellerorder/resellerreturnordermodify/components/addlineitems.cmp.js\": 53707,\n\t\"./app/main/resellerorder/resellerreturnordermodify/components/articlelist_amount.component.js\": 72572,\n\t\"./app/main/resellerorder/resellerreturnordermodify/components/articlelist_overview.component.js\": 89855,\n\t\"./app/main/resellerorder/resellerreturnordermodify/components/articlelist_quantity.component.js\": 14965,\n\t\"./app/main/resellerorder/resellerreturnordermodify/components/resellerorderproductsearchmultiselect.component.js\": 10791,\n\t\"./app/main/resellerorder/resellerreturnordermodify/resellerreturnordermodify.js\": 6013,\n\t\"./app/main/sales/sales.api.js\": 27478,\n\t\"./app/main/sales/sales.module.js\": 99160,\n\t\"./app/main/sales/salestotal/salestotal.js\": 21849,\n\t\"./app/main/stock/articles/article/article.js\": 20051,\n\t\"./app/main/stock/articles/articleStocksHistory/articleStocksHistory.component.js\": 25946,\n\t\"./app/main/stock/articles/articleStocksHistory/articleStocksHistory.dialog.js\": 56933,\n\t\"./app/main/stock/articles/articles.js\": 97365,\n\t\"./app/main/stock/articles/modelinventory/modelinventory.js\": 83527,\n\t\"./app/main/stock/inventorying.api.js\": 15858,\n\t\"./app/main/stock/pickinglist/stockPickingList.js\": 5625,\n\t\"./app/main/stock/reports/saleThroughputReports.js\": 88210,\n\t\"./app/main/stock/reports/soldStockReports.js\": 69199,\n\t\"./app/main/stock/reports/stockValueReports.js\": 44404,\n\t\"./app/main/stock/scannerinventorying/inventory/articledetails/articledetails.js\": 72317,\n\t\"./app/main/stock/scannerinventorying/inventory/inventory.js\": 90856,\n\t\"./app/main/stock/scannerinventorying/scannerinventorying.js\": 1449,\n\t\"./app/main/stock/stock.api.js\": 28750,\n\t\"./app/main/stock/stock.module.js\": 89376,\n\t\"./app/main/stocklogistics/articletransfer/articletransfer.js\": 93826,\n\t\"./app/main/stocklogistics/eshopreplenishment/eshopreplenishment.js\": 77646,\n\t\"./app/main/stocklogistics/masshandlingorderingpoints/masshandlingorderingpoints.js\": 55188,\n\t\"./app/main/stocklogistics/orderingpoints/autoMonthMultiplierDialog.js\": 64277,\n\t\"./app/main/stocklogistics/orderingpoints/orderingpoints.js\": 95702,\n\t\"./app/main/stocklogistics/stocklogistics.api.js\": 47318,\n\t\"./app/main/stocklogistics/stocklogistics.module.js\": 5016,\n\t\"./app/main/support/support.api.js\": 68814,\n\t\"./app/main/support/support.module.js\": 24864,\n\t\"./app/main/support/supportcases/addvariantdetail/addvariantdetail.js\": 28339,\n\t\"./app/main/support/supportcases/changebarcode/changebarcode.js\": 64479,\n\t\"./app/main/support/supportcases/changebarcodes/changebarcodes.js\": 67179,\n\t\"./app/main/support/supportcases/changeisgroupsalearticle/changeisgroupsalearticle.js\": 3265,\n\t\"./app/main/support/supportcases/changeitemgroup/changeitemgroup.js\": 23319,\n\t\"./app/main/support/supportcases/changevariantdetail/changevariantdetail.js\": 94963,\n\t\"./app/main/support/supportcases/createlocation/createlocation.js\": 84439,\n\t\"./app/main/support/supportcases/deleteproduct/deleteproduct.js\": 70807,\n\t\"./app/main/support/supportcases/mergeproducts/mergeproducts.js\": 90555,\n\t\"./app/main/support/supportcases/missingreceipts/missingreceipts.js\": 42839,\n\t\"./app/main/support/supportcases/originalbalanceimport/originalbalanceimport.js\": 95691,\n\t\"./app/main/support/supportcases/supportcases.module.js\": 88574,\n\t\"./app/main/support/supportcases/triggertochangelog/triggertochangelog.js\": 49443,\n\t\"./app/main/support/supportcases/updateinventorystatus/updateinventorystatus.js\": 76575,\n\t\"./app/main/timedOutLoginDialog/timedOutLoginDialog.js\": 76232,\n\t\"./app/main/timestamp/timeStampsAdministrationDialog/timeStampsAdministrationDialog.js\": 29691,\n\t\"./app/main/timestamp/timestamp.module.js\": 86676,\n\t\"./app/main/timestamp/timestamping.api.js\": 68604,\n\t\"./app/main/timestamp/timestampingusers/timestamping/timestamping.js\": 1086,\n\t\"./app/main/timestamp/timestampingusers/timestampingusers.js\": 8287,\n\t\"./app/main/timestamp/userTimeStampingDialog/userTimeStampingDialog.js\": 69675,\n\t\"./common/components/components.module.js\": 72710,\n\t\"./common/components/dashboard/widgets/wgtIntegrationStatus/wgtIntegrationStatus.component.js\": 24689,\n\t\"./common/components/dashboard/widgets/wgtRefunds/wgtRefunds.component.js\": 33147,\n\t\"./common/components/dashboard/widgets/wgtSeasonalityCurve/wgtSeasonalityCurve.component.js\": 78387,\n\t\"./common/components/dashboard/widgets/wgtTopSold/wgtTopSold.component.js\": 90511,\n\t\"./common/components/genericcomponents/address.component.js\": 19543,\n\t\"./common/components/genericcomponents/articlelist.component.js\": 65197,\n\t\"./common/components/genericcomponents/articlesearchsingleselect.component.js\": 84621,\n\t\"./common/components/genericcomponents/confirmbutton.component.js\": 80151,\n\t\"./common/components/genericcomponents/contactinfo.component.js\": 60707,\n\t\"./common/components/genericcomponents/errorlist.component.js\": 39821,\n\t\"./common/components/genericcomponents/formgrouprow.component.js\": 15350,\n\t\"./common/components/genericcomponents/formgrouprowother.component.js\": 98860,\n\t\"./common/components/genericcomponents/genericcomponents.service.js\": 67282,\n\t\"./common/components/genericcomponents/multiselect.component.js\": 91518,\n\t\"./common/components/genericcomponents/searchlist/searchlist-contactinfo.component.js\": 53199,\n\t\"./common/components/genericcomponents/singleselect.component.js\": 96333,\n\t\"./common/components/genericcomponents/sortingtabledataheader.component.js\": 28372,\n\t\"./common/components/genericcomponents/variantdetailsearchsingleselect.component.js\": 58987,\n\t\"./common/components/navigation/navigation.api.js\": 9487,\n\t\"./common/components/navigation/navigationNode.component.js\": 89576,\n\t\"./common/decorators/bootstrapModal/bootstrapModal.js\": 72197,\n\t\"./common/directives/dashboard/dashboard.js\": 88609,\n\t\"./common/directives/dashboard/widgetBody.js\": 93393,\n\t\"./common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettings.js\": 94358,\n\t\"./common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsBusinessArea.js\": 3009,\n\t\"./common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsHideTooltipLocation.js\": 10708,\n\t\"./common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsMultipleLocations.js\": 49408,\n\t\"./common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsTimePeriod.js\": 77614,\n\t\"./common/directives/dashboard/widgets/wgtArticleNegativeBalance/wgtAtricleNegativeBalance.js\": 21768,\n\t\"./common/directives/dashboard/widgets/wgtCalHeatmap/wgtCalHeatmap.js\": 96391,\n\t\"./common/directives/dashboard/widgets/wgtChart/wgtChart.js\": 53242,\n\t\"./common/directives/dashboard/widgets/wgtInfoLatestTransaction/wgtInfoLatestTransaction.js\": 30464,\n\t\"./common/directives/dashboard/widgets/wgtInfoQuickSaleFact/wgtInfoQuickSaleFact.js\": 70478,\n\t\"./common/directives/dashboard/widgets/wgtInfoSaleBusinessArea/wgtInfoSaleBusinessArea.js\": 12040,\n\t\"./common/directives/dashboard/widgets/wgtInfoSaleToLastYear/wgtInfoSaleToLastYear.js\": 76564,\n\t\"./common/directives/dashboard/widgets/wgtInfoTodayOrder/wgtInfoTodayOrder.js\": 64708,\n\t\"./common/directives/dashboard/widgets/wgtInfoUndeliveredInternalOrder/wgtInfoUndeliveredInternalOrder.js\": 72128,\n\t\"./common/directives/dashboard/widgets/wgtInfoYesterdaySale/wgtInfoYesterdaySale.js\": 29708,\n\t\"./common/directives/dashboard/widgets/wgtInfoYesterdaySaleBrv/wgtInfoYesterdaySaleBrv.js\": 63372,\n\t\"./common/directives/dashboard/widgets/wgtOrderAutoOrders/wgtOrderAutoOrders.js\": 61162,\n\t\"./common/directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.js\": 31296,\n\t\"./common/directives/dashboard/widgets/wgtSaleTop/wgtSaleTop.js\": 17578,\n\t\"./common/directives/dashboard/widgets/wgtSaleTwoWeek/wgtSaleTwoWeek.js\": 73664,\n\t\"./common/directives/dashboard/widgets/wgtUndeliveredOrders/wgtUndeliveredOrders.js\": 57678,\n\t\"./common/directives/directives.js\": 30218,\n\t\"./common/directives/editableInputs/editableDecimal/editableDecimal.js\": 88881,\n\t\"./common/directives/formInput/enterAsTab.js\": 19522,\n\t\"./common/directives/loadSpinner/loadSpinner.js\": 82149,\n\t\"./common/directives/percentInput/percentInput.js\": 73829,\n\t\"./common/directives/restrictAccess/restrictAccess.js\": 70819,\n\t\"./common/directives/smartDecimal/smartDecimal.js\": 81619,\n\t\"./common/directives/ui-nav.js\": 85482,\n\t\"./common/directives/ui-toggleclass.js\": 98047,\n\t\"./common/filters/filters.js\": 44504,\n\t\"./common/filters/multiPartFilter.js\": 61129,\n\t\"./common/filters/propsFilter.js\": 58071,\n\t\"./common/resources/filedataimport.api.js\": 5204,\n\t\"./common/resources/filedataimport.v2.api.js\": 79140,\n\t\"./common/resources/fileoperations.api.js\": 67491,\n\t\"./common/resources/resources.js\": 66568,\n\t\"./common/services/authService/authservice.js\": 36515,\n\t\"./common/services/barcodeService/barcodeService.js\": 4639,\n\t\"./common/services/dialogs/InvoiceConfirmationDialog/InvoiceConfirmationDialog.js\": 85197,\n\t\"./common/services/dialogs/colourChangeDialog/colourChangeDialog.js\": 5523,\n\t\"./common/services/dialogs/confirmationDialog/confirmationDialog.js\": 26877,\n\t\"./common/services/dialogs/deliveryConfirmationDialog/deliveryConfirmationDialog.js\": 16029,\n\t\"./common/services/dialogs/deliveryDocumentDownloadDialog/deliveryDocumentDownloadDialog.js\": 47357,\n\t\"./common/services/dialogs/dialogs.js\": 81583,\n\t\"./common/services/dialogs/importFinalizationDialog/importFinalizationDialog.js\": 35837,\n\t\"./common/services/dialogs/informationDialog/informationDialog.js\": 93545,\n\t\"./common/services/dialogs/inventoryCorrectionsDialog/inventoryCorrectionsDialog.js\": 91229,\n\t\"./common/services/dialogs/labelPrintingDialog/labelPrintingDialog.js\": 75149,\n\t\"./common/services/dialogs/loginDialog/loginDialog.js\": 81793,\n\t\"./common/services/dialogs/newInventoryDialog/newInventoryDialog.js\": 7619,\n\t\"./common/services/dialogs/printInventoryReportDialog/printInventoryReportDialog.js\": 89353,\n\t\"./common/services/dialogs/printInvoiceDialog/printInvoiceDialog.js\": 92215,\n\t\"./common/services/dialogs/printLanguageConfirmationDialog/printLanguageConfirmationDialog.js\": 20013,\n\t\"./common/services/dialogs/printPickingListDialog/printPickingListDialog.js\": 11295,\n\t\"./common/services/dialogs/purchaseOrderAnalysisFilterDialog/purchaseOrderAnalysisFilterDialog.js\": 9777,\n\t\"./common/services/dialogs/resetLogin/resetLogin.js\": 37383,\n\t\"./common/services/dialogs/salesTotalFilterDialog/salesTotalFilterDialog.js\": 17175,\n\t\"./common/services/dialogs/setFieldConfirmationDialog/setFieldConfirmationDialog.js\": 74413,\n\t\"./common/services/dialogs/updateAddressDialog/updateAddressDialog.js\": 67509,\n\t\"./common/services/dialogs/updateOrderNoteDialog/updateOrderNoteDialog.js\": 93789,\n\t\"./common/services/featureSwitchService/featureSwitchService.js\": 59211,\n\t\"./common/services/helper/flexGridHelper.js\": 61818,\n\t\"./common/services/helper/helper.js\": 53689,\n\t\"./common/services/helper/pricelistsHelper.js\": 44935,\n\t\"./common/services/mock/mockImportFileRowService.js\": 4609,\n\t\"./common/services/services.js\": 84442,\n\t\"./common/services/toasterService/toasterservice.js\": 78083,\n\t\"./index.js\": 70835,\n\t\"./version.js\": 10257\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9185;","var map = {\n\t\"./Front/node_modules/ui-select/src/bootstrap/choices.tpl.html\": 42017,\n\t\"./Front/node_modules/ui-select/src/bootstrap/match-multiple.tpl.html\": 89761,\n\t\"./Front/node_modules/ui-select/src/bootstrap/match.tpl.html\": 57064,\n\t\"./Front/node_modules/ui-select/src/bootstrap/no-choice.tpl.html\": 47700,\n\t\"./Front/node_modules/ui-select/src/bootstrap/select-multiple.tpl.html\": 8774,\n\t\"./Front/node_modules/ui-select/src/bootstrap/select.tpl.html\": 62373,\n\t\"./Front/node_modules/ui-select/src/select2/choices.tpl.html\": 56949,\n\t\"./Front/node_modules/ui-select/src/select2/match-multiple.tpl.html\": 28901,\n\t\"./Front/node_modules/ui-select/src/select2/match.tpl.html\": 51148,\n\t\"./Front/node_modules/ui-select/src/select2/no-choice.tpl.html\": 9632,\n\t\"./Front/node_modules/ui-select/src/select2/select-multiple.tpl.html\": 50530,\n\t\"./Front/node_modules/ui-select/src/select2/select.tpl.html\": 55233,\n\t\"./Front/node_modules/ui-select/src/selectize/choices.tpl.html\": 22949,\n\t\"./Front/node_modules/ui-select/src/selectize/match-multiple.tpl.html\": 89301,\n\t\"./Front/node_modules/ui-select/src/selectize/match.tpl.html\": 48732,\n\t\"./Front/node_modules/ui-select/src/selectize/no-choice.tpl.html\": 89040,\n\t\"./Front/node_modules/ui-select/src/selectize/select-multiple.tpl.html\": 42674,\n\t\"./Front/node_modules/ui-select/src/selectize/select.tpl.html\": 56017,\n\t\"./Front/src/app/app.tpl.html\": 38774,\n\t\"./Front/src/app/main/analysis/analysis.tpl.html\": 77914,\n\t\"./Front/src/app/main/analysis/pdfTemplate/pdfTemplate.tpl.html\": 35365,\n\t\"./Front/src/app/main/analysis/reports/reports.tpl.html\": 94289,\n\t\"./Front/src/app/main/analysis/userReports/userReport.component.tpl.html\": 93395,\n\t\"./Front/src/app/main/analysis/userReports/userReports.tpl.html\": 74945,\n\t\"./Front/src/app/main/base/accounts/account/account.tpl.html\": 35013,\n\t\"./Front/src/app/main/base/accounts/accounts.tpl.html\": 8520,\n\t\"./Front/src/app/main/base/articlecollections/articlecollection/articlecollection.tpl.html\": 89690,\n\t\"./Front/src/app/main/base/articlecollections/articlecollections.tpl.html\": 97222,\n\t\"./Front/src/app/main/base/articletypes/articletype/articletype.tpl.html\": 89206,\n\t\"./Front/src/app/main/base/articletypes/articletypes.tpl.html\": 18446,\n\t\"./Front/src/app/main/base/base.tpl.html\": 94060,\n\t\"./Front/src/app/main/base/countries/countries.tpl.html\": 58662,\n\t\"./Front/src/app/main/base/countries/country/country.tpl.html\": 49703,\n\t\"./Front/src/app/main/base/currencies/currencies.tpl.html\": 742,\n\t\"./Front/src/app/main/base/currencies/currency/currency.tpl.html\": 90250,\n\t\"./Front/src/app/main/base/customergroups/customergroup/customergroup.tpl.html\": 19821,\n\t\"./Front/src/app/main/base/customergroups/customergroups.tpl.html\": 62600,\n\t\"./Front/src/app/main/base/dashboard/dashboard.tpl.html\": 902,\n\t\"./Front/src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplate/deliveryplanningtemplate.tpl.html\": 53045,\n\t\"./Front/src/app/main/base/deliveryplanningtemplates/deliveryplanningtemplates.tpl.html\": 13482,\n\t\"./Front/src/app/main/base/deliveryterms/deliveryterm/deliveryterm.tpl.html\": 48844,\n\t\"./Front/src/app/main/base/deliveryterms/deliveryterms.tpl.html\": 65454,\n\t\"./Front/src/app/main/base/invoicetypes/invoicetype/invoicetype.tpl.html\": 59249,\n\t\"./Front/src/app/main/base/invoicetypes/invoicetypes.tpl.html\": 41656,\n\t\"./Front/src/app/main/base/ordercollections/ordercollection/ordercollection.tpl.html\": 37996,\n\t\"./Front/src/app/main/base/ordercollections/ordercollections.tpl.html\": 19190,\n\t\"./Front/src/app/main/base/ordertypes/ordertype/ordertype.tpl.html\": 82792,\n\t\"./Front/src/app/main/base/ordertypes/ordertypes.tpl.html\": 13802,\n\t\"./Front/src/app/main/base/paymentterms/paymentterm/paymentterm.tpl.html\": 68592,\n\t\"./Front/src/app/main/base/paymentterms/paymentterms.tpl.html\": 34582,\n\t\"./Front/src/app/main/base/paymenttypes/paymenttype/paymenttype.tpl.html\": 36294,\n\t\"./Front/src/app/main/base/paymenttypes/paymenttypes.tpl.html\": 50382,\n\t\"./Front/src/app/main/base/returnreasons/returnreason/returnreason.tpl.html\": 64736,\n\t\"./Front/src/app/main/base/returnreasons/returnreasons.tpl.html\": 22222,\n\t\"./Front/src/app/main/base/shippingmethods/shippingmethod/shippingmethod.tpl.html\": 56229,\n\t\"./Front/src/app/main/base/shippingmethods/shippingmethods.tpl.html\": 66430,\n\t\"./Front/src/app/main/base/vats/vat/vat.tpl.html\": 44609,\n\t\"./Front/src/app/main/base/vats/vats.tpl.html\": 73816,\n\t\"./Front/src/app/main/budget/budget.tpl.html\": 18900,\n\t\"./Front/src/app/main/budget/budgets/budgets.tpl.html\": 28722,\n\t\"./Front/src/app/main/budget/budgets/components/budgetImport.component.tpl.html\": 60596,\n\t\"./Front/src/app/main/contacts/bulkoperation/bulkoperation.tpl.html\": 81374,\n\t\"./Front/src/app/main/contacts/companies/companies.tpl.html\": 24502,\n\t\"./Front/src/app/main/contacts/companies/company/company.tpl.html\": 67122,\n\t\"./Front/src/app/main/contacts/components/addressform.component.tpl.html\": 13685,\n\t\"./Front/src/app/main/contacts/components/contactinfoform.component.tpl.html\": 9705,\n\t\"./Front/src/app/main/contacts/components/newaddressform.component.tpl.html\": 21173,\n\t\"./Front/src/app/main/contacts/components/newcontactinfoform.component.tpl.html\": 11881,\n\t\"./Front/src/app/main/contacts/contacts.tpl.html\": 12256,\n\t\"./Front/src/app/main/contacts/locations/location/location.tpl.html\": 5285,\n\t\"./Front/src/app/main/contacts/locations/locations.tpl.html\": 54402,\n\t\"./Front/src/app/main/contacts/roles/role/role.tpl.html\": 11002,\n\t\"./Front/src/app/main/contacts/roles/roles.tpl.html\": 53346,\n\t\"./Front/src/app/main/contacts/users/user/user.tpl.html\": 55118,\n\t\"./Front/src/app/main/contacts/users/users.tpl.html\": 90410,\n\t\"./Front/src/app/main/customerinvoice/customerinvoice.tpl.html\": 6936,\n\t\"./Front/src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicecontent.cmp.tpl.html\": 48164,\n\t\"./Front/src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicerows.cmp.tpl.html\": 17828,\n\t\"./Front/src/app/main/customerinvoice/customerinvoicesearch/customerinvoicecontent/customerinvoicesearch.cmp.tpl.html\": 94065,\n\t\"./Front/src/app/main/customerinvoice/customerinvoicesearch/customerinvoicerowsearch.tpl.html\": 79166,\n\t\"./Front/src/app/main/customerinvoice/customerinvoicesearch/customerinvoicesearch.tpl.html\": 7428,\n\t\"./Front/src/app/main/customerorder/customerorder.tpl.html\": 25692,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordercontent/customerordercontent.cmp.tpl.html\": 11602,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordercontent/customerorderdeliveries.cmp.tpl.html\": 83431,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordercontent/customerorderpayments.cmp.tpl.html\": 78208,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordercontent/customerorderrefunds.cmp.tpl.html\": 36160,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordercontent/customerorderrows.cmp.tpl.html\": 14678,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordercontent/customerordersearch.cmp.tpl.html\": 1239,\n\t\"./Front/src/app/main/customerorder/customerordersearch/customerordersearch.tpl.html\": 23679,\n\t\"./Front/src/app/main/discountManagement/component/discountMultiselect.component.tpl.html\": 25845,\n\t\"./Front/src/app/main/discountManagement/discountManagement.tpl.html\": 87766,\n\t\"./Front/src/app/main/discountManagement/discounts/discount/discount.tpl.html\": 21152,\n\t\"./Front/src/app/main/discountManagement/discounts/discounts.tpl.html\": 17439,\n\t\"./Front/src/app/main/economy/siefileexport/siefileexport.tpl.html\": 63391,\n\t\"./Front/src/app/main/main-header.tpl.html\": 79006,\n\t\"./Front/src/app/main/main-menu.tpl.html\": 57576,\n\t\"./Front/src/app/main/main.tpl.html\": 14294,\n\t\"./Front/src/app/main/order/order.tpl.html\": 53192,\n\t\"./Front/src/app/main/order/orderDialogs/orderRowCommentDialog/orderRowCommentDialog.tpl.html\": 9123,\n\t\"./Front/src/app/main/order/orderdelivery/components/barcodescanninginput.component.tpl.html\": 46218,\n\t\"./Front/src/app/main/order/orderdelivery/components/orderarticles.component.tpl.html\": 33122,\n\t\"./Front/src/app/main/order/orderdelivery/components/ordermetadata.component.tpl.html\": 27064,\n\t\"./Front/src/app/main/order/orderdelivery/components/orderrowsdelivery.component.tpl.html\": 81352,\n\t\"./Front/src/app/main/order/orderdelivery/components/orderrowsedit.component.tpl.html\": 16836,\n\t\"./Front/src/app/main/order/orderdelivery/components/orderscannernavigation.component.tpl.html\": 73667,\n\t\"./Front/src/app/main/order/orderdelivery/components/ordertotals.component.tpl.html\": 85682,\n\t\"./Front/src/app/main/order/orderdelivery/orderdelivery.tpl.html\": 66015,\n\t\"./Front/src/app/main/order/orderdeliveryplanning/editDeliveryPlanningDialog/editDeliveryPlanningDialog.tpl.html\": 4373,\n\t\"./Front/src/app/main/order/orderdeliveryplanning/orderdeliveryplanning.tpl.html\": 30491,\n\t\"./Front/src/app/main/order/ordersearch/components/orderarticledeliveries.component.tpl.html\": 2089,\n\t\"./Front/src/app/main/order/ordersearch/components/orderarticlerows.component.tpl.html\": 84408,\n\t\"./Front/src/app/main/order/ordersearch/components/ordercontent.component.tpl.html\": 59950,\n\t\"./Front/src/app/main/order/ordersearch/components/ordersearchresult.component.tpl.html\": 32500,\n\t\"./Front/src/app/main/order/ordersearch/ordersearch.tpl.html\": 91307,\n\t\"./Front/src/app/main/order/purchaseorder/components/articlessummarygrid.component.tpl.html\": 41755,\n\t\"./Front/src/app/main/order/purchaseorder/components/opentobuygrid.component.tpl.html\": 97789,\n\t\"./Front/src/app/main/order/purchaseorder/components/purchaseorderdistributiongrid.component.tpl.html\": 889,\n\t\"./Front/src/app/main/order/purchaseorder/components/purchaseorderextraoptions.component.tpl.html\": 96635,\n\t\"./Front/src/app/main/order/purchaseorder/components/singlearticlesummarygrid.component.tpl.html\": 53480,\n\t\"./Front/src/app/main/order/purchaseorder/purchaseorder.tpl.html\": 37615,\n\t\"./Front/src/app/main/order/purchaseorderanalysis/purchaseorderanalysis.tpl.html\": 50671,\n\t\"./Front/src/app/main/order/purchaseordersearch/purchaseordersearch.tpl.html\": 22651,\n\t\"./Front/src/app/main/order/reports/intrastatReports.tpl.html\": 76799,\n\t\"./Front/src/app/main/order/reports/transitReports.tpl.html\": 14064,\n\t\"./Front/src/app/main/product/articleimport/articleimport.tpl.html\": 11296,\n\t\"./Front/src/app/main/product/articles/article/article.tpl.html\": 77540,\n\t\"./Front/src/app/main/product/articles/article/components/articlevariantsgrid.component.tpl.html\": 55490,\n\t\"./Front/src/app/main/product/articles/article/components/articlevariantsgridcell.component.tpl.html\": 29414,\n\t\"./Front/src/app/main/product/articles/articleAddNewArticleVariantDialog/articleAddNewArticleVariantDialog.tpl.html\": 70624,\n\t\"./Front/src/app/main/product/articles/articleChangeItemGroupDialog/articleChangeItemGroupDialog.tpl.html\": 17922,\n\t\"./Front/src/app/main/product/articles/articleChangeVariantDetailDialog/articleChangeVariantDetailDialog.tpl.html\": 29578,\n\t\"./Front/src/app/main/product/articles/articleLabelsPrintDialog/articleLabelsPrintDialog.tpl.html\": 62038,\n\t\"./Front/src/app/main/product/articles/articleNewIntrastatDialog/articleNewIntrastatDialog.tpl.html\": 83852,\n\t\"./Front/src/app/main/product/articles/articles.tpl.html\": 12800,\n\t\"./Front/src/app/main/product/articles/pricelistmanagement/pricelistmanagement.tpl.html\": 13896,\n\t\"./Front/src/app/main/product/articles/pricelistmgmt.tpl.html\": 23531,\n\t\"./Front/src/app/main/product/brands/brand/brand.tpl.html\": 26389,\n\t\"./Front/src/app/main/product/brands/brands.tpl.html\": 13602,\n\t\"./Front/src/app/main/product/businessareas/businessarea/businessarea.tpl.html\": 41423,\n\t\"./Front/src/app/main/product/businessareas/businessareas.tpl.html\": 58508,\n\t\"./Front/src/app/main/product/components/articlesearchmultiselect.component.tpl.html\": 216,\n\t\"./Front/src/app/main/product/components/itemGroupInline.component.tpl.html\": 64702,\n\t\"./Front/src/app/main/product/departments/department/department.tpl.html\": 60910,\n\t\"./Front/src/app/main/product/departments/departments.tpl.html\": 2544,\n\t\"./Front/src/app/main/product/importeditor/importeditor.tpl.html\": 88353,\n\t\"./Front/src/app/main/product/importfileslist/importfileslist.tpl.html\": 29676,\n\t\"./Front/src/app/main/product/intrastats/intrastat/intrastat.tpl.html\": 412,\n\t\"./Front/src/app/main/product/intrastats/intrastats.tpl.html\": 57832,\n\t\"./Front/src/app/main/product/maingroups/maingroup/maingroup.tpl.html\": 50798,\n\t\"./Front/src/app/main/product/maingroups/maingroups.tpl.html\": 88632,\n\t\"./Front/src/app/main/product/pricelisteditor/components/articleselection.component.tpl.html\": 25492,\n\t\"./Front/src/app/main/product/pricelisteditor/components/pricelistsgrid.component.tpl.html\": 56798,\n\t\"./Front/src/app/main/product/pricelisteditor/components/pricerangeinput.component.tpl.html\": 57170,\n\t\"./Front/src/app/main/product/pricelisteditor/components/volumediscountrule.component.tpl.html\": 26619,\n\t\"./Front/src/app/main/product/pricelisteditor/pricelisteditor.tpl.html\": 93204,\n\t\"./Front/src/app/main/product/pricelists/pricelist/pricelist.tpl.html\": 31721,\n\t\"./Front/src/app/main/product/pricelists/pricelists.tpl.html\": 96446,\n\t\"./Front/src/app/main/product/product.tpl.html\": 11280,\n\t\"./Front/src/app/main/product/productimport/components/filelist.component.tpl.html\": 14996,\n\t\"./Front/src/app/main/product/productimport/components/mapordate.component.tpl.html\": 84101,\n\t\"./Front/src/app/main/product/productimport/components/maporselect.component.tpl.html\": 25385,\n\t\"./Front/src/app/main/product/productimport/productimport.tpl.html\": 81448,\n\t\"./Front/src/app/main/product/productimporteditor/components/importeditorsummary.component.tpl.html\": 21613,\n\t\"./Front/src/app/main/product/productimporteditor/components/importeditortextdropdown.component.tpl.html\": 1801,\n\t\"./Front/src/app/main/product/productimporteditor/components/importeditorvalidationerrors.component.tpl.html\": 22871,\n\t\"./Front/src/app/main/product/productimporteditor/components/importrowsgrid.component.tpl.html\": 27319,\n\t\"./Front/src/app/main/product/productimporteditor/productimporteditor.tpl.html\": 43856,\n\t\"./Front/src/app/main/product/psychologicalprices/psychologicalprice/psychologicalprice.tpl.html\": 66472,\n\t\"./Front/src/app/main/product/psychologicalprices/psychologicalprices.tpl.html\": 77428,\n\t\"./Front/src/app/main/product/saleschannels/saleschannel/saleschannel.tpl.html\": 82063,\n\t\"./Front/src/app/main/product/saleschannels/saleschannels.tpl.html\": 89864,\n\t\"./Front/src/app/main/product/subcategories/subcategories.tpl.html\": 83984,\n\t\"./Front/src/app/main/product/subcategories/subcategory/subcategory.tpl.html\": 67449,\n\t\"./Front/src/app/main/product/variantgroups/variantgroup/variantgroup.tpl.html\": 31892,\n\t\"./Front/src/app/main/product/variantgroups/variantgroups.tpl.html\": 252,\n\t\"./Front/src/app/main/product/variants/variant/variant.tpl.html\": 68993,\n\t\"./Front/src/app/main/product/variants/variants.tpl.html\": 90198,\n\t\"./Front/src/app/main/product/volumediscounts/volumediscount/volumediscount.tpl.html\": 28345,\n\t\"./Front/src/app/main/product/volumediscounts/volumediscounts.tpl.html\": 93596,\n\t\"./Front/src/app/main/resellerorder/genericcomponents/readonlyorderheader.cmp.tpl.html\": 69765,\n\t\"./Front/src/app/main/resellerorder/genericcomponents/resellerorderbreadcrumbs.cmp.tpl.html\": 74504,\n\t\"./Front/src/app/main/resellerorder/genericcomponents/resellerordersearch.cmp.tpl.html\": 31228,\n\t\"./Front/src/app/main/resellerorder/genericcomponents/resellerreturnorderbreadcrumbs.cmp.tpl.html\": 87218,\n\t\"./Front/src/app/main/resellerorder/genericcomponents/scannernavigation.cmp.tpl.html\": 8630,\n\t\"./Front/src/app/main/resellerorder/resellerorder.tpl.html\": 5372,\n\t\"./Front/src/app/main/resellerorder/resellerordercreate/components/createorderheader.cmp.tpl.html\": 17043,\n\t\"./Front/src/app/main/resellerorder/resellerordercreate/resellerordercreate.tpl.html\": 21617,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createDeliveryDate.cmp.tpl.html\": 46388,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/DeliveryDateDialog/createVariantDeliveryDateDialog.tpl.html\": 81061,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createVariantFulfillmentDialog.tpl.html\": 31214,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/components/createfulfillmentvariants.cmp.tpl.html\": 46585,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/createfulfillment/createfulfillment.tpl.html\": 69448,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/manageorders/manageorders.tpl.html\": 53062,\n\t\"./Front/src/app/main/resellerorder/resellerorderfulfillment/manageproducts/manageproducts.tpl.html\": 59696,\n\t\"./Front/src/app/main/resellerorder/resellerordermodify/components/addlineitems.cmp.tpl.html\": 45949,\n\t\"./Front/src/app/main/resellerorder/resellerordermodify/components/articlelist_amount.component.tpl.html\": 88482,\n\t\"./Front/src/app/main/resellerorder/resellerordermodify/components/articlelist_overview.component.tpl.html\": 54389,\n\t\"./Front/src/app/main/resellerorder/resellerordermodify/components/articlelist_quantity.component.tpl.html\": 17415,\n\t\"./Front/src/app/main/resellerorder/resellerordermodify/components/resellerorderproductsearchmultiselect.component.tpl.html\": 64693,\n\t\"./Front/src/app/main/resellerorder/resellerordermodify/resellerordermodify.tpl.html\": 38885,\n\t\"./Front/src/app/main/resellerorder/resellerordersearch/resellerordersearch.tpl.html\": 25893,\n\t\"./Front/src/app/main/resellerorder/resellerorderview/components/resellerordercontent.cmp.tpl.html\": 34146,\n\t\"./Front/src/app/main/resellerorder/resellerorderview/components/resellerorderrows.cmp.tpl.html\": 55142,\n\t\"./Front/src/app/main/resellerorder/resellerorderview/resellerorderview.tpl.html\": 86273,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordercreate/components/createreturnorderheader.cmp.tpl.html\": 51971,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordercreate/resellerreturnordercreate.tpl.html\": 29781,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordermodify/components/addlineitems.cmp.tpl.html\": 4255,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_amount.component.tpl.html\": 8172,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_overview.component.tpl.html\": 49315,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordermodify/components/articlelist_quantity.component.tpl.html\": 3381,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordermodify/components/resellerorderproductsearchmultiselect.component.tpl.html\": 14395,\n\t\"./Front/src/app/main/resellerorder/resellerreturnordermodify/resellerreturnordermodify.tpl.html\": 57181,\n\t\"./Front/src/app/main/sales/sales.tpl.html\": 96104,\n\t\"./Front/src/app/main/sales/salestotal/salestotal.tpl.html\": 79449,\n\t\"./Front/src/app/main/stock/articles/article/article.tpl.html\": 31207,\n\t\"./Front/src/app/main/stock/articles/articleStocksHistory/articleStocksHistory.component.tpl.html\": 28654,\n\t\"./Front/src/app/main/stock/articles/articleStocksHistory/articleStocksHistory.dialog.tpl.html\": 63301,\n\t\"./Front/src/app/main/stock/articles/articles.tpl.html\": 92069,\n\t\"./Front/src/app/main/stock/articles/modelinventory/modelinventory.tpl.html\": 13227,\n\t\"./Front/src/app/main/stock/pickinglist/stockPickingList.tpl.html\": 99737,\n\t\"./Front/src/app/main/stock/reports/saleThroughputReports.tpl.html\": 70278,\n\t\"./Front/src/app/main/stock/reports/soldStockReports.tpl.html\": 2755,\n\t\"./Front/src/app/main/stock/reports/stockValueReports.tpl.html\": 5348,\n\t\"./Front/src/app/main/stock/scannerinventorying/inventory/articledetails/articledetails.tpl.html\": 25197,\n\t\"./Front/src/app/main/stock/scannerinventorying/inventory/inventory.tpl.html\": 23288,\n\t\"./Front/src/app/main/stock/scannerinventorying/scannerinventorying.tpl.html\": 67097,\n\t\"./Front/src/app/main/stock/stock.tpl.html\": 71232,\n\t\"./Front/src/app/main/stocklogistics/articletransfer/articletransfer.tpl.html\": 65894,\n\t\"./Front/src/app/main/stocklogistics/eshopreplenishment/eshopreplenishment.tpl.html\": 64642,\n\t\"./Front/src/app/main/stocklogistics/masshandlingorderingpoints/masshandlingorderingpoints.tpl.html\": 41092,\n\t\"./Front/src/app/main/stocklogistics/orderingpoints/autoMonthMultiplierDialog.tpl.html\": 86658,\n\t\"./Front/src/app/main/stocklogistics/orderingpoints/orderingpoints.tpl.html\": 87850,\n\t\"./Front/src/app/main/stocklogistics/stocklogistics.tpl.html\": 98504,\n\t\"./Front/src/app/main/support/support.tpl.html\": 72256,\n\t\"./Front/src/app/main/support/supportcases/addvariantdetail/addvariantdetail.tpl.html\": 44007,\n\t\"./Front/src/app/main/support/supportcases/changebarcode/changebarcode.tpl.html\": 6019,\n\t\"./Front/src/app/main/support/supportcases/changebarcodes/changebarcodes.tpl.html\": 88255,\n\t\"./Front/src/app/main/support/supportcases/changeisgroupsalearticle/changeisgroupsalearticle.tpl.html\": 85137,\n\t\"./Front/src/app/main/support/supportcases/changeitemgroup/changeitemgroup.tpl.html\": 28315,\n\t\"./Front/src/app/main/support/supportcases/changevariantdetail/changevariantdetail.tpl.html\": 81127,\n\t\"./Front/src/app/main/support/supportcases/createlocation/createlocation.tpl.html\": 42075,\n\t\"./Front/src/app/main/support/supportcases/deleteproduct/deleteproduct.tpl.html\": 10811,\n\t\"./Front/src/app/main/support/supportcases/mergeproducts/mergeproducts.tpl.html\": 20079,\n\t\"./Front/src/app/main/support/supportcases/missingreceipts/missingreceipts.tpl.html\": 95003,\n\t\"./Front/src/app/main/support/supportcases/originalbalanceimport/originalbalanceimport.tpl.html\": 35820,\n\t\"./Front/src/app/main/support/supportcases/supportcases.tpl.html\": 10022,\n\t\"./Front/src/app/main/support/supportcases/triggertochangelog/triggertochangelog.tpl.html\": 64151,\n\t\"./Front/src/app/main/support/supportcases/updateinventorystatus/updateinventorystatus.tpl.html\": 34435,\n\t\"./Front/src/app/main/timedOutLoginDialog/timedOutLoginDialog.tpl.html\": 1032,\n\t\"./Front/src/app/main/timestamp/timeStampsAdministrationDialog/timeStampsAdministrationDialog.tpl.html\": 50687,\n\t\"./Front/src/app/main/timestamp/timestampingusers/timestamping/timestamping.tpl.html\": 83090,\n\t\"./Front/src/app/main/timestamp/timestampingusers/timestampingusers.tpl.html\": 75571,\n\t\"./Front/src/app/main/timestamp/userTimeStampingDialog/userTimeStampingDialog.tpl.html\": 22703,\n\t\"./Front/src/common/components/dashboard/widgets/wgtIntegrationStatus/wgtIntegrationStatus.component.tpl.html\": 86305,\n\t\"./Front/src/common/components/dashboard/widgets/wgtRefunds/wgtRefunds.component.tpl.html\": 64015,\n\t\"./Front/src/common/components/dashboard/widgets/wgtSeasonalityCurve/wgtSeasonalityCurve.component.tpl.html\": 96231,\n\t\"./Front/src/common/components/dashboard/widgets/wgtTopSold/wgtTopSold.component.tpl.html\": 66675,\n\t\"./Front/src/common/components/genericcomponents/address.component.tpl.html\": 70427,\n\t\"./Front/src/common/components/genericcomponents/articlelist.component.tpl.html\": 8541,\n\t\"./Front/src/common/components/genericcomponents/articlesearchsingleselect.component.tpl.html\": 39501,\n\t\"./Front/src/common/components/genericcomponents/confirmbutton.component.tpl.html\": 85019,\n\t\"./Front/src/common/components/genericcomponents/contactinfo.component.tpl.html\": 68007,\n\t\"./Front/src/common/components/genericcomponents/errorlist.component.tpl.html\": 68077,\n\t\"./Front/src/common/components/genericcomponents/formgrouprow.component.tpl.html\": 1162,\n\t\"./Front/src/common/components/genericcomponents/formgrouprowother.component.tpl.html\": 24556,\n\t\"./Front/src/common/components/genericcomponents/multiselect.component.tpl.html\": 80354,\n\t\"./Front/src/common/components/genericcomponents/searchlist/searchlist-contactinfo.component.tpl.html\": 15459,\n\t\"./Front/src/common/components/genericcomponents/singleselect.component.tpl.html\": 47789,\n\t\"./Front/src/common/components/genericcomponents/sortingtabledataheader.component.tpl.html\": 53684,\n\t\"./Front/src/common/components/genericcomponents/variantdetailsearchsingleselect.component.tpl.html\": 62575,\n\t\"./Front/src/common/components/navigation/navigationNode.component.tpl.html\": 86440,\n\t\"./Front/src/common/directives/dashboard/dashboard.tpl.html\": 95633,\n\t\"./Front/src/common/directives/dashboard/widgetBody.tpl.html\": 70081,\n\t\"./Front/src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettings.tpl.html\": 96330,\n\t\"./Front/src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsBusinessArea.tpl.html\": 58049,\n\t\"./Front/src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsHideTooltipLocation.tpl.html\": 2532,\n\t\"./Front/src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsMultipleLocations.tpl.html\": 13312,\n\t\"./Front/src/common/directives/dashboard/widgets/dialogs/wgtSettings/wgtSettingsTimePeriod.tpl.html\": 76706,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtArticleNegativeBalance/wgtArticleNegativeBalance.tpl.html\": 12136,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtCalHeatmap/wgtCalHeatmap.tpl.html\": 53252,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtChart/wgtChart.tpl.html\": 68926,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoLatestTransaction/wgtInfoLatestTransaction.tpl.html\": 69824,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoQuickSaleFact/wgtInfoQuickSaleFact.tpl.html\": 95906,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoSaleBusinessArea/wgtInfoSaleBusinessArea.tpl.html\": 92808,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoSaleToLastYear/wgtInfoSaleToLastYear.tpl.html\": 76580,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoTodayOrder/wgtInfoTodayOrder.tpl.html\": 76116,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoUndeliveredInternalOrder/wgtInfoUndeliveredInternalOrder.tpl.html\": 70720,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoYesterdaySale/wgtInfoYesterdaySale.tpl.html\": 87516,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtInfoYesterdaySaleBrv/wgtInfoYesterdaySaleBrv.tpl.html\": 82268,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtOrderAutoOrders/wgtOrderAutoOrders.tpl.html\": 67406,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtPrintableImports/wgtPrintableImports.tpl.html\": 12032,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtSaleTop/wgtSaleTop.tpl.html\": 71630,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtSaleTwoWeek/wgtSaleTwoWeek.tpl.html\": 39136,\n\t\"./Front/src/common/directives/dashboard/widgets/wgtUndeliveredOrders/wgtUndeliveredOrders.tpl.html\": 73506,\n\t\"./Front/src/common/directives/loadSpinner/loadSpinner.tpl.html\": 45877,\n\t\"./Front/src/common/services/dialogs/InvoiceConfirmationDialog/InvoiceConfirmationDialog.tpl.html\": 52781,\n\t\"./Front/src/common/services/dialogs/colourChangeDialog/colourChangeDialog.tpl.html\": 21783,\n\t\"./Front/src/common/services/dialogs/confirmationDialog/confirmationDialog.tpl.html\": 91325,\n\t\"./Front/src/common/services/dialogs/deliveryConfirmationDialog/deliveryConfirmationDialog.tpl.html\": 72477,\n\t\"./Front/src/common/services/dialogs/deliveryDocumentDownloadDialog/deliveryDocumentDownloadDialog.tpl.html\": 66365,\n\t\"./Front/src/common/services/dialogs/importFinalizationDialog/importFinalizationDialog.tpl.html\": 55069,\n\t\"./Front/src/common/services/dialogs/informationDialog/informationDialog.tpl.html\": 3625,\n\t\"./Front/src/common/services/dialogs/inventoryCorrectionsDialog/inventoryCorrectionsDialog.tpl.html\": 78109,\n\t\"./Front/src/common/services/dialogs/labelPrintingDialog/labelPrintingDialog.tpl.html\": 22285,\n\t\"./Front/src/common/services/dialogs/loginDialog/loginDialog.tpl.html\": 19105,\n\t\"./Front/src/common/services/dialogs/newInventoryDialog/newInventoryDialog.tpl.html\": 15431,\n\t\"./Front/src/common/services/dialogs/printInventoryReportDialog/printInventoryReportDialog.tpl.html\": 65417,\n\t\"./Front/src/common/services/dialogs/printInvoiceDialog/printInvoiceDialog.tpl.html\": 34123,\n\t\"./Front/src/common/services/dialogs/printLanguageConfirmationDialog/printLanguageConfirmationDialog.tpl.html\": 43469,\n\t\"./Front/src/common/services/dialogs/printPickingListDialog/printPickingListDialog.tpl.html\": 67635,\n\t\"./Front/src/common/services/dialogs/purchaseOrderAnalysisFilterDialog/purchaseOrderAnalysisFilterDialog.tpl.html\": 72049,\n\t\"./Front/src/common/services/dialogs/resetLogin/resetLogin.tpl.html\": 90715,\n\t\"./Front/src/common/services/dialogs/salesTotalFilterDialog/salesTotalFilterDialog.tpl.html\": 4203,\n\t\"./Front/src/common/services/dialogs/setFieldConfirmationDialog/setFieldConfirmationDialog.tpl.html\": 12525,\n\t\"./Front/src/common/services/dialogs/updateAddressDialog/updateAddressDialog.tpl.html\": 29301,\n\t\"./Front/src/common/services/dialogs/updateOrderNoteDialog/updateOrderNoteDialog.tpl.html\": 32413\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 76986;","module.exports = angular;","/* (ignored) */","/* (ignored) */"],"names":["stateConfig","$stateProvider","$urlRouterProvider","when","rootRedirect","state","url","templateUrl","data","pageTitle","resolve","currentUser","userResolve","AuthService","getUser","$state","hasToken","transitionTo","then","angular","module","config","React","addElement","removeElement","jsx","_jsx","bridgeConverter","reactComponent","propNames","bindings","Object","fromEntries","map","prop","controller","_class","$element","_classCallCheck","_defineProperty","createRef","container","_createClass","key","value","$onChanges","onChangesObj","_this$bindings","currentBindings","newBindings","entries","_ref","_ref2","_slicedToArray","bindingName","currentValue","_objectSpread","updateProps","$onInit","reactElement","element","createElement","ComponentWrapper","component","initialProps","ref","reactElementRef","$onDestroy","undefined","_this$reactElementRef","current","forwardRef","_ref3","Component","_React$useState","useState","_React$useState2","props","setProps","useImperativeHandle","newProps","reactEvents","jsxs","_jsxs","FooBar","hello","children","onClick","fooBar","dispatch","angularEvents","useEffect","useRef","Formik","Field","Form","FieldArray","useFormikContext","useField","Yup","DatePicker","DropdownField","options","name","isEditing","as","disabled","option","id","formatDate","date","year","getFullYear","month","getMonth","day","getDate","formattedDate","concat","toString","padStart","DatepickerField","_useFormikContext","setFieldValue","_useField","_useField2","field","meta","handleDateChange","dateFormat","selected","Date","onChange","touched","error","className","MetaFieldValueComponent","index","handleChange","e","target","type","parseFloat","readOnly","newOption","updatedOptions","saveMetaFieldValues","values","formattedValues","_field$value","MetaFieldValues","_ref4","initialIsEditing","_useState","_useState2","setIsEditing","formValuesRef","unsub","subscribe","unsubSaveArticle","saveArticle","console","log","validationSchema","object","shape","metaFields","array","of","string","required","mixed","_field$value2","initialValues","onSubmit","formValues","_ref5","handleSubmit","handleFieldChange","metaFieldValue","style","listStyle","marginBottom","_regeneratorRuntime","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Array","from","test","isArray","ErrorMessage","Fragment","_Fragment","saveMetaFields","fields","MetaFields","typeOptions","_callee","_callee$","_context","setTimeout","JSON","stringify","_x","remove","metaField","padding","htmlFor","_toConsumableArray","_","optIndex","defaultValue","isVisibleOnPrint","positionX","positionY","_defineProperties","ColourChange","articleId","initialArticleColours","articleColours","setArticleColours","articleColoursHasChanged","newArticleColours","uniqueColourNames","ArticleColours","colour","ColourName","self","indexOf","UniqueColourNames","formikHelpers","onSubmitForm","renderForm","formikState","isSubmitting","colourName","articleVariantId","placeholder","_x2","_onSubmitForm","setSubmitting","saveColourChange","ArticleColour","angularDataConfig","DSProvider","ENV","defaults","basePath","BASE_PATH","rms2Path","RMS2_BASE_PATH","httpProviderConfig","$httpProvider","interceptors","httpInterceptor","$injector","$q","responseError","rejection","get","ToasterService","$translate","status","logOut","showError","instant","reject","translationConfig","$translateProvider","translations","useSanitizeValueStrategy","useLocalStorage","useUrlLoader","preferredLanguage","fallbackLanguage","constant","process","env","NAME","FLEXMONSTER_KEY","factory","require","ResourceInit","DS","defineResource","idAttribute","endpoint","relations","hasMany","subcategory","localField","foreignKey","belongsTo","mainGroup","parent","localKey","run","setRootScopeVariables","$rootScope","canAccess","initializeAuthService","setToken","eventSubscribers","loadSpinnerService","VersionService","$on","toState","toParams","fromState","fromParams","$applyAsync","start","event","hasVersionChanged","allowReloadOnStateChange","reload","force","isDefined","token","$timeout","$http","$window","currentPromise","started","checkInterval","service","cancel","checkVersion","location","getTime","response","version","$emit","AuthApiService","DSHttpAdapter","ResourcesService","getToken","username","password","tenantName","deferred","defer","POST","handleError","promise","handleResourceError","LoginController","$location","showLogin","path","AnalysisApiService","getReports","apiFactory","saveReport","getDataSources","getUserReports","saveUserReport","deleteUserReport","getSharedReports","getPdfTemplates","savePdfTemplate","getReportGroups","saveUserReportSortOrder","getLocalization","getUserReportsToConvert","saveConvertedUserReport","getLocations","report","PUT","userReport","pdfTemplate","reports","MainAnalysisController","vm","AnalysisPdfTemplateController","templates","selectedTemplate","head","selectTemplate","save","template","copy","showSuccess","reportsResolver","dataSources","dataSourcesResolver","userReports","userReportsResolver","sharedReports","sharedReportsResolver","localization","localizationResolver","AnalysisReportsController","$cookies","$uibModal","$scope","editReportTemplates","showUserReportList","isLoadingReport","selectedDataSource","selectedReport","description","reportObject","selectedUserReport","selectedUserReport1","userReportName","reportComboBox","initUserReports","selectedSharedReport","decription","showSharedReportList","initSharedReports","reportLevels","selectUserReports","loadReport","loadUserReport","saveNewUserReport","canSaveUserReport","loadUserReports","editUserReport","comboBoxInitialized","cancelEditUserReport","editFormSelectedReportChanged","expandRows","collapseRows","selectSharedReports","selectedSharedReportChanged","loadSharedReports","cbSelectLevelChanged","removeMeasures","convertAllReports","pivot","createPivot","user","substr","splice","find","cb","cbEditUserReport","_tbx","cbSharedReport","reportId","dataSourceId","dataUrl","getObject","reportText","startsWith","fmCovertXmlReport","jsonReport","parse","dataSource","filename","assureDataSourceType","measures","measure","availableAggregations","setReport","closeFieldsList","clear","refresh","message","cbSaveUserReport","loadSharedReport","dataSourceType","reportObj","getReport","newReport","newReportName","reportTemplate","canSave","$select","isDroppedDown","selectedValue","formatStr","moment","format","expand","firstLevel","getRows","expandData","uniqueName","collapseAllData","getAllMeasures","m","removeCalculatedMeasure","pivotObj","$","flexmonster","componentFolder","width","height","toolbar","global","on","onPivotUpdate","onPivotError","reportString","ReportGroupName","sales","ReportName","salesWhen","controllerAs","$anchorScroll","confirmationDialogService","Constants","reportGroups","selectedGroup","loadedReportPath","showNavigation","selectedTab","activeTabIndex","loadedReport","isLoading","onInit","onChanges","onDestroy","navigate","moveUp","moveDown","selectTab","copySelectedReport","deleteReport","isValidDate","canPublishReport","sortDescending","sortAscending","generate","startDate","activate","useFiltering","dispose","empty","setDate","getAuth0Token","accessToken","loadReportGroups","changes","fm","licenseKey","load","group","some","first","exception","requestHeaders","Authorization","setOptions","grid","title","position","arrayMove","scrollTo","preventDefault","newSorting","orderBy","saveSortOrder","to","containerId","elementId","up","document","getElementById","offsetTop","offsetHeight","animate","scrollTop","tabName","findIndex","isShared","reportGroupType","changed","isLoadedReport","userReportGroup","showDialog","result","pull","valid","momentDate","isValid","isBefore","AnalysisUserReportsController","views","account","isNewAccount","accountResolver","$stateParams","AccountsApiService","getAccount","accountId","languagesResolver","getLanguages","AccountController","accountCopy","enableEditing","cancelEditing","saveAccount","deleteAccount","isAccountNumberValid","isAllInformationValid","toggleDisplayForm","prepareData","appendLocalizations","languages","obj","localizations","language","saveNewAccount","updateAccount","createAccount","go","confirmation","showEditForm","accountNumber","isNumeric","isFinite","getAccounts","update","accounts","accountsResolver","searchTerm","searchTermesolver","page","pageSize","AccountsController","selectedAccountId","currentPage","searchTermChange","$watch","params","newValue","oldValue","parseInt","loadAccounts","request","itemsPerPage","collection","collectionCode","collectionDescription","articleCollectionType","currentBehaviour","currentRank","duration","isArticleSeason","isOrderSeason","offset","currencies","isNewCollection","collectionResolver","ArticleCollectionsApiService","getArticleCollectionById","collectionId","ArticleCollectionController","collectionCopy","currentBehaviours","articleCollectionTypes","saveCollection","selectedCurrentBehaviour","selectedArticleCollectionType","collections","listAllArticleCollections","toDate","sortBy","lastCollection","lastToDate","fromDate","setCurrentBehaviours","setArticleCollectionTypes","trim","focus","saveConfirmedCollection","updateConfirmedCollection","getFullDate","saveArticleCollection","articleCollectionId","zeroFill","number","join","updateArticleCollection","listAllCurrencies","collectionsResolver","ArticleCollectionsController","selectedCollectionId","loadCollections","articleType","articleTypesResolver","createNew","ArticleTypesApiService","getArticleType","articleTypeId","ArticleTypeController","isNew","articleTypeCopy","deleteArticleType","deleteConfirmed","getAll","isEmpty","GET","articleTypes","searchTermResolver","ArticleTypesController","selectedArticleTypeId","searchTermChanged","loadArticleTypes","BaseController","CountriesApiService","getCountries","getCountryById","createCountry","updateCountry","deleteCountry","countries","countriesResolver","CountriesController","selectedCountryId","countryId","loadCountries","country","isNewCountry","vats","vatsResolver","countryResolver","VatsApiService","getVats","CountryController","countryCopy","saveCountry","isCountryCodeValid","appendVats","vat","countryVats","countryVat","vatRate","saveNewCountry","CurrenciesApiService","getCurrency","deleteCurrency","currency","currenciesResolver","CurrenciesController","selectedCurrencyId","loadCurrencies","currencyId","CurrencyController","currencyCopy","code","customergroup","isNewCustomerGroup","customergroupResolver","CustomerGroupsApiService","getCustomerGroup","customergroupId","CustomerGroupController","customergroupCopy","saveCustomerGroup","deleteCustomerGroup","isCustomerGroupCodeValid","saveNewCustomerGroup","updateCustomerGroup","createCustomerGroup","getCustomerGroups","customergroups","customergroupsResolver","CustomerGroupsController","selectedCustomerGroupId","customerGroupId","loadCustomerGroups","DashboardApiService","getWidgetDefinitions","getWidgets","getWidgetData","saveWidgets","widget_id","settings","isString","locationIds","hideTooltip","businessAreaId","selectedWidgetTimeFrame","jsonRequest","toJson","setting","initialData","all","widgetDefinitions","widgets","MainDashboardController","remplateUrl","deliveryplanningtemplate","isNewDeliveryPlanningTemplate","deliveryplanningtemplateResolver","DeliveryPlanningTemplatesApiService","getDeliveryPlanningTemplate","deliveryplanningtemplateId","DeliveryPlanningTemplateController","deliveryplanningtemplateCopy","saveDeliveryPlanningTemplate","deleteDeliveryPlanningTemplate","saveNewDeliveryPlanningTemplate","updateDeliveryPlanningTemplate","createDeliveryPlanningTemplate","getDeliveryPlanningTemplates","deliveryplanningtemplates","deliveryplanningtemplatesResolver","DeliveryPlanningTemplatesController","selectedDeliveryPlanningTemplateId","deliveryPlanningTemplateId","loadDeliveryPlanningTemplates","deliveryterm","isNewDeliveryTerm","deliverytermResolver","DeliveryTermsApiService","getDeliveryTerm","deliverytermId","DeliveryTermController","deliverytermCopy","saveDeliveryTerm","deleteDeliveryTerm","isDeliveryTermCodeValid","saveNewDeliveryTerm","updateDeliveryTerm","createDeliveryTerm","getDeliveryTerms","deliveryterms","deliverytermsResolver","DeliveryTermsController","selectedDeliveryTermId","deliveryTermId","loadDeliveryTerms","invoicetype","isNewInvoiceType","printDocumentTemplates","printDocumentResolver","invoicetypeResolver","InvoiceTypesApiService","getInvoiceType","invoicetypeId","getPrintDocumentTemplates","InvoiceTypeController","invoicetypeCopy","saveInvoiceType","deleteInvoiceType","saveNewInvoiceType","updateInvoiceType","createInvoiceType","getInvoiceTypes","invoicetypes","invoicetypesResolver","InvoiceTypesController","selectedInvoiceTypeId","invoiceTypeId","loadInvoiceTypes","currencySettings","currencyResolver","OrderCollectionsApiService","getOrderCollectionById","OrderCollectionController","listAllOrderCollections","currencyCode","currencyRate","saveOrderCollection","orderCollectionId","updateOrderCollection","existingCurrency","newCurrencySetting","OrderCollectionsController","ordertype","deliveryPlanningTemplate","deliveryPlanningTemplatesResolver","locations","locationsResolver","isNewOrderType","ordertypeResolver","OrderTypesApiService","getOrderType","ordertypeId","OrderTypeController","OrdersApiService","ordertypeCopy","enableDeliveryPlanning","saveOrderType","deleteOrderType","appendLocations","initDeliveryPlanningTemplate","isDeliveryPlanningEnabled","locationName","saveNewOrderType","updateOrderType","createOrderType","getOrderTypes","ordertypes","ordertypesResolver","OrderTypesController","selectedOrderTypeId","orderTypeId","loadOrderTypes","paymentterm","isNewPaymentTerm","paymenttermResolver","PaymentTermsApiService","getPaymentTerm","paymenttermId","PaymentTermController","paymenttermCopy","savePaymentTerm","deletePaymentTerm","isPaymentTermCodeValid","saveNewPaymentTerm","updatePaymentTerm","createPaymentTerm","getPaymentTerms","paymentterms","paymenttermsResolver","PaymentTermsController","selectedPaymentTermId","paymentTermId","loadPaymentTerms","paymentType","isNewPaymentType","paymentTypeResolver","PaymentTypesApiService","getPaymentType","paymentTypeId","PaymentTypeController","paymentTypeCopy","savePaymentType","deletePaymentType","isPaymentTypeCodeValid","actipaymentTypee","updatePaymentType","paymentTypeCode","getPaymentTypes","createPaymentType","paymentTypes","paymentTypesResolver","PaymentTypesController","selectedPaymentTypeId","loadPaymentTypes","returnreason","isNewReturnReason","returnreasonResolver","ReturnReasonsApiService","getReturnReason","returnreasonId","ReturnReasonController","FeatureSwitchService","returnreasonCopy","locationCopy","featureStockLocationEnabled","hasAdvancedReturnReason","saveReturnReason","deleteReturnReason","isReturnReasonCodeValid","unshift","getNoLocationLocation","stockLocationId","adjustStock","saveNewReturnReason","updateReturnReason","createReturnReason","getReturnReasons","GetLocations","returnreasons","returnreasonsResolver","ReturnReasonsController","selectedReturnReasonId","returnReasonId","loadReturnReasons","shippingmethod","isNewShippingMethod","shippingmethodResolver","ShippingMethodsApiService","getShippingMethod","shippingmethodId","ShippingMethodController","shippingmethodCopy","saveShippingMethod","deleteShippingMethod","isShippingMethodCodeValid","saveNewShippingMethod","updateShippingMethod","createShippingMethod","getShippingMethods","shippingmethods","shippingmethodsResolver","ShippingMethodsController","selectedShippingMethodId","shippingMethodId","loadShippingMethods","isNewVat","vatResolver","getVat","vatId","VatController","vatCopy","saveVat","deleteVat","isVatCodeValid","saveNewVat","updateVat","createVat","vatCode","apiRms2Factory","VatsController","selectedVatId","loadVats","MainBudgetController","BudgetsApiService","getSalesBudgets","getBudgetsForItemGroupAndCollection","getBudgetForItemGroupLocationAndCollection","getBudgetForCollection","getBudgetsForCompany","importBudgets","args","itemGroupId","locationId","companyId","BudgetsController","budgets","totalItems","onBudgetImported","loadBudgets","results","total","disabledBy","GenericComponentService","importData","fileInputDomElement","addEventListener","handleFile","file","files","reader","FileReader","onload","onLoadFunction","readAsArrayBuffer","bytes","Uint8Array","byteLength","fromCharCode","workbook","XLSX","read","firstSheetName","SheetNames","workSheet","Sheets","utils","sheet_to_json","BulkOperationController","UsersApiService","LocationsApiService","RolesApiService","flexGrid","originalRowData","rowData","rowCollection","wijmo","CollectionView","currentUserClaims","claims","dataSourceChoice","dataSourceChoices","translationKey","captureGrid","saveData","selectAll","selectNone","isAllowedToSave","getData","initialize","autoGenerateColumns","selectionMode","SelectionMode","Row","allowDragging","AllowDragging","None","allowResizing","AllowResizing","itemsSource","prepareUsersAndLocationData","saveUserAndLocationData","generateUsersAndLocationDataRows","clearGridColumns","showInactiveUsers","responses","rowHeader","Column","binding","header","allowSorting","isReadOnly","columns","locationNumber","clearRowData","firstName","lastName","userLocation","stringMatchesSearchTerm","invalidate","changedRows","getChangedRows","requests","row","locationIdentifiers","without","identifier","requestPromises","updateUserInfo","rows","gridRow","dataItem","str","splitSearchTerms","split","matchResults","term","toLower","originalData","originalRow","addRowIfValueChanged","CompaniesApiService","listAll","getCompany","createCompany","updateCompany","getCompanyTypes","getSuppliers","getSuppliersBrief","getAddressTypes","getContactInfoTypes","getCurrencies","getActiveUsers","getPricingModels","getPriceListBriefs","companies","companiesResolver","ContactsCompaniesController","selectedCompanyId","goToCompany","brandId","company","isNewCompany","companyTypes","companyTypesResolver","users","usersResolver","shippingMethods","shippingMethodsResolver","deliveryTerms","deliveryTermsResolver","paymentTerms","paymentTermsResolver","pricingModels","pricingModelResolver","priceLists","priceListResolver","companyResolver","CompanyController","$filter","priceModels","commissionPercent","priceModelObject","priceModel","addresses","currAddr","addressType","addressTypes","at","addressTypeId","companyType","purchasingCurrency","companyCopy","newAddress","newContactInfo","availableAddressTypes","availableContactInfoTypes","contactInfoTypes","resellerPriorities","selectedPriority","addNewAddress","removeAddress","addNewContactInfo","removeContactInfo","startEdit","cancelEdit","allInformationIsValid","hasCompanyName","hasDeliveryTerm","hasPaymentTerm","hasShippingMethod","hasResellerPriceList","types","resetTypes","applyResellerPriority","companyName","deliveryTerm","paymentTerm","shippingMethod","resellerPriceList","createCompanyObject","alternativeCompanyId","brands","companySystemType","companyTypeId","contactInfos","deliveryTermsId","languageId","leadTime","organizationNumber","paymentTermsId","primaryPurchaserId","primaryPurchaser","priority","purchasingCurrencyId","resellerPriceListId","saveNewCompany","companyObject","clone","address","typeName","contactInfo","contactInfoType","getAvailableAddressTypes","getAvailableContactInfoTypes","toLowerCase","onAddressUpdated","onAddressDeleted","addressUpdated","deleteAddress","addressLine1","addressLine2","addressLine3","postalCode","city","onContactInfoUpdated","onContactInfoDeleted","contactInfoUpdated","deleteContactInfo","onAddressCreated","createAddress","selectedAddressType","postalcode","onContactInfoCreated","createContactInfo","selectedContactInfoType","MainContactsController","locationResolver","addressTypesResolver","contactInfoTypesResolver","userLocations","userLocationsResolver","pricelists","pricelistsResolver","getLocation","getUsers","getUserLocations","getPricelists","ContactsLocationController","allowUpdate","selectedLocation","selectedLocationCopy","startEditing","updateContactInfo","updateAddress","allowSaveLocation","isAllowedToSetAutoOrder","pricelistName","matchAnyDemand","stocklogistics","includes","updateLocation","addressToUpdate","addr","infoToUpdate","ci","showInactiveLocations","matchEntireSearchTerm","searchTerms","inactive","match","ContactsLocationsController","goToLocation","matchExactly","forceReloadUrl","loadLocations","notify","limit","afterGetAllLocations","role","roleResolver","claimsResolver","widgetsResolver","getRole","roleId","getAllClaims","getAllWidgets","getAllDataSources","RoleController","objectTypes","claimsRowData","claimTypes","saveRole","claim","claimType","objectType","loadClaimsGridData","claimsToSave","foundClaim","updateRole","rowHeaderSystemType","rowHeaderLabel","getAllRoles","roles","rolesResolver","RolesController","selectedRoleId","selectRole","isActive","userResolver","getById","userId","ContactsUserController","HelperService","isNewUser","selectedLocations","selectedBrands","selectedUser","selectedUserCopy","validationErrors","salaryTypes","isEmailValid","mailformat","hasEmail","validateEmail","hasFirstName","hasLastName","hasUserName","hasPassword","hasRole","isEmailInfo","contactInfoTypeEmail","x","systemTypeName","emailContactInfo","getValidRoles","getBrands","intervalId","window","setInterval","saveNewUser","updateUser","propertiesToInspect","setUndefinedToNull","changedData","getChangedData","errors","today","dd","mm","yyyy","newUser","info","email","err","getSelf","inject","bypassCache","partialRight","pick","cacheResponse","employeeNumber","usernamePos","ContactsUsersController","userList","generateUserList","selectedUserId","selectUser","showExtraOptions","loadUsers","list","isCleverAppsUser","cleverAppsLoggedIn","userCopy","mobileNumber","CustomerInvoiceApiService","downloadAsPdf","getAllUnboundInvoiceRow","setStatus","saveCustomerInvoice","dueDateMin","dueDateMax","invoiceDateMin","invoiceDateMax","createdDateMin","createdDateMax","invoiceId","responseType","blob","Blob","contentDisposition","headers","fileName","getFileName","navigator","msSaveBlob","body","appendChild","URL","createObjectURL","href","download","click","revokeObjectURL","parentNode","removeChild","filenameRegex","matches","RegExp","exec","MainCustomerInvoiceController","navigated","componentController","printInvoiceDialogService","customerInvoice","customerInvoiceCopy","showInvoiceHead","toggleInvoiceHead","getStatusTranslation","getTypeTranslation","getSelectedInvoiceAsPdf","showInvoicePrintDialog","saveEdit","invoiceStatusAllowsEdit","text","isRowInvalid","isTextInvalid","intrastatCode","weight","countryOfOriginCode","allRowsValid","rowsAreValid","invoiceRows","invoiceStatus","invoiceSystemStatus","confirmationMessage","replace","invoiceNumber","languageCode","weightSetting","currentRow","rowCopy","goToArticleVariant","goToArticle","getEllipsis","getTotalCustomerinvoiceQuantity","getTotalCustomerinvoiceAmount","getTotalCustomerinvoiceTotalAmount","getTotalCustomerinvoiceVat","getTotalCustomerinvoiceTotalVat","getTotalCustomerinvoiceWeight","getTotalCustomerinvoiceTotalWeight","len","isTextDifferent","sumBy","quantity","sum","invoiceAmountExVat","vatAmount","orderArticleId","onCustomerInvoiceSelected","loadCustomerInvoices","resetFilters","selectInvoice","customerInvoices","invoiceTypes","dueDate","invoiceDate","dueMinStartDate","dueMinEndDate","invoiceMinEndDate","invoiceMaxEndDate","CustomerInvoiceRowSearchController","createdMinEndDate","createdMaxEndDate","selectedInvoiceRow","showSearchFields","invoiceRowDate","loadCustomerInvoiceRows","selectInvoiceRow","toggleSearchFields","goToCompleteInvoices","customerInvoiceRows","showBackButton","invoiceRowId","invoiceRow","customerInvoiceResolver","CustomerInvoiceSearchController","selectedInvoice","transitionToState","goToUnboundInvoiceRows","CustomerOrderApiService","cancelById","getDeliveryNotePdf","orderTypes","selectedFromLocation","fromLocation","onlyOrderNumber","orderId","MainCustomerOrderController","customerOrder","tabSelection","orderRows","orderDeliveries","showOrderHead","changeToOrderRowsTab","changeToOrderPaymentsTab","changeToOrderDeliveriesTab","changeToOrderRefundsTab","toggleOrderHead","cancelOrder","getOrderTypeTranslation","canCancelOrder","isCompanyOrder","printDeliveryNote","showDeliveryMethod","change","setUpGridData","loadGridData","deliveryMethod","setAllTabSelectionsToFalse","orderPayments","customerKind","orderRefunds","hasOrder","hasOrderStatusCancelled","deliveries","textCapital","toUpperCase","getDeliveryStatusTranslation","getDeliveryTotal","getOrderedQuantitySum","getDeliveredQuantitySum","delivery","showRows","deliveryRows","deliveryRow","orderRow","salesPrice","deliveredQuantity","discount","orderedQuantity","getTotalRefundQuantity","getTotalRefundAmount","getTotalQuantityOfAllRefunds","getTotalAmountOfAllRefunds","refund","amount","refunds","o2","hasResellerPrice","currentCustomerOrderId","getOrderRowTotalSum","getOrderRowQuantitySum","showResellerPrice","resellerSalesPrice","resellerVatAmount","onCustomerOrderSelected","filterAll","filterCreated","filterPending","filterDelivered","filterRested","filterPayed","filterCancelled","loadCustomerOrders","searchTermChangeDebounced","debounce","flushDebouncedIfEnterKey","filterAllChanged","selectOrder","customerOrders","setSearchTermOrderTypes","newEmptyLocation","keycode","flush","customerOrderResolver","CustomerOrderSearchController","selectedOrder","showSearchToggle","model","choices","filterBy","itemRenderer","filteredChoices","filterChanged","selectItem","deselectItem","formatRenderer","hideSelected","deselectSelection","selectFilterSelection","areThereItems","isUndefined","renderValue","item","alreadyAdded","choice","filterLength","by","MainDiscountManagementController","searchTermsResolver","discountTypes","discountTypesResolver","createCopy","discountResolver","discountCopyResolver","DiscountsApiService","getDiscountCopy","discountId","getDiscountTypes","getDiscount","showCancelled","canc","showApproved","appr","showCompleted","comp","DiscountController","descriptionMaxLength","links","salesChannels","mainGroups","itemGroups","discountCopy","step","maxSteps","itemGroupValidationErrors","approveDiscount","brandsChanged","mainGroupsChanged","enableEditingFromCopy","deleteDiscount","isApproveDiscountEnabled","approve","itemGroupsEmpty","getSalesChannels","timeSinceLastCall","setStepRotation","changeStep","setStep","transformDiscountPercentToDecimal","itemGroupStillBlocking","validateItemGroups","isSalesChannelSelected","endDateLessThanStartDate","validatePercentRange","removeErrorItemGroups","valueXandYValid","canEdit","canApprove","canCancel","canDelete","claimCanUpdate","claimCanCreate","claimCanDelete","endDate","transformDiscountPercentToDisplayValue","salesChannel","resp","ig","discountPercent","increase","getNecessaryData","stepIndex","getMainGroups","brandIds","brand","getItemGroups","indexes","itemGroup","degrees","maxLength","substring","isNumber","getTimezoneOffset","toISOString","saveDiscount","approveConfirmed","cancelConfirmed","cancelDiscount","minValue","maxValue","discriminator","valueX","valueY","canEditDiscount","canApproveDiscount","canCancelDiscount","canDeleteDiscount","claimCanUpdateDiscount","claimCanCreateDiscount","claimCanDeleteDiscount","getDiscounts","hasLink","rel","link","salesChannelId","tempStartDate","UTC","tempEndDate","mainGroupIds","monthsBack","discountData","sendDiscountData","jsonData","discounts","discountsResolver","currPage","months","showDropDown","show","DiscountsController","selectedDiscountId","filterDropdownIsVisisble","monthsOptions","monthsBackOption","currentDate","totalDiscounts","selectDiscount","listBackgroundStyle","flipDropDownFilter","flipCancelled","flipApproved","flipCompleted","monthChanged","discountsOld","dates","selectedMonth","selectedYear","increaseMonth","decreaseMonth","shouldDisplayDiscount","getColspanForDiscount","shouldSkipRepeat","weekday","recalcDaysInMonths","reloadUrl","loadDiscounts","days","daysInMonth","leapYear","getDay","daysBetween","millisecondsPerDay","colspan","EconomyApiService","$document","getAccountConfigMessages","downloadSIEFile","webkitURL","fromDateString","toDateString","downloadUrl","accountMessages","accountMessagesResolver","SieFileExportController","$interval","organizationNumbers","fetchSieFile","num","orgNr","MainController","UserTimeStampingDialogService","TimeStampingApiService","NavigationApiService","TimedOutLoginDialogService","currentLicense","licenseConfig","menuNodes","latestTimeStamp","loginDialog","tenant","openTimeStampingModal","isReloading","currentTenantLogoPath","supportViewOptionEnabled","getNavigationNodes","nodes","updateLatestTimeStamp","eventTarget","attr","closest","$target","toggleClass","tenantStringIdentifier","isZalando","isFutureOfRetail","isYabie","queueRefreshSession","currentUrl","$$absUrl","getLatestTimeStamps","getTokenExpired","expireDate","timeUntillExpire","timeUntillShowDialog","showRefreshSessionDialog","tokenExpireDate","sessionRefreshed","MainOrderController","OrderRowCommentDialogService","orderArticle","modalDefaults","backdrop","keyboard","size","open","OrderRowCommentDialogController","$uibModalInstance","closeModal","comment","keepChanges","close","OrderService","canShipOrder","canDeleteOrder","canCopyOrder","canEditOrder","canDeliverOrder","canApproveOrder","canPartDeliverOrder","updateCurrencyOnOrderRows","hasQuantity","isInternalOrder","createOrderRowsFromArticleVariants","canConfirmDeliveryPlan","canUndoConfirmDeliveryPlan","canChangePredictedDate","isLeadTimeDeliveryPlan","order","orderType","orderSystemType","orderArticles","purchaseCost","originalPurchasePrice","standardCostAddPercent","totalQuantity","articleVariants","stocks","articleVariantIds","av","orderRowWithComment","orderRowComment","articleVariant","supplierPrice","destination","summarizedDeliveredQuantity","orderStatus","orderSystemStatus","supplierPrices","sp","effectivePurchasePrice","shippingCost","customsPercent","otherCosts","getTotalRowSum","purchasePrice","priceListItems","resellerPriceListCurrencyRate","resellerPriceListItem","pli","price","stock","st","calculateEffectivePurchasePrice","discountAmount","rowItem","pp","ppCurrencyConverted","customsAmount","standardCostAddAmount","OrderArticlesApiService","onOrderArticlesRetrieved","BarcodeService","scannedBarcodes","getArticlesAndQuantites","splitData","textRow","splitRow","getNumberOfItemSets","lenInventory","lenInternOrder","barcodesArray","formatBarcodesString","barcode","cleanBarcode","getOrderArticlesForBarcodes","notFoundBarcodes","nfb","reasonCode","supplierName","articles","handleRetrievedOrderArticles","getStocksForArticleVariants","orderChangeCount","isModifying","onArticleSelected","Rms2OrdersApiService","lastDeliveredOrderArticle","filteredOrderArticles","hiddenDeliveredRows","haveOrderArticlePurchaseCostClaim","havePurchaseCostClaim","displayPrices","ongoingRequest","sortContentBy","sortContentReverse","restCurrentOrderArticle","viewOrderArticle","absolute","hideDeliveredRows","isRowDelivered","updatedQuantity","updatedQuantityToDeliver","canDeliverIn","anyNonVariantArticles","getCurrentDeliveryQuantity","getTotalQuantityLeftToDeliver","deliverNonVariantArticles","isSingleVariantArticle","isMultipleVariantArticle","deliver","isDelivered","hasOnlyOneOrderRow","isRowCreated","setRestFlag","isAllowedToChangeQuantity","shouldBeTreatedAsNonVariant","shouldBeTreatedAsVariant","openOrderRowCommentDialog","hasOrderId","systemStatus","article","recalculateAggregatedData","setInitialPriceDisplayChoice","setInitialQuantitiesToDeliver","every","quantityToDeliver","restOrderArticle","setNextQuantityToDeliver","deliveredDate","now","deliveryRowType","Math","max","qty","oa","deliveringUserId","lineItems","lineNumber","orderLineNumber","parseDate","restDelivery","deliverStoreOrder","deliverAutoOrder","deliverInternalOrder","deliverAutoInternalOrder","deliverReturnOrder","reloadOrder","oldOrderArticle","newOrderArticle","plannedDeliveryDate","orderCopy","nonVariantOrderArticles","shouldDeliverThisArticle","zeroAllNonDeliveryQuantities","stripUnnecessaryOrderData","deliverPartially","input","newDate","ordRow","delRow","deliveringUser","purchaser","windowWidthLimit","windowTooNarrow","innerWidth","isDelivering","isVariant","seepurchasecost","lowestStatusAmongRows","abs","art","lowestSystemStatusAmongRows","summarizedPurchaseCost","summarizedSalesPrice","summarizedQuantity","zeroQuantityAverageOrderRowPurchaseCost","zeroQuantityAverageOrderRowSalesPrice","nonZeroQuantityOrderRowPurchaseCost","nonZeroQuantityOrderRowSalesPrice","nonZeroQuantityOrderRowsCount","averageOrderRowPurchaseCost","averageArticleVariantSalesPrice","summarizedDeliveredCost","nonVariantVariantDetail1Name","variantDetail1","variantDetailName","nonVariantVariantDetail2Name","variantDetail2","nonVariantQuantityToDeliver","refreshGrid","collectionView","updateCommentOnOrderRows","isHidden","isCopying","initOrderType","initCompany","setCollectionAutomatically","setCurrencyRateAutomatically","EditDeliveryPlanningDialogService","errorColor","noErrorColor","allLocations","allUserLocations","destinations","isCreatedOrNew","orderUpdated","getOrderTypeRowStyle","getFromLocationRowStyle","getDestinationRowStyle","getCompanyRowStyle","getCollectionRowStyle","getCurrencyStyle","setCurrencyRate","canChangeCurrency","canChangeCompany","canChangeFromLocation","canChangeDestination","canChangeCollection","openEditDeliveryPlanning","isDeliveryPlanningDisabled","dateChangeDeliveryPlanningDialog","resetDeliveryPlanningTemplate","getCompanies","getCurrencyDefault","defaultCurrency","setCurrencyToDefault","getLocationsDependingOnUser","filterInactiveLocations","setLocationsDependingOnOrderType","getOrderCollections","changeOrderSeason","setOrderMetadataListeners","setDeliveryTermsToCompanyDefault","setCurrencyToCompanyDefault","setPurchaserToCompanyDefault","getResellerPriceList","comparisonDate","hasNoOrderArticles","isNotApproved","approved","hasInitCompany","hasPermittedStatus","allowedByOrderType","isOrderCopy","currencyToSet","purchaserToSet","currencySetting","showEditDeliveryplanDialog","firstEdit","stages","currentOrderArticle","rowsGrid","setWijmoInputDateLimits","captureRowsGrid","deliverOrderSection","transferQuantityDataToOrder","recalculateGridTotals","orderArticleIsDelivered","initializeGridColumns","$$phase","$apply","IsFinalDelivery","resetOrderArticleFlags","setupGrid","earliestAllowedDeliveryDate","min","Columns","frozenColumns","finishEditing","beginningEdit","addHandler","col","deliveryItemExists","has","variantRows","groupBy","variantRowValues","variantRowValue","variantDetails1Name","variantExternalId","externalId","summarizedUndeliveredQuantity","someRowIsUndelivered","reduce","memo","dlvrRow","minWidth","getDataColumns","rowTotalCol","align","variantDetail","inputType","variant","newArray","val","variant2Details","vd","variant1Details","vd1","quantitySum","vd2","orderRowsToCheck","ProductsApiService","hasClaim","hasQuantities","hasDifferentVariantPrices","colorRelatedPurchaseCosts","colorVariantRelatedPurchaseCosts","originalCellValue","pricesGrid","variantPricesGrid","capturePricesGrid","captureVariantPricesGrid","handleNonexistingArticleVariants","transferQuantityGridDataToOrder","transferPurchaseCostDataToOrder","transferVariantPurchaseCostDataToOrder","recalculateVariantGridTotals","hasGridQuantities","hasGridDifferentVariantPrices","beginEditingOrderRow","orderRowEditEnded","hasRetrievedStocks","getStockQuantitiesForCurrentArticle","getCurrencyCodeString","isAllowedToAddProduct","constructVariantPurchaseCostData","constructPurchaseCostData","resetCurrentOrderArticlePresentation","getDefaultCurrency","constructSalesPriceData","rowNumber","selection","columnNumber","columnHeader","sender","colBinding","cellValue","variantStocks","valueSplit","stockStr","getStockForArticle","dataType","hasBeenModifiedSinceLoad","variantRowQuantity","delQuantity","articleStocks","existingStock","existingStockStr","systemName","statusName","isAllowedToEditRow","itemFormatter","panel","cell","regularCellType","CellType","Cell","greyedColumnNumbers","cellType","color","backgroundColor","grouped","representative","sumQuantity","colorVariantRelatedSalesPrices","averageSalesPrice","averagePurchaseCost","quantityCustomized","firstRow","isAllEqual","parsed","purchaseCostRow","purchaseRow","currentPurchaseCostRow","deliverOrder","deliverWholeOrderCode","navigationScannerInput","scanInputKeyPress","focusScanningInputField","scanField","ev","enterKeyCode","keyCode","processNavigationScannerInput","ordArt","alternativeArticleNumber","normalize","orders","shouldShowFromLocation","shouldShowSupplier","shouldShowDestination","deliveredValue","carrier","orderNumber","orderNumberExternal","supplierReference","termsOfDelivery","ourReference","cashRegDiscount","closeHeaderOnOpen","supplierId","orderResolver","usingScannerNavigation","OrderDeliveryController","deliveryConfirmationDialogService","inputOrderSystemType","inputSupplierId","inputArticles","copiedOrderId","barcodesSendList","deliveryDate","orderArticleSwitchingLocked","isShowingScanningForm","showOrderMetadataPanel","visibility","orderHeadInput","orderArticlesAddForm","articlesOnOrder","toggleScanningForm","downloadOrderLabels","getOrderPrintout","toggleMetadataPanelVisibility","disableOrderArticleSwitching","enableOrderArticleSwitching","isAllowedtoOutDeliverOrder","isAllowedToUseScanningForm","saveOrder","showApproveButton","approveOrder","outDeliverOrder","receiveArticles","receiveOrderArticles","finalizeDelivery","returnToState","canDeliverEntireOrder","canAddToOrderDuringEdit","addArticlesToOrder","resetOrderForCopying","fillOutOrderRows","promises","articleFetchPromise","getProduct","quantityToOrder","hasBeenPrinted","createdDate","lowestStatusName","markAsDelivered","useScannerNavigation","showOnlyUndeliveredOrders","markAsUndelivered","isAllowed","isOrderStatusOtherThanDelivered","addDays","dat","valueOf","getDatum","isCompleted","deliverOrderWithDate","createOrderRows","getVariant","variantDetails2Name","orderRowArticleVariantIds","orderToSave","createWholeOrder","responseData","setOrder","updateWholeOrder","orderToSet","currentArticleId","orderIsSaved","approveMessage","hasOrderType","hasCurrency","hasDestination","hasFromLocation","hasCompany","hasCurrencyRate","fakedOrderArticle","LowestSystemStatusAmongRows","missingArticleVariants","artVar","missingOrderRows","missingOrderRow","downloadLabels","fakedOrderArticles","or","preExistingOrderArticle","fakedOrderRow","preExistingOrderRow","deliveryPlanTemplate","EditDeliveryPlanningDialogController","deliveryPlanTemplateCopy","getRowStyle","setLeadTime","recalcLeadTime","changeDateAfterLeadTime","errorLeadTime","leadTimeInDays","plan","nextPlanId","plannedDate","setNextId","sortAdd","nextPlan","sortOrder","nextStage","stage","prevStage","treatAsUTC","setMinutes","getMinutes","round","OrderDeliveryPlanningController","deliveryPlans","deliveryPlansCopy","selectedDeliveryPlanCopy","isEditingPredicted","isEditingConfirmed","recalculate","recalculatedDifference","showPlanned","goBackToOrderView","savePlan","undoPlan","editSavedPlan","getBackgroundColor","getPredictedBackgroundColor","getPredictedButtonBackgroundColor","getConfirmedBackgroundColor","saveMainComment","editingAny","editPredicted","editConfirmed","doRecalculateDiffrence","selectRow","showDifferece","isSelected","canConfirm","canUndoConfirm","canChangePredicted","isLeadTime","mainComment","initMainComment","reloadDeliveryPlan","mainCommentData","getOrderDeliveryPlan","confirmedDate","predictedDate","isEdit","saveOrderDeliveryPlan","completed","createMultipleInternalOrders","createPurchaseOrder","deleteOrder","deleteOrders","downloadAsCsv","downloadDeliveryDocument","downloadLabelsForDate","downloadPickingList","downloadTransitReport","getArticleCollections","getByOrderNumber","getDeliveryDates","getWholeDeliveryDates","getMultipleOrderPdf","getMultipleOrderCsv","getMultipleOrderPickingListPdf","getPacksForArticle","getPurchaseOrder","getPurchaseOrders","getStores","updatePurchaseOrder","updateOrderNote","sendMainCommentData","templateId","orderPlannedDate","orderPlannedDeliveryDate","doRecalculate","planData","sendPlanData","getAllOrders","purchaseOrder","barcodesList","modifiedDeliveryPlanningTemplate","sendOrderData","newStageDate","requestObject","barcodes","deliveryPlanningStages","orderIds","DEL","timeProximity","timeType","ids","incomingRequest","includeStorageLocation","includeIsPhotographed","locale","grouping","reportParameters","includePrices","onlyUndelivered","showUndeliveredOnly","onlyUnprinted","showUnprintedOnly","onlyUnapproved","showUnapprovedOnly","monthBack","getAllOrdersError","wantedTypes","note","externalOrderReference","orderData","jsonorder","toggleDisplay","displayComponent","translateDeliveryRowType","stockTransaction","accountingDate","rowType","gridPostInitialization","previousValue","flexGridData","dr","summarizedOutdeliveredQuantity","rowTotal","rowTotalDeliveredQuantity","rowTotalString","deliveryDocumentDownloadDialogService","labelPrintingDialogService","updateOrderNoteDialogService","printPickingListDialogService","labelPrintingDialogVisible","scrollToSection","scroll","goToOrderDelivery","goToDeliveryPlanning","getOrderAsPdf","getOrderAsCsv","getOrderLabels","showLabelPrintingDialog","showPrintPickingListDialog","selectOrderArticle","goToModifyOrder","goToCopyOrder","calculateDeliveredCost","orderNote","success","selectedOrderArticle","deliveredCost","oRow","dRow","onSearchTermChanged","onOrderSelected","flexGridCurrentlySelectedItem","orderSearchGrid","showAllOrderTypes","scannerInput","contextMenuVisibility","useMonthsBack","gridInitialization","gridSelectionChanged","shouldShowInventoryReasonHeader","changeToStoreOrderSearch","changeToInternalOrderSearch","changeToAutoOrderSearch","changeToAutoOrderNormalSearch","changeToAutoOrderInternalSearch","changeToInventoryOrderSearch","changeToReturnOrderSearch","changeToAllOrderSearch","contextMenuEdit","contextMenuDeliver","contextMenuCopy","contextMenuGetAsPdf","contextMenuGetAsCsv","contextMenuPrintLabel","contextMenuDelete","contextMenuUndo","togglePrintMode","printSelectedOrders","printSelectedOrdersCsv","printSelectedOrderPickingLists","deleteSelectedOrders","isAllowedToDeleteSelected","hideContextMenuListener","setContextMenuShowAll","keydown","enterOrderByScannedBarcode","setInitialOrderTypes","onlyScan","differenceWith","isEqual","currentOrderListing","printModeType","showSelection","disablePrintMode","getSelectedOrderIds","allowedToDelete","collecitonView","areAllOrdersDeleteable","isDeleteable","flex","host","hostElement","contextMenuListener","jqContextMenu","ht","hitTest","pageX","pageY","CellRange","css","clientX","clientY","clickedRowNumber","edit","getAsPdf","getAsCsv","printLabel","undo","scannedCode","destinationIsOk","fromLocationIsOk","MainOrderSearchController","showUndeliveredOnlyInit","showUnprintedOnlyInit","showUnapprovedOnlyInit","loadOrders","afterGetAllOrders","isElasticSearchEnabledTenant","formatPlannedDeliveryDate","articleIds","articlesGrid","captureArticlesGrid","selectArticle","loadPurchaseOrderData","updateAddedArticlesCollection","recalculateArticleTotals","refreshArticlesGrid","addedArticle","ar","otbGrid","companyBudgets","captureOtbGrid","recalculateBudgetData","articleCollection","collectionFiltered","budget","locationGrouped","groupLocation","totalOrderedQuantity","totalOrderedCost","orderedCost","costPriceThisOrder","quantityThisOrder","totalCost","budgetQuantity","budgetCost","openToBuyQuantity","openToBuyCost","openToBuyPercentage","totalsElement","isTotalsRowElement","isNewPurchaseOrder","totalsRow","currentLocation","budgetRow","budgetRows","selectedColorVariant","selectedArticle","onPurchaseOrderChanged","distributionGrid","highlightForeGroundColor","highlightBackgroundColor","summaryCellBackgroundColor","totalQuantityToDistribute","packs","selectedPack","captureDistributionGrid","cellEditEnded","distributeBudgetQuantities","recalculateTotals","recalculateDistributionGridTotals","getAndApplyBudget","setupGridColumns","setupGridData","getArticlePacks","configureGridItemsFormatter","locationColumn","colorColumn","budgetColumn","totalQuantityColumn","sizeVariants","getSizeVariants","sizeVariant","rowTotalColumn","locationsToProcess","addedLocation","rw","isDistributionRowElement","articleName","foundOrder","foundRow","foundOrderArticle","updateLocalPurchaseOrder","writeUpdatesToPurchaseOrder","newOrderRow","columnTotalsRow","colorRow","columnQuantity","colorsRow","rowQuantity","getColorVariants","colorVariants","fontWeight","totalDistributionQuantity","totalSizesDistributionQuantity","totalsSizesRowElement","totalsSizesRowElementKeys","floor","setGridBudgetValues","distributionRow","packArticleVariants","packArticleVariant","rd","StockLogisticsApiService","stockLogisticsHasBeenCreated","toggleExtraOptionsVisibility","createStockLogistics","stockLogistics","getByArticle","getResponse","oldStockLogistics","stlog","stockLogistic","stLog","newEmptyStockLogistic","orderingPointMax","saveStockLogistics","postError","getError","articlevariant","orderingPointMin","packSize","quantityInTransit","monday","tuesday","wednesday","thursday","friday","saturday","sunday","onColorSelected","colorsChoiceAndTotalsGrid","colorsAndTotalsRows","captureColorChoiceAndTotalsGrid","selectColor","colVar","colorName","colorVariant","purchaseOrderResolver","purchaseOrderId","PurchaseOrderController","selectArticles","purchaseOrderChanged","recieveArticles","generateEmptyPurchaseOrder","initializeOrderEditing","minimizedPurchaseOrder","removeUnnecessaryPurchaseOrderData","newPurchaseOrder","goesThroughStorageLocation","storageLocation","orderChange","orderChangeDate","newOrder","PurchaseOrderAnalysisApiService","getPurchaseOrderAnalysis","getSupplierBriefs","getArticleCollectionBriefs","getMainGroupBriefs","suppliers","mainGroupResolver","articleCollections","articleCollectionResolver","PurchaseOrderAnalysisController","purchaseOrderAnalysisFilterDialogService","purchaseOrderAnalysisArticles","purchaseOrderAnalysisArticlesLength","completeListOfPurchageAnalysisRows","showWeeks","showProduct","allMainGroups","weekLimit","selectedWeekLimit","keepProductTogether","numberOfResultsPerPage","selectedMainGroup","showAllCollections","ac","includeInactive","selectedSupplier","selectedArticleCollection","selectedNumberOfResultsPerPage","toggleShowProduct","canCreateOrder","createOrder","calculateMonth","toggleArticleRows","sumRowsWeek","sumRowsMonth","sumQuantityToOrder","sumTotalQuantityToOrder","sumWarehouseStock","sumStoreStock","sumOrderedQuantity","sumWeeksLeftInStock","sumMonthsLeftInStock","sumRowWeeksLeftInStock","sumRowMonthsLeftInStock","weeksLeftInStockAfterOrder","monthsLeftInStockAfterOrder","clearFilter","filterAnalysisRows","averageSalesPerMonth","averageSalesPerWeek","showChangedWeekAverage","showChangedMonthAverage","showFilterDialog","goToFirst","goToPrevious","goToNext","goToLast","getPageNumber","loadPurchaseOrderAnalysis","pageNumber","previous","last","reloadArticles","refilterArticles","includeAllArticleCollections","completeListOfArticleVariants","showRow","mainGroupId","weeksLeftInStock","mg","mainGroupCode","mainGroupDescription","listOfArticles","productNumber","productName","averageSales","weeksLeft","currentWarehouseStockQuantity","monthsLeft","week1","week2","week3","week4","week5","week6","week7","week8","week9","week10","week11","week12","weekNo","monthNo","currentStoreStockQuantity","toFixed","PurchaseOrderSearchController","purchaseOrders","onlyOrderChangeOrders","IntrastatReportsController","Rms2ReportsApiService","getIntrastatReport","reportRequest","fromDeliveryDate","toDeliveryDate","content","TransitReportsController","selectedCompanies","printLanguage","getTransitReport","showWarning","transactionId","crypto","randomUUID","deliveryRequest","lineItem","closeDelivery","orderRowIds","FileDataImportApiService","ArticleImportController","JSonAdaptedSheetData","inDataColumnNames","articlesOrdersImportRequest","articlesOrdersImportRows","selectedCollection","isCurrent","mapping","articleDescription","variant1Name","variant2Name","previousPrice","itemGroupString","subCategory","articleTypeString","departmentCode","articlesOrdersImport","sendRequestData","saveMapping","hasError","getArticlesOrdersImportColumnMapping","columnName","hasNoCollectionCode","hasNoBarcodeMapping","hasNoCompany","extractInDataColumnNames","createRequestData","mappingKeys","rowObject","requestDto","mapKey","mapValue","mappingRequest","setArticlesOrdersImportColumnMapping","createArticlesOrders","importFileId","showErrorToaster","sheetData","ArticleAddNewArticleVariantDialogService","variantGroups","articleObject","ArticleAddNewArticleVariantDialogController","VariantsApiService","selectedVariantGroup","selectedVariant","sizes","colors","isBarcodeGenerationAllowed","fromSizeOption","newArticleVariants","newColorName","newSalesColorName","colorError","newArticleCollection","newPurchaseCost","newSalesPrice","newPreviousPrice","resetValuesFromArticle","updateValues","removeVariantDetail","updateFromSizes","addSelectedVariant","validateNewColor","validateSizes","validateBarcode","anyVariantsSelected","anyErrorOnVariants","hasWarning","isAddButtonDisabled","getErrorTooltip","addArticleVariantsToProduct","addWatchesForSelect","addUniqueColors","addUniqueSizes","firstInit","variantGroup2","vg","brandCategory","severity","messageKey","colorObj","initializeNewArticleVariants","fromSizes","sortedSizes","sort","b","addNewArticleVariant","atIndex","removeable","salesColour","useThisVariant","isRemoveable","errorBarcodeGenerationNotAllowed","existingColor","sizesOnColor","newArticleVariant","resetValues","shouldClose","newAv","select","normalizeString","newArtVar","sizeId","errorOnSize","sizeExist","checkErrorOnVariant","errorBarcodeExists","errorBarcodeDuplicate","checkIfBarcodeOnSelectedArticle","checkIfBarcodeExistsAlready","checkIfBarcodeDuplicatesInNewVariants","filteredAVlength","filteredAVBlength","articleVariantBarcodes","checkIfBarcodeExists","variantDetails","retVal","r2","ArticleChangeItemGroupDialogService","ArticleChangeItemGroupDialogController","FileOperationsApiService","selectedArticleCopy","newArticleVariantsForNewSuppliers","hasChanged","isNewItemGroup","isNewSupplier","changesToSupplier","includeSupplierPrices","availableSubCategories","availableDepartments","newSuppliers","sameSuppliers","removedSuppliers","changeItemGroup","copyToAllPrices","saveNewItemGroup","setSupplierData","copyAllNewVariantsForSupplierPrices","loadItemGroupData","getItemGroup","loadMainGroupData","preferredSupplier","newSupp","oldSupp","sameSupp","Boolean","itemGroupCode","setDefaults","getMainGroup","subCategories","subCategoryCode","departments","department","resolveIntrastats","selectDefaultDepartment","selectDefaultSubCatgory","selectDefaultAccounts","variant2","selectDefaultVat","selectDefaultIntrastat","selectDefaultVariantGroup","selecteDefaultIsVariant","selectDefaultSalechannels","supplier","newVariant","preferredSupplierId","intrastats","unionBy","intrastat","internalDescription","intersectionBy","discountAccount","salesAccount","groupId","variantGroup","changeVariantGroup","sourceArticleVariant","newItemGroupId","newPreferredSupplierId","newArticleVariantSupplierPrices","salesChannelsIds","artVarSupp","newSupplierId","itemGroupLongName","ArticleChangeVariantDetailDialogService","articleChangeVariantDetailObject","getArticleChangeVariantDetailObject","ArticleChangeVariantDetailDialogController","changeVariantDetailObject","articleVariantDetailObjects","dobj","newVariantDetailName","anyError","isValidating","saveNewVariantDetails","anyChanges","getColourText","validate","newVariantDetailObject","withNewObj","variantDetailObject","hasIntersectingColours","coloursOnArticleVariant","aColours","bColours","intersecting","productId","articleVariantDetailObjectsChanged","changeArticleVariantDetail","colours","cutoff","returnString","ArticleLabelsPrintDialogService","getProductStocks","ArticleLabelsPrintDialogController","print","printData","flexGridIsEditing","submittingEnabled","stockData","stockLocations","getStockDataFromLocation","selectedLocationChanged","newLocation","relatedStock","getStockFor","variantDetail1Name","variantDetail2Name","startLoadingSpinner","labelsRequests","totalQty","column","downloadArticleVariantLabels","stopLoadingSpinner","ArticleNewIntrastatDialogService","ArticleNewIntrastatDialogController","saveIntrastat","saveNewIntrastat","itemGroupsResolver","articleCollectionsResolver","salesChannelsResolver","productClasses","productClassesResolver","currenciesResvolver","defaultCurrencyResolver","hasSimpleWms","hasSimpleWmsResolver","metaFieldValues","metaFieldValuesResolver","metaFieldsResolver","articleResolver","getItemGroupFlats","getArticleTypes","getProductClasses","getMetaFieldValues","getMetaFields","ArticleController","ProductService","colourChangeDialogService","environment","rowSupplierPricesData","articleChangeCount","selectedArticleVariantFilter","selectedSupplierFilter","supplierRowData","isNewArticle","searchedVariant","mayReadStockLogistics","stocklocations","showStocklocationsTab","tenantsWithStocklocationTab","tenantsWithoutPriceListTab","firstTimeLoadOfPrices","priceListPriceDisplaySelections","label","priceListPriceDisplaySelection","getMargin","initSupplierPricesGrid","downloadArticleLabels","openLabelsModal","openItemGroupModal","openNewIntrastatModal","addAdditionalArticleVariants","isNewWithItemGroup","loadSuppliers","changeToArticleTab","changeToArticleVariantsTab","changeToSupplierPricesTab","changeToBarcodesTab","changeToStocklocationsTab","changeToPriceListsTab","changeToMetaFieldsTab","loadSupplierPricesGridData","filterSupplierRowData","filterArticleVariantData","calculatePurchasePrice","calculateCostPrice","copyToAllVisibleSupplierPrices","getStockLocations","updateAllArticleVariantHeights","updateAllArticleVariantLengths","updateAllArticleVariantWeights","updateAllArticleVariantWidths","updateAllArticleVariantMeursingCodes","updateAllIntrastats","updateAllArticleVariantCollections","isSearchedVariant","showPriceListsTab","hasCurrencyConversions","productStateGo","openColourChangeModal","isAlreadyPersisting","unsubEvent","$digest","unsubSaveMetaFieldsEvent","upsertMetaFields","unsubSaveMetaFieldValuesEvent","upsertMetaFieldValues","currentArticleCollection","searchedBarcode","bc","bc2","initArticleVariantBarcodes","resolveAccounts","canReadPrices","loadPrices","getProductPrices","productPrices","variants","pl","priceListId","priceListName","priceListCode","getProductStockLocations","items","variantId","storageLocations","isPhotographed","supplierList","origValue","variantHeight","productHeight","variantLength","productLength","variantWeight","productWeight","variantWidth","productWidth","meursingCode","supplierRow","initFilters","uniqBy","variants1","selectedVariant1","variants2","selectedVariant2","variantDetail1Id","variantDetail2Id","resetSupplierPricesGridWithData","sumCountBarcodes","barcodesZerofill","prefSupp","vatMultiplier","brv","saveNewArticle","updateArticle","updateProduct","createProduct","initSupplierPricesGridData","supplierPricesRowdata","supplierPriceRow","companyRows","filteredRows","newRow","alternativeProductNumber","existingRow","createMissingArticleVariants","allVariant1Details","allVariant2Details","missingVariantCombinations","vc","sourceRow","targetRow","stringState","variantDetail1s","variantDetail2s","gridData","canAddNewColor","gridEditTypes","loadGridEditTypes","selectedGridEditType","changeGridEditType","getNewColorInputStyle","updateVariant1","getVariant1EditStyle","openAddArticleVariantDialog","isAllowedToChangeColoursOnProducts","constructGridData","articleVariantArray","populateVariantDetailsArrays","artVars","currentColorArray","varDet2","isGeneratedArticleVariant","setCanAddNewColor","alreadyExistingVariant","gridEditType","varDet1","newVariantDetail1Name","firstArticleVariantId","isDuplicate","isDetailNameDuplicate","gridRowArticleVariant","onArticleVariantUpdated","changeCount","handleMultipleArticleVariants","inputBoxDisplayValue","inputValueChanged","reloadInputBoxValue","ArticlesController","goToNew","PricelistsApiService","PriceListController","newPrice","removeOverridePrice","foundExistingPrice","loadPriceForCurrentLocation","defaultLocation","relevantArticleVariantPrice","articleVariantPrices","articleVariantPrice","updateOverridePrice","PriceListManagementController","mainGroupsResolver","isNewBrand","brandCategories","brandCategoriesResolver","barcodeTypes","barcodeTypesResolver","tenantConfig","tenantConfigResolver","variantGroupsResolver","salesChannelResolver","brandResolver","BrandsApiService","getBrand","getBrandCategories","getBarcodeTypes","getTenantConfig","getVariantGroups","BrandController","brandCopy","selectedMainGroups","removedCompanies","addMainGroups","removeCompany","saveBrand","isBrandCodeValid","isBrandCategoryValid","isBarcodeTypeValid","isBrandDescriptionValid","createItemGroups","saveNewBrand","updateBrand","createBrand","tempMainGroups","igrp","isBrandCodeAlreadyAssigned","assignedBrandCodes","brandCode","articleBrandCodeLength","barcodeType","brandDescription","addedCompanies","brandsResolver","BrandsController","selectedBrandId","sortingKey","sortingDesc","sortBrands","loadBrands","businessarea","isNewBusinessArea","businessareaResolver","BusinessAreasApiService","getBusinessArea","businessareaId","BusinessAreaController","businessareaCopy","saveBusinessArea","deleteBusinessArea","isBusinessAreaCodeValid","saveNewBusinessArea","updateBusinessArea","createBusinessArea","getBusinessAreas","businessareas","businessareasResolver","BusinessAreasController","selectedBusinessAreaId","loadBusinessAreas","selectSameTwiceAllowed","articlesToExclude","onArticlesRetrieved","searchResultArticles","articlesToAdd","refreshArticles","addArticles","getProducts","excludeList","itemGroupInlineController","variantGroup1s","variant1","variantGroup2s","departmentsResolver","DepartmentsApiService","getDepartment","departmentId","DepartmentController","departmentCopy","subCategoryId","getPage","DepartmentsController","selectedDepartmentId","totalRows","pageChanged","loadDepartments","importFile","importFileResolver","getImportFile","ArticleImportEditorController","overviewGrid","articleGroupingsGrid","intrastatCodeLength","oldArticleGroupingRowValues","warningColor","importFileCollection","orderInfo","collectionCodes","itemGroupNamesAndCodes","articleTypeNames","captureOverviewGrid","saveImportFile","saveAndFinalize","wjAutoCompleteSetDefaultValue","setWjDefaultItemGroup","setWjDefaultArticleType","getAlternativeArticleNumberStyle","getItemGroupStyle","getArticleTypeStyle","getColorVariantStyle","getSizeVariantStyle","getBarcodeStyle","getCollectionStyle","getPricesStyle","getIntrastatStyle","getDepartmentStyle","distinctAltArticleNumbers","distinctArticleNames","altArticleNumberChange","articleNameChange","changeAllAltArticleNumbers","changeAllArticleNames","rowsGroupedByArticle","captureArticleGroupingsGrid","registerOldArticleGroupingInfo","copyArticleGroupInformationToAllRelatedRows","distinctColors","colorChange","changeAllColors","rowsGroupedByColor","collectionChanged","itemGroupChanged","articleTypeChanged","switchToOverview","switchToArticles","switchToArticleVariants","switchToColors","switchToSizes","switchToSubCategories","viewVisibility","overview","setIsEditingTrue","setIsEditingFalse","isFileDataOkay","isBarcodeOnWrongArticle","showWarningToaster","isAnyBarcodeOnWrongArticle","printDebug","tempvar","containsCompany","itemGroupShortName","shouldGenerateOrder","validateOrderInformation","applyScope","articleTypeName","setVisibilityToNone","refreshOverviewGrid","constructDistinctArticleData","groupRowsByArticle","constructDistinctColorData","groupRowsByColor","importRow","updateArticlesOrdersImportFile","updateAndFinalizeArticlesOrdersImportFile","propertyName","startingItem","cellItem","itemsWithSameBarcode","existsDifferentArticleWithSameBarcode","uniqueObjectsWithAltArticleNumbers","uniq","uniqueObjectsWithArticleNames","fullArticleGrouping","getArticleGroupingKey","groupingKeys","rowsToChange","currentEditItem","rowsToUpdate","rowToUpdate","uniqueObjectsByColor","selectedItem","returnValue","articleNumberIsntTheSame","articleDidntExistButArticleVariantDid","articleIdIsntTheSame","someRowsAreWithoutQuantity","someQuantitiesAreMalformed","ImportFilesListController","loadImportFiles","importFiles","editImportFile","deleteImportFile","getImportFiles","importId","deleteArticlesOrdersImportFile","deletedItem","IntrastatApiService","getIntrastats","getIntrastat","deleteIntrastat","isNewIntrastat","intrastatResolver","intrastatId","IntrastatController","intrastatCopy","intrastatsResolver","IntrastatsController","selectedIntrastatId","loadIntrastats","attributeVisibility","meursing","isNewMainGroup","variantsResolver","subCategoriesResolver","businessAreas","businessAreasReasolver","MaingroupsApiService","getVariants","getDepartments","getSubCategories","MainGroupController","mainGroupCopy","addBrands","saveMainGroup","isVatValid","isMainGroupVatValid","isMainGroupCodeValid","isMainGroupDescriptionValid","filterVariant1","preferredVariantGroups2","saveNewMainGroup","updateMainGroup","createMainGroup","tempBrands","isMainGroupCodeAlreadyAssigned","assignedMainGroupCodes","articleMainGroupCodeLength","MainGroupsController","selectedMainGroupId","sortMainGroups","loadMainGroups","onSearchContextChanged","defaultSalesChannel","salesChannelDescription","defaultArticleCollection","shouldGetOnlyNewArticles","shouldGetOnlyCurrentArticles","shouldGetOnlyArticlesWithSetPrices","shouldGetOnlyArticlesWithVolumeDiscounts","minPrice","maxPrice","usePriceRange","selectedSalesChannel","search","shouldOnlyGetArticlesWithManualPrices","shouldOnlyGetArticlesWithVolumeDiscounts","getProductIds","searchContext","saleschannelId","PricelistsHelperService","editorArticles","priceListHeads","useVariantDetail1Level","useVariantDetail2Level","volumeDiscounts","showVolumeDiscountRules","itemsPerPageAlternatives","priceListSort","handlePriceChange","loadArticles","clearArticles","showSku","showBarcode","getVolumeDiscounts","volumeDiscount","savePriceListEditorArticles","priceListItem","editorArticle","priceRangeToUpdate","priceListPrices","priceListPrice","fieldName","isCalculatedPrice","priceList","priceListHead","exchangeRate","originalPriceMin","priceFactor","originalPriceMax","isSystemPrice","recalculateRowPrices","getPriceListEditorArticles","editorArticlesTotal","priceRangeItem","maxPriceFieldName","minPriceFieldName","onPriceRangeItemChanged","inputBox","oldPriceRangeItem","valueBeforeEditing","inputBoxFocused","inputBoxBlurred","handleInputChange","captureInputBox","getInputBoxStyle","handleKeypress","markForRemoval","constructDisplayValue","previousMaxPrice","previousMinPrice","storePriceRangeItem","storeInputValue","inputValueToNumber","toNumber","revertInputValue","ib","charCode","revertPriceRangeItem","shouldBeDeleted","isPriceOnAnyPriceList","changeVolumeDiscount","volumeDiscountAllowed","selectedVolumeDiscount","firstVolumeDiscount","generatePlaceholderVolumeDiscount","placeholderVolumeDiscount","uniqueVolumeDiscounts","firstLoop","PriceListEditorController","selectedArticleIds","selectedArticleCollectionId","selectedSalesChannelId","searchContextChanged","pricelist","isNewPricelist","psychologicalPrices","psychologicalPriceResolver","customerGroups","customerGroupsResolver","pricelistResolver","getPricelistBrief","pricelistId","getPsychologicalPrices","PricelistController","pricelistCopy","isPricelistCodeValid","isPricelistNameValid","isSalesChannelCodeValid","hasChosenCurrency","savePricelist","leastNetProfitPercentage","psychologicalPrice","saveNewPricelist","updatePricelist","createPricelist","pricelistCode","salesChannelCode","getPricelist","getPricelistBriefs","PricelistsController","selectedPricelistId","loadPricelists","MainProductsController","importType","onImportFileChanged","FileDataImportApiServiceV2","showReload","reloadFile","goToOrder","goToEditor","handleImportFileChanged","importFileName","revalidate","deleteProductImportFile","dateModel","dateMin","dateMax","columnNames","columnModel","columnOrderBy","columnItemRenderer","columnFilterBy","columnPlaceholder","multiplicity","mandatory","filterColumn","resolveRenderer","columnRenderItem","resolveSelectRenderer","query","getSelectFilter","choiceModel","choiceOrderBy","choiceItemRenderer","choiceFilterBy","choicePlaceholder","filterChoice","choiceRenderItem","suppliersResolver","orderCollections","orderCollectionsResolver","ProductImportController","$sce","importFileType","importSku","usePricesFromExistingProducts","forPurchaseCost","forSalesPrice","forPreviousPrice","importFileColumnNames","importMapping","productImportRequest","importRows","orderCollection","errorList","assumptionList","readyForSave","readyForImport","useMainGroupAndBrand","isAllowedToImportSku","handleImportFile","saveSupplierMapping","validateImportFile","mandatoryAccordionAvailable","mappingsAccordionAvailable","confirmGoToEditor","changeToImportNewFileView","changeToUseExistingFileView","isPurchasingCurrencyCodePopulated","getPricesFromProductWarningMessage","coll","getColumnMapping","filteredKeys","dbColumnNames","nameStr","newColumn","matchedColumns","fileCol","dbColumns","dbCol","dbc","matchedCol","fileColumn","companyCode","locationCode","articleCollectionCode","orderCollectionCode","foo","trustAsHtml","cleanColumnNames","extractImportFileColumnNames","sheetIndex","keyIndex","origKey","keyStr","mapCol","externalSku","supplierSku","countryCode","saveColumnMapping","validateMandatoryFields","columnsToCheckForEmptyFields","importMappingColumnsToCheck","errorStr","addErrorList","findMultipleSeparatorsPattern","findMultipleSeparatorsRegExp","findLastCommaPattern","findLastCommaRegExp","findNonDigitCharactersPattern","findNonDigitCharactersRegExp","findFirstCommaAndAllNumbersBehindItPattern","findFirstCommaAndAllNumbersBehindItRegExp","addAssumptionList","canParseDate","outputErrors","ass","assumption","assumptionMessage","isImportingSku","requestRowDto","createProductImportEntry","updateSummary","showSummaries","summaries","recalculateSummaries","count","products","productVariants","variant1s","variant2s","selectionOptions","groupRow","editProperty","onSelectionChanged","onFocus","onBlur","filterFunction","backgroundClass","numberOfResults","placeholderModel","localSelectionOptions","selectionChanged","refreshSearchItems","dropDownToggled","initializePlaceholderModel","fullName","splitTerms","regexes","selectionOption","regex","take","isOpen","selectFileRows","deselectFileRows","validationErrorChangeCount","numberOfFilteredRows","warnings","hiddenWarningDisplayMessages","showWarnings","showErrors","selectValidationError","hideWarning","getNumberOfShownErrors","getNumberOfShownWarnings","resetWarnings","$watchCollection","validationError","warning","w","displayMessage","hide","fileRows","checkResults","selectedFileRowIds","tenantCurrency","onGroupRowChanged","componentRegistrationHandler","lastFocusedFileRow","lastBlurredFileRow","highlightingPriorities","numberOfLoadingRows","currentDisplayedGroups","itemGroupOptions","CompanyOptions","departmentOptions","subCategoryOptions","articleTypeOptions","articleCollectionOptions","orderCollectionOptions","displayedColumns","displayedGroups","fixedItemsPerPageChoices","gridColumnIdentifiers","groupingLevels","groupingType","currentGroupingLevel","deleteFileRow","textInputBoxFocused","textInputBoxBlurred","fileRowChanged","groupRowChanged","deleteGroupRow","saveFileRow","saveGroupRow","updatePage","updateValue","getRowInputStyle","getRowInputClass","getInputTooltip","getPriceInTenantCurrency","filterChoices","isInputReadOnly","cleanBarcodes","setGridColumnIdentifiers","getDropdownSelections","sortFileRows","setDisplayedRows","validateImportFileWithId","relevantFileRows","fileRow","handleInformationHighlighting","checkImportFileDataExistence","validationResults","handleValidationErrors","res","relevantEditProperties","groupRowsByRelevantEditProperties","groupRowsByImportFileRow","editPropertyName","lastRowExists","isPristine","updateFileRow","resetValidationErrors","newValidationErrors","validationErrorRow","fr","groupings","groupingString","counter","groupElements","tenantCurrencyCode","numberOfRows","gr","sourceCollection","numberOfItems","startPosition","endPosition","onlyCurrentCollections","getItemGroupsOnFileId","companyNamnes","itemGroupElement","selectionElements","departmentDescription","departmentElement","sc","subCategoryName","subCategoryElement","articleSystemType","articleTypeElement","oc","orderCollectionElement","articleCollectionElement","CompanyElement","saleChannelOptions","saleChannelElement","countryOptions","countryElement","relatedCheckRow","chk","importRowId","relatedErrorRows","errorFileRow","setHighlightingAndType","dataCheckRow","highlighting","consolidateDataCheckAndValidationErrors","highlightRow","highlightType","minBy","dataCheckMatchesRow","validationErrorsForThisProperty","properties","validationErrorMatchesRow","getHighestHighlightPriority","shouldShowError","barcodeExists","externalSkuExists","getDataAlreadyExistsErrorMessage","shouldHighlight","alternativeArticleNumberExists","getDataAlreadyExistsMessage","currentPriority","errorSeverity","errorPriority","green","orange","red","white","black","transparent","borderWidth","borderStyle","highlightElement","doubleWidthColumns","caClass","tooltipText","rowCurrencyCode","rowCurrency","foreignPrice","tenantDefaultCurrency","shouldCalculateLocalCurrency","removeDisallowedCharacters","inputElementType","ProductImportEditorController","informationDialogService","importFinalizationDialogService","criticalSeverityLevels","dataCheckResults","importUpdateCount","selectedDisplayMessage","showAdvancedFunctionsPanel","hasAdvancedImportModule","hasAdvancedImport","importGridComponent","resetSelectedImportRows","isAllowedToFinalize","shouldShowValidationErrorsPanel","finalizeImportFile","showFinalizeDialog","updateImportSummary","checkForConnectionWithArticleData","getMissingSiblingRows","getPdfLabels","registerImportGridComponent","removeIncorrectCharactersFromBarcodes","setAllRowsPristine","showColumn","maxResults","field1","field2","columnVisible","vitalChanges","vitalChange","showItemGroupCode","currentItemGroupCode","suggestedItemGroupCode","showAlternativeArticleNumber","currentAlternativeArticleNumber","suggestedAlternativeArticleNumber","showArticleName","currentArticleName","suggestedArticleName","showArticleDescription","currentArticleDescription","suggestedArticleDescription","showVariant1Name","currentVariant1Name","suggestedVariant1Name","showVariant2Name","currentVariant2Name","suggestedVariant2Name","showDepartmentCode","currentDepartmentCode","suggestedDepartmentCode","showSubCategoryCode","currentSubCategoryCode","suggestedSubCategoryCode","connectWithArticleData","productImportId","isAutoGeneratedSiblingRow","refreshView","criticalErrors","getCriticalErrors","fileRowsToSave","updateFileRows","localRow","showErrorsPanel","nonHiddenWarnings","existsSiblingPrices","dialogResponse","priceUpdateGroupingLevel","finalizeImport","errorType","getItemGroupBriefs","getProductVariants","getProductVariantsInTransitValues","getProductVariantsStocks","getRights","getMultipliers","ReadMultipliersToEdit","updateMonthMultiplier","createMonthMultiplier","deleteMonthMultiplier","changeMultiplierOnArticle","getAllArticleVariants","getVariantDetailOptions","getVariantDetailOptionsPaged","showInactiveArticles","metaFieldsData","onlyWithNegativeEshopStock","articleVariantsAndLocationIds","labelRequests","warehouseId","variantDetailType","requestId","stockLogisticsMonthMultipliersDto","isNewPsychologicalPrice","PsychologicalPricesApiService","getPsychologicalPrice","psychologicalPriceId","PsychologicalPriceController","psychologicalPriceCopy","savePsychologicalPrice","isPsychologicalPriceNameValid","addInterval","removeInterval","clearIntervals","priceIntervals","newInterval","resultValue","interval","getNewRowDefaults","fromInterval","diff","saveNewPsychologicalPrice","updatePsychologicalPrice","createPsychologicalPrice","hasPriceIntervals","psychologicalPricesResolver","PsychologicalPricesController","selectedPsychologicalPriceId","loadPsychologicalPrices","Rms2ProductsApiService","getArticleColours","createColourChange","isNewSalesChannel","SalesChannelsApiService","getSalesChannel","SalesChannelController","salesChannelCopy","saveSalesChannel","saveNewSalesChannel","updateSalesChannel","createSalesChannel","SalesChannel","isSalesChannelCodeAlreadyAssigned","assignedSalesChannelCodes","SalesChannelsController","loadSalesChannels","SubCategoriesApiService","getSubCategory","getMaingroups","SubCategoriesController","selectedSubCategoryId","loadSubCategories","SubCategoryController","subCategoryCopy","VariantGroupsApiService","getVariantBriefs","getVariantDetails","getVariantGroupBriefs","getVariantGroup","saveVariantGroup","groupName","variantResolver","variantGroupResolver","variantGroupId","VariantGroupController","variantGroupCopy","orgDetails","addedVariantDetails","loadVariantDetails","unionWith","updateVariantGroup","VariantGroupsController","selectedVariantGroupId","loadVariantGroups","getVariantGroupsByVariantId","getAllVariantDetails","updateVariantDetails","pageSizeDefault","pageSizeOptions","variantDetailsResolver","VariantController","saveVariant","isNewVariant","updateVariant","detailsToUpdate","detail","statisticName","VariantsController","selectedVariantId","quantityGroups","quantityGroupsResolver","isNewVolumeDiscount","volumeDiscountResolver","VolumeDiscountsApiService","getVolumeDiscount","volumeDiscountId","getQuantityGroups","VolumeDiscountController","volumeDiscountCopy","saveVolumeDiscount","addLimit","removeLimit","clearLimits","limits","quantityGroup","newLimit","minimumQuantity","saveNewVolumeDiscount","updateVolumeDiscount","createVolumeDiscount","isQuantityGroupValid","volumeDiscountsResolver","VolumeDiscountsController","selectedVolumeDiscountId","loadVolumeDiscounts","resellerOrder","initCollapsed","updateAddressDialogService","ResellerOrdersApiService","collapseHeader","formatAddress","formatCityAndCountry","isTheSameAddresses","canSetOrderDeliveryAddress","setOrderDeliveryAddress","canSetOrderInvoiceAddress","setOrderInvoiceAddress","requestAddress","deliveryAddress","zipCode","invoiceAddress","strings","address1","address2","onResellerOrderSelected","printLanguageConfirmationDialogService","resellerOrders","resellerOrderPrintList","resellerOrderSaleList","orderStatuses","returnFilter","isFilterOrderForInvoice","filterOpen","filterClosed","filterOrder","filterReturnOrder","isProcessing","loadResellerOrders","loadResellerReturnOrders","loadAllResellerOrders","filterAllOrders","createNewOrder","createNewReturnOrder","containsStatus","printAllResellerOrders","printAllSelectedResellerOrders","printSelectedResellerOrder","checkToPrintList","checkToSaleList","checkAllToPrintList","checkAllToSaleList","getAllCheckedToPrintList","getAllCheckedToSaleList","generateSales","deleteResellerOrder","disableDeleteOrder","disablePrintOrder","createReturnOrderFromOrder","disableMakeReturnOrder","readyForSale","deleteLink","hasDeleteLink","hasPrintLink","createResellerReturnOrderBasedOnOrder","showInfo","createSalesOnClosedFulfillmentLineItems","checkeverything","checked","matchingIndex","printId","checkall","getAllSearchedResellerOrderZip","resellerOrderIds","getSelectedResellerOrderZip","getAllResellerOrdersPdf","getResellerOrders","getResellerReturnOrders","getAllResellerOrders","stores","isCheckBoxAll","statuses","initFocused","navigateToStateName","submitScannerInput","stateName","getResellerOrderByOrderNumber","MainResellerOrderController","resellers","warehouses","selectedReseller","selectedSaleLocation","selectedWarehouse","resellerId","saleLocationId","saveLastUsedSaleLocationId","saveLastUsedWarehouseId","saveLastUsedCollectionId","getWarehouses","lastUsedWarehouseId","getLastUsedWarehouseId","lastUsedSaleLocationId","getLastUsedSaleLocationId","getResellers","lastUsedCollectionId","getLastUsedCollectionId","localStorage","createorderheader_lastUsedSaleLocationId","getItem","createorderheader_lastUsedWarehouseId","createorderheader_lastUsedCollectionId","setItem","externalOrderNumber","ResellerOrderCreateController","canCreateOrderHeader","createOrderHeader","hasSetReseller","hasSetSaleLocation","hasSetWarehouse","hasSetCollection","selectedProduct","minimumAvailableStock","onAppliedFulfillment","allDeliveryDate","IsChecked","displayItems","applyDeliveryDate","getQuantity","getLineItems","displayLineItems","newItem","ordVar","li","lineItemId","resellerName","resellerPriority","plannedDeliverydate","displayItem","orderNum","totalQuantityPerOrder","di","displayItemList","totalQuantityFunc","loadFulfillableOrders","itemsDeliveryDate","ItemIdsAndDates","setVariantFufillmentDeliveryDate","getFulfillableOrders","orderVariants","variantNames","sumFulfillableQuantity","keepRemainder","variant2DetailName","fulfillableQuantity","CreateVariantDeliveryDateDialogService","fulfillableProduct","CreateVariantDeliveryDateDialogServiceController","fulfillmentApplied","itemsToFulfill","CreateVariantFulfillmentDialogService","CreateVariantFulfillmentDialogServiceController","allKeepRemainder","canNotConfirmFulfillmentBecauseOfTooLowStockQuantities","canNotConfirmFulfillmentBecauseOfZeroQuantities","getFulfillableQuantitySum","getQuantitySum","getDifference","getStockQuantity","clearRowQuantities","resetRowQuantities","canResetRowQuantities","clearAllRowQuantities","resetAllRowQuantities","canResetAllRowQuantities","formatDifference","canApplyFulfillment","applyFulfillment","getApplyFulfillmentTooltipText","preventInputLessThanZero","variantList","variant2SortOrder","hasPositiveDiff","hasPositiveTotal","fulfillHasPositiveDiff","nonFakeArtVarId","isFake","canBeAddedToArray","artVarId","varL","stockQuantity","variantName","totalDiff","closeOrderLine","populateVariantList","resultLineItem","lineitem","variant1DetailName","sortedLineItems","ResellerOrderFulfillmentProductsController","fulfillableProducts","filteredFulfillableProducts","fulfillableProductsFilter","pageSizes","selectedPageSize","onSelectProduct","goToProduct","showCreateVariantFulfillmentPopup","showCreateVariantDeliveryDatePopup","filterFulfillableProducts","loadFulfillableProducts","saveLastMinimumAvailableStock","lastMinimumAvailableStock","getLastMinimumAvailableStock","displayArticleNumber","applyFulfillResellerOrders","resellerorderfulfill_lastUsedWarehouseId","resellerorderfulfill_lastMinimumAvailableStock","getFulfillableProducts","product","ResellerOrderManageOrdersController","selectedFulfilledOrdersWarehouse","fulfilledOrders","filteredFulfilledOrders","fulfilledOrdersFilter","openCheck","closedCheck","filterPickPrinted","filterDeliveryPrinted","monthDates","selectedDateMonth","toggleExpandAll","printResellerOrder","printResellerOrderPickingList","getResellerOrderDeliveryNotePdf","printAllResellerOrderPickingLists","filterFulfilledOrders","getLatestPrint","canPick","confirmPicking","canPickAll","confirmPickAll","toggleClosePicking","canPrintDeliveryNote","loadFulfilledOrders","saveLastUsedFulfilledOrdersWarehouseId","expandOrder","lastUsedFulfilledOrdersWarehouseId","getLastUsedFulfilledOrdersWarehouseId","fulfillmentLineItems","pickingConfirmations","fulfillmentLineItemId","pickedQuantity","pickableQuantity","closePicking","confirmFulfillmentLineItemPicking","lineItemEvent","events","allAreTrue","closeAllPickings","printLog","listOfType","dateUTC","isAnyPicked","getResellerOrderOrderPerspectivePickingList","getResellerOrderPdf","getResellerOrderDeliveryNote","resellerorderfulfill_lastUsedFulfilledOrdersWarehouseId","allAreExpanded","ord","showOrderVariants","filterDateMonth","getFulfilledOrders","ResellerOrderManageProductsController","selectedFulfilledProductsWarehouse","fulfilledProducts","filteredFulfilledProducts","fulfilledProductsFilter","toggleExpandAllProducts","toggleExpandAllOrders","filterFulfilledProducts","loadFulfilledProducts","saveLastUsedFulfilledProductsWarehouseId","lastUsedFulfilledProductsWarehouseId","getLastUsedFulfilledProductsWarehouseId","productIds","getResellerOrderProductPerspectivePickingList","resellerorderfulfill_lastUsedFulfilledProductsWarehouseId","prod","showOrders","showOrderRows","getFulfilledProducts","onLineItemChanged","onVariantChanged","excludedArticles","saveLineItem","canModifyLineItems","changeToTab","updateArticlesToExclude","tab","chain","newListItem","fulfilledQuantity","plannedDeliveryDateUtc","variantDetail2SortOrder","lineItemsGroupedByArticle","canModifyLineItem","getVariant1s","getVariant2s","canClearRow","confirmClearRow","removeArticleFromOrder","canDeleteArticleFromOrder","canUpdateWholeRow","updateWholeRow","getProductGrossPriceSum","getVariantGrossPriceAverage","regroupLineItemsOnArticle","sumPrice","sumTotalQuantity","lineItemsGroupedOnVariant1","liGrp","wholeRowAmount","regroupLineItemsOnVariant1","lineItemsGroupedByVariant1","getTotalGrossPriceSum","getProductGrossPrice","getProductQuantitySum","getTotalQuantitySum","getProductUnfulfilledQuantitySum","getFinalAmount","regroupLineItems","sumQty","lineItemsGroupedOnArticle","lineItemArticle","discountDisplayPercent","getVariantQuantitySum","canModifyLineItemDeliveryDate","deliveryDateChanged","setWholeRowPrice","setWholeRowDiscountPercent","showSpinner","avgPrice","wholeRowPrice","wholeRowDiscountPercent","temp","wholeRowFinalPrice","wholeRowDiscount","finalAmount","wholeRowQuantity","initialProductGrossPrice","avgWholeRowDiscountPercent","dateToUtc","milliseconds","getHours","getSeconds","getVariantsForProduct","resellerOrderResolver","getOrderById","ResellerOrderModifyController","setFieldConfirmationDialogService","synchronizationStatus","isSaving","isEditingOrderNumber","editedOrderNumber","canConfirmOrder","confirmOrder","canPrintOrder","printOrder","getResellerOrderCsv","canSetWholeOrderDeliveryDate","canSetWholeOrderDiscountPercent","setWholeOrderDeliveryDate","setWholeOrderDiscountPercent","editOrderNumber","tryToSaveNewOrderNumber","fillOutArticle","lowercase","changeOrderNumber","hasLineItems","deliveryDateUtc","dateValue","setWholeOrderDeliverDate","numberValue","existingLineItem","newLineItem","upsertLineItems","confirm","ResellerOrderSearchController","createReturnOrder","createResellerReturnOrder","getFulfillableLineItems","getReturnOrderById","getOrderHeaderById","getReturnOrderProducts","getSelectedResellerOrderPdf","getResellerOrderDeliveryOrder","getResellerOrderInvoice","setResellerReturnOrderSaleDate","articleVariantDetail1Id","Limit","newOrderNumber","resellerOrderId","ResellerOrderId","NewOrderNumber","resellerOrderNumber","productNumberToExpand","fulfillments","changeToOrderRows","changeToFulfillmentsTab","canPrintOrderPdf","canPrintOrderCsv","shouldShowPrintCsvButton","getResellerOrderInvoicePdf","getResellerOrderDeliveryOrderPdf","getResellerOrderPickingList","DeliveryNoteAvailable","deliveryNoteAvailable","setNoTabSelection","articleGroupedItemLines","getArticleFulfillmentDateRangeString","getFulfilledQuantity","getLeftToBeFulfilledQuantity","getTotalFulfillableQuantity","getTotalAmount","getOrderFulfilledQuantity","getOrderLeftToBeFulfilledQuantity","getOrderTotalFulfillableQuantity","getOrderTotalAmount","expandProduct","AlternativeArticleNumber","lineItemGroups","ArticleName","DisplayArticleNumber","FulfillmentDateRange","FulfilledQuantity","LeftToBeFulfilledQuantity","TotalFulfillableQuantity","AveragePricePerPiece","getAveragePricePerPiece","AveragePriceMinusDiscountPerPiece","getAveragePriceMinusDiscountPerPiece","TotalAmount","LineItems","datesString","fullfillmentDates","fulfillmentDates","dateString","add","minDate","maxDate","totalAmount","average","discountAmountPerItem","shouldUseScannerNavigation","ResellerOrderViewController","ResellerReturnOrderCreateController","ResellerReturnOrderModifyController","invoiceConfirmationDialogService","invoiceConfirmation","canCreateInvoice","SalesApiService","getAllSalesTotals","approveSalesTotal","periodStart","periodEnd","approvalBy","MainSalesController","salesTotalsPagination","salesTotalPaginationResolver","ps","pe","locationTypes","SalesTotalController","salesTotalFilterDialogService","salesTotals","saleTotals","periodStartDate","periodEndDate","shownStatuses","includeApproved","includeForProcessing","includeForReview","toggleApproved","toggleForProcessing","toggleForReview","getSaleTotals","getPaymentTotals","toggleRows","getPeriodPaymentSum","getCalculatedPaymentSum","getSaleVatAmountSum","getCalculatedVatAmountSum","getTotalNetAmountSum","getTotalVatAmountSum","viewApprovedButton","getStatusString","getSaleNetAmountSum","getCalculatedNetAmountSum","showConfirmButton","showRedSaleDiff","showRedCalculatedDiff","totalSaleDiff","totalCalculatedDiff","roundToTwo","showTotalDiffTable","getSalesNumberSum","getNetAmount","loadSaleTotals","compileShownStatuses","reloadRows","refilter","isSameDate","newYear","newMonth","newDay","oldYear","oldMonth","oldDay","currentSaleTotal","totalSales","calculatedNetAmount","calculatedVatAmount","withdrawals","withdrawalAmount","deposits","depositAmount","totalPayments","paymentTotals","calculatedAmount","salesTotal","calculatedNumberOfSales","negativeAmount","negativeVatAmount","netAmount","negativeNetAmount","temp1","temp2","precision","shift","reverseShift","numArray","temp3","temp4","saleTotal","showSum","StockApiService","previousArticleId","previousLocationId","previousArticleVariantId","displayedRows","transGrid","stockTransactions","elementsPerPage","goToReference","showLink","getStockTransactionsForArticleAndLocation","variantDetailId","referenceType","referenceId","referenceDescription","transactionType","stockTransactionType","stockTransactionTypeName","systemTransactionType","groupKey","fullDateTime","reservedQuantity","oldRow","summaryRow","ArticleStocksHistoryDialogService","ArticleStocksHistoryDialogController","colorvariants","stocksResolver","getProductStock","StockArticleController","selectedArticleStocks","variantsGrid","selectedVariantDetail1","lastVariant1RowClicked","selectedFilter","stocksLocations","pickOutUniqueLocations","stocksVariant1s","pickOutUniqueVarDetail1s","locationFilter","variantFilters","shouldDisplayDetails","selectedVariantDetailChanged","setSelectedLocationAndVariant1","filterRowData","shouldShowDetails","getColumnSum","getTotalSum","shouldHaveIsCurrentStyle","shouldNotHaveIsCurrentStyle","updateVariantsGridData","showHistory","selectedVariantDetail1id","variantDetails1Id","selectedLocationId","each","varDetail2","loadVariantsGridData","currentLocationStocks","orderedSum","reservedSum","IsCurrent","unique","sameLocation","varDetail1s","location1","location2","articlesResolver","isModelInventory","isOrderingPoints","StockArticlesController","selectedArticleId","useElasticProductSearch","getSearchTooltipText","onArticleIdWatch","onArticleIdChanged","tooltipString","inventoriesCount","getPendingInventoryCountResolver","InventoryingApiService","getPendingInventoryCount","StockModelInventoryController","totalsGrid","stocksData","inventoriesPending","saveButtonDisable","totals","sumName","theoreticalTotal","inventoriedTotal","difference","inventory","inventoryDescription","deliverImmediately","inventoryDate","inventoryRows","captureVariantsGrid","beginEditing","editEnded","zeroAllQuantities","captureTotalsGrid","contextMenuZeroRow","saveChanges","getFilteredLocations","pollPendingInventoryCount","isNewInventory","loadTime","loadPromise","cancelNextLoad","nextLoad","relatedArticleVariant","specifiedQuantity","inventoryRow","saveProductInventory","dataContents","calculateNewTotals","totalsObject","totalsEntry","variant1TotalsObject","variant1Entry","currentData","headersVisibility","HeadersVisibility","sel","getHeadInfoById","getInventoryItemGroups","getInventoryTypes","createInventory","updateInventory","getInventoryDataForArticle","uploadParseFile","getInventoryRowsRelatedToItemGroup","getInventoryRowsRelatedToArticle","getInventoryRows","approveItemGroupRelatedRows","approveInventoryRow","approveInventoryRows","getInventoryReport","getInventoryMainGroups","getInventoryFileErrors","getInventoryBrands","getMainGroupInventoryRows","getBrandInventoryRows","uploadInventoryFile","queueInventoryForFinalization","inventoryId","inventoryRowId","fileData","StockPickingListController","sortorders","sortOrder2","sortOrder3","showCollection","showDepartment","selectedGrouping","includeArticleNumber","includeStorageItems","includeZeroAndNegativeQuantity","showRestOfLocations","portraitOrientation","getStockPickingList","canPrintStockPickingList","setHours","sortOrder1","readSettingsFromLocalStorage","saveSettingsToLocalStorage","downloadStockPickingList","printStockPickingListSettings","isJsonString","removeItem","settingsStr","json","so","getFilteredBrands","getCollections","SaleThroughputReportsController","includeIsCurrent","selectedCollections","selectedDepartments","switchToCsv","switchToPdf","fileFormatChoice","csv","pdf","getSaleThroughputReport","validateRequest","collectionIds","departmentIds","downloadSaleThroughputReport","downloadSaleThroughputReportPdf","getCompaniesBrief","SoldStockReportsController","companyIds","getSoldStockReport","downloadSoldStockReport","ReportsController","stockEndDate","inventoryDays","selectedInventoryDays","inventoryDayList","includeExternalId","includeBarcode","getStockValueReport","selectedGroupingLevel","stockDate","level","downloadStockValueReport","groupingLevel","printStockValueReportSettings","stockTransactionsResolver","ArticleDetailsController","transactionsGrid","currentVariantDetail1","initGrid","updateTransactionGridGroupings","collapseGroupsToLevel","groupHeaderFormat","timeTypeGrouping","PropertyGroupDescription","groupDescriptions","aggregate","transactionDate","inventoryHead","inventoryHeadResolver","InventoryController","inventoryCorrectionsDialogService","printInventoryReportDialogService","detailsGrid","summarizationGrid","currentItemGroupId","inventoryRowsGrid","inventoryOverviewGrid","inventoryFileErrorGrid","currentlyChosenMainGroupId","currentlyChosenBrandId","uploadErrors","inventoryFileErrors","inventoryRowsAll","autoAcceptLevel","displayLevel","totalValueThreshold","numberOfErrors","showAllErrors","itemGroupInventoryRows","isShowingUploadForm","showUnapproved","showAll","itemGroupTotals","theoreticalBalance","inventoried","differenceValue","inventoryRowTotals","totalValue","overViewGridFilter","totalsGridItems","showInventoryErrors","captureDetailsGrid","setCurrentItemGroup","approveItemGroup","expandArticlesGroups","contractArticlesGroups","openAnalyzeModal","showUnApprovedItemGroups","showApprovedItemGroups","resetItemGroupsFiltering","showUnApprovedInventoryRows","showApprovedInventoryRows","resetInventoryRowsFiltering","hasFileErrors","captureInventoryRowsGrid","displayLevelChanged","autoAccept","sendInventoryRowsForApproval","captureSummarizationGrid","captureInventoryOverviewGrid","captureInventoryFileErrorGrid","fetchMainGroups","fetchBrands","uploadAndParseFile","toggleUploadFormVisibility","acceptInventory","printInventoryReport","loadItemGroupsInventoryRows","openCorrectionsModal","loadInventoryFileErrors","recalculateInventoryRowsTotals","reFetchOverViewGridData","reFetchInventoryRowsGridData","isApproved","updateInventoryRowsGridGroupings","allowMerging","invRow","groupedInventoryRows","inventoryRowsToAccept","mainGroupNames","mgName","invRows","mainGroupName","brandNames","bName","brandName","articleNames","isAutoApproved","theoreticalStockBalance","stockDifference","recalculateItemGroupTotals","summarizedTransactionQuantity","summarizedInventoryRowsQuantity","summarizedCostPrice","setFilterChoiceFalse","mainGroupGrouping","brandGrouping","articleGrouping","articleVariant1SortOrderSortDescription","SortDescription","articleVariant2SortOrderSortDescription","sortDescriptions","updateTotalsGridGroupings","allItemGroups","errorRows","updateLocalInventoryRows","inventoryRowToUpdate","setDetailsGridData","articleNameDescription","variant1Description","sendData","printFormat","ScannerInventoryingController","NewInventoryDialogService","ordersGrid","previouslySelectedInventoryId","openNewInventoryModal","isHidingInventoriesGrid","hideInventoriesGrid","unHideInventoriesGrid","inventoryItem","filterOnUser","MainStockController","ArticleTransferController","locationsGrid","locationsCollection","visibleLocations","minDiffToCreateSuggestion","lowerThresholdQuantity","moveMaximum","adjustWithStockValues","minimumCostPriceThreshold","excludeArticlesWithOrderingPoints","captureLocationsGrid","searchArticles","insertStockQuantities","fetchQuantityInTransitData","submitAndCreateOrders","validateGridRow","preventChangingOfIsOkValue","changeToSearchTab","changeToLocationsTab","changeToRulesTab","selectAllLocations","selectNoLocations","canSubmitAndCreateOrders","hasRowData","isVisible","distributionWeight","locationPriority","outDeliverable","inDeliverable","setVisibleLocations","updatePromise","rowNum","colNum","relatedDataRow","quantityValues","transferQuantityValues","locationNumbers","transferQuantityValue","transferQuantitySum","fromLocationCount","currentQuantityCellValue","columnBindingIsLocationId","columnHeaderIsLocationNumber","columnBindingIsLocationNumberAndDiffMarker","generateArtilcesGridColumns","altArtNumberColumn","variantDetail1Column","variantDetail2Column","checkboxColumn","generateArticlesRowData","isOk","zeroAllGridValues","articleVariantIdsAndLocationIds","insertStocksDataIntoGrid","getByArticlesVariants","removeStocksDataForStockLogistics","adjustStocksDataWithTransferQuantities","createQuantityTransferSuggestions","locationsArticleVariantsLinkStructures","currentTransferObjects","outLocation","fromLocationId","toLocationId","totalSum","transferObject","findMax","findMin","locationsWithMaxQuantity","getLocationsWithEdgeStockQuantity","locationsWithMinQuantity","maxLocation","minLocation","minLocationRelatedStock","costIsAboveThreshold","rowHasTransferValues","relatedRow","quantityInTransits","transitData","tempRowData","allRowsAreValueless","inLocations","loc","locationsAndQuantity","rules","rowDataCopy","rowHasValues","correspondingRowData","colNumber","selectedColumnBinding","hasSelectedValidRows","EshopReplenishmentController","int32Max","stockLogisticsData","quantityInTansitData","handleNegativeEshopQuantities","locationType","locationSystemType","maxTransferValue","minTransferValue","eshops","eshop","normalizationValue","currentEshop","MassHandlingOrderingPointsController","stepHandler","currentStep","steps","mainGroupFilter","brandFilter","collectionFilter","filterIsCurrent","filteredLocations","filteredMainGroups","filteredBrands","filteredCollections","goToNextStep","goToPreviousStep","validSelection","addStartProperties","maingroup","AutoMonthMultiplierDialogService","autoMonthMultipliers","AutoMonthMultiplierDialogController","selectedAutoMonthMultiplier","filterSelectedMultiplier","deleteSelected","createNewToggle","saveOnChange","createMode","enableChangesSavedNotification","translateMonth","allMonthsMultiplier","handleConvertValue","handleConvertValueAllMonths","updateOnAllMonths","fullMonthNames","monthAbbreviation","abbreviation","full","january","february","march","april","may","june","july","august","september","october","november","december","resetAutoMonthMultipliers","sortAutoMonthMultipliers","isArticlesMultiplier","affectedArticleNames","articleNamesWithMultiplier","updateNameProp","updatedMultiplierIndex","multiplier","updatedMultiplier","selectedMultiplier","handleNegativeValue","handelUndefinedValue","multiplierResolver","OrderingPointsController","locationBasedRowData","locationBasedRowCollection","orderPointsGrid","currentEditProperty","initializeAutoMonthMultipliers","formatLocationNames","selectableFromLocations","transferMaxGridDataToStockLogistics","switchToOrderingPointMax","switchToOrderingPointMin","switchToPackSize","generateAutoOrdersForAllStockLogistics","openMultiplierModal","maxPoint","minPoint","isPriority","weekdaychoices","formattedLocation","shouldGenerateAutoOrders","updateOrderPointsGridData","populateSelectableFromLocations","sourceArray","copiedArray","stockLogisticsForCurrentLocation","defaultSize","autoSizeColumn","setCurrentWeekdayChoices","currentLocationStockLogistics","relatedStockLogistic","updateStockLogisiticsWeekdays","newStockLogistics","createNewStockLogistics","getGenerallWeekdayChoice","relatedStockLogistics","returnStockLogistic","weekdayChoices","newStockLogistic","copyFromLocationToStockLogistic","generateAutoOrders","stockLogisticsDtos","autoMonthMultiplier","supplierLabel","currentStockLogistic","currentStockLogistics","getProductsForMassHandingOrderingPoints","selectedMaingroups","selectedIsCurrent","MainStockLogisticsController","SupportApiService","changeBarcode","changeBarcodes","createLocation","deleteProduct","mergeProducts","getLocationTypes","getLocationCategories","getProductBriefs","changeIsGroupSaleArticle","addVariantDetail","addVariantDetails","updateInventoryStatus","createOriginalBalance","getMissingEasyPosReceipts","triggerToChangeLog","SupportController","SupportCaseAddVariantDetailController","variantsToAdd","fulltextInput","autoSortOrder","useListOfItems","newVariantDetails","variantDetailTemplate","overrideAutoSort","updateListOfVariants","saveChange","doAutoSortOrder","convertToLines","splittedValues","newDetail","asciiStringTranslate","theString","cleanedString","charCodeAt","SupportCaseChangeBarcodeController","selectedProductVariant","selectedProductCopy","selectedProductVariantCopy","newBarcode","recieveProduct","productVariantId","removeProduct","$broadcast","SupportCaseChangeBarcodesController","addBarcodeToProductVariant","productVariant","requestArtVar","currentBarcode","br","SupportCaseChangeIsGroupSaleArticleController","isGroupSaleArticle","itemGroupResolver","SupportCaseChangeItemGroupController","selectedItemGroup","supplierIds","SupportCaseChangeVariantDetailController","openEditVariantDetailDialog","locationTypeResolver","locationCategories","locationCategoryResolver","SupportCaseCreateLocationController","locationTypeId","locationCategoryId","selectedLocationType","selectedLocationCategory","resetForm","SupportCaseDeleteProductController","isAllowedToDelete","SupportCaseMergeProductController","selectedToProduct","selectedFromProduct1","selectedFromProduct2","selectedFromProduct3","recieveToProduct","recieveFromProduct1","recieveFromProduct2","recieveFromProduct3","removeToProduct","removeFromProduct1","removeFromProduct2","removeFromProduct3","isAllowedToMerge","toProduct","fromProduct1","fromProduct2","fromProduct3","articleNumber","toProductId","fromProduct1Id","fromProduct2Id","fromProduct3Id","hasToProduct","hasFromProduct1","hasFromProduct2","hasFromProduct3","SupportCaseMissingReceiptsController","selectedStartDate","selectedEndDate","missingEasyPosReceipts","showSequenceNumbers","missingEasyPosSequenceNumbers","missingReceiptSpans","mrs","missingReceipts","mr","sequenceNumber","OriginalBalanceImportController","displayRows","submitOriginalBalance","purchaseCostPerItem","lastInventoriedDate","SupportCasesController","SupportCaseTriggerToChangeLogController","testRun","selectedLocationIds","selectedPriceListId","updateOrderIds","updateCustomerOrderIds","updateProductIds","updateProductVariantIds","updateStockIds","updatePriceListItemIds","changeTab","customerOrderIds","productVariantIds","stockIds","priceListItemIds","hasSetSearchTerm","hasExtraCondition","SupportCaseUpdateInventoryStatusController","selectedInventory","selectedInventoryStatus","inventoryStatuses","inventories","selectInventory","loadInventories","hasSelectedInventory","hasSelectedInventoryStatus","TimedOutLoginDialogController","timer","minutes","seconds","displayValue","errorMessage","refreshSuccess","successCountDownTimer","timerIntervalPromise","refreshSession","recalculateTimer","timeLeft","SuccessCountDownCloseModal","TimeStampsAdministrationDialog","showDialogNewDate","timeStampDayId","locId","timeStampDay","getTimeStampDayById","isAccepted","userTimeStamps","TimeStampsAdministrationDialogController","stampsHistoryGrid","timeStampPairs","showStampsForAllLocations","newInStamp","dateTime","modifyingUser","timeStampType","timeStampSystemType","newOutStamp","captureStampsHistoryGrid","createNewTimeStamp","deleteTimeStampPair","saveTimeStampingDayNote","allowTimeSpanCreation","resetNewTimeStampsTimes","constructTimeStampPairs","inStamps","timeStamp","outStamps","currentInStamp","currentOutStamp","timeSpan","timeStampPair","inStamp","outStamp","span","pair","roundDateToNearestFiveMinutes","coefficient","rounded","updateTimeStampDay","deleteTimeStamp","newInTime","newOutTime","momentNewInTime","momentNewOutTime","momentOldInTime","momentOldOutTime","isAfter","stampIn","stampOut","getTimeStampingUsers","getLatestTimeStampDays","getNotificationMarkedTimeStampDays","getTimeStampDaysInDateRange","attestTimeStampDays","unattestTimeStampDays","getWorkingTime","getTimeReports","updateTimeReport","createTimeReport","downloadExcelFile","getMe","requestData","numberOfTimeStamps","numberOfTimeStampDays","dateRange","timeStampId","timeStampIds","timeReport","locationsResover","TimeStampingManagementController","lastSelectedUser","timeStampsGrid","timeReportsCopy","newTimeReportDatePicker","timeReportsGrid","startDateInitialized","endDateInitialized","timeStampingUsers","timeStampingDays","timeReports","loadTimeStampingUsers","loadTimeStampingDaysForUser","openTimeStampsAdministrationModal","openNewTimeStampDayModal","attestAll","attestTimeStampingDay","unattestTimeStampingDay","getNotificationStyle","mayAttestAll","newTimeStampDayDate","dateDifference","showTimeStampsForDay","timeStampsForDay","captureTimeStampsGrid","getHoursAndMinutes","handleTimeStampDayCellEditEnded","handleTimeStampCellEditEnding","toggleTimeStampDayNotification","showTimeReports","newTimeReportDate","isValidNewTimeReportDate","captureNewTimeReportDatePicker","addTimeReport","captureTimeReportsGrid","getExcelPrintout","rep","timeStampingDayIds","date1","date2","d1","d2","dt","stringHours","stringMinutes","stringRepresentation","stamp","hours","reportsToSend","matchingCopy","reportCopy","workTime","breakTime","matchingReport","isWithinValidInterval","startOfToday","startOf","listOfAddedDates","selectedDate","newTimeReport","allTimeReports","userIds","TimeStampingUsersController","showDialogLoginless","previousTimeStampDays","totalTimeThisMonth","startOfMonth","loginless","UserTimeStampingDialogServiceController","stampHistoryGrid","timeUpdatePromise","jqCurrentTimeElement","timeStampDaysGrid","buttonsAreDisabled","previousTimeStamps","captureStampHistoryGrid","captureTimeStampDaysGrid","updateTimeStamp","changeDisplayedTimeStampDay","currentLocalTime","stampInDisabled","stampOutDisabled","stampCreationRequest","isLoginLessTimeStamping","setTimeStampButtonsAvailability","updateLocalTime","getPreviousTimeStamps","reponse","orderedTimeStamps","currentTimeStampSystemType","SignalDispatcher","SimpleEventDispatcher","fooBar2","unsubscribe","elements","updateSignal","getElements","reqPromise","widgetData","isLoaded","loadWidget","onNewData","onNewDataError","gotoArticle","selectedmaingroup","chart","maingroups","updateSetting","refreshChartModel","maingroupInSetting","labels","points","series","evt","datasetOverride","yAxisID","scales","yAxes","display","ticks","beginAtZero","showTools","addressController","onNew","showNewButton","showFilterDropdown","scope","articleListIsVisible","getShowFilterDropDown","toggleHideArticleList","productChangedListener","afterGetAllArticles","showArticleList","onArticleRemoved","removeArticle","confirmTitle","onConfirmPressed","toggleConfirmationVisiblity","confirmationVisible","contactInfoController","filteredErrorList","filterList","transclude","Service","filterKeys","renderer","getRenderItemNone","getRenderItemSingle","getRenderItemArray","context","property","getDateStringRepresentation","hour","lockChoice","renderItem","addNullValueChoice","choiceCopy","ir","valueName","changeSortOrder","getTooltipText","onSelected","onRemoved","searchResultVariantDetail","createMenuNodes","nav","dashboard","licenseModules","baseModule","stateLink","iconClass","contacts","productModule","budgetModule","economy","orderModule","ecommerceModule","discountManagementModule","inventorying","logisticsModule","analysis","analysisModule","crm","crmModule","administration","economyModule","deliveryPlanningModule","timeStamping","customerGroup","invoiceType","businessArea","returnReason","node","root","branch","hasFocus","shouldRender","getIndentation","getNodeLabel","expanded","toggleMenuExpansion","matchTwoDemand","bootstrapModal","$provide","decorator","bootstrapModalDelegate","$delegate","openFn","spinnerName","random","$debounce","addNewWidget","widget","newWidget","gridsterOpts","margins","outerMargin","pushing","floating","swapping","mobileBreakPoint","resizable","enabled","handles","resize","draggable","drag","saveDashboard","directive","$browser","$exceptionHandler","deferreds","methods","uuid","fn","delay","invokeApply","skipApply","timeoutId","cleanup","methodId","bouncing","equals","debounced","reason","$$timeoutId","$compile","restrict","attrs","newElement","append","selectedLocationNumber","NaN","settingController","settingTemplateUrl","iconClicked","selectedSettingItem","saveSettings","$parent","grep","$close","selectedBusinessArea","parsedSettings","selectedSettingItems","settingsObject","elId","margin","top","right","bottom","left","gridSize","legendElementWidth","buckets","times","timeHacked","draw","colorScale","d3","scale","quantile","domain","range","svg","dayLabels","enter","timeLabels","heatMap","transition","legend","quantiles","wgtChartController","googleChartApiPromise","dataModel","visual","metaData","activateChart","dataPromise","api","apiLoadSuccess","chartColorAssocArray","_data","animation","easing","is3D","keepAspectRatio","_array","_seriesColor","__date","google","visualization","DataTable","addColumn","addRows","dataTable","getMySeriesColor","slices","chartArea","fontSize","isStacked","j","__marray","locationGroup","bar","groupWidth","highlightOnMouseOver","maxDepth","maxPostDepth","minHighlightColor","midHighlightColor","maxHighlightColor","minColor","midColor","maxColor","headerHeight","showScale","useWeightedAverageForAggregation","businessAreasResponse","initChart","drawChart","gridster","charts","setOnLoadCallback","formatHtmlTooltip","totalSalesPrice","toLocaleString","totalSalesPercent","dataArray","salesBusinessAreaData","sliceVisibilityThreshold","tooltip","showColorCode","isHtml","PieChart","$id","getDifferenceColour","anyVisitors","numberOfVisitors","autoOrderData","originalWidgetData","distinctBrandIds","distinctBusinessAreaIds","filterData","newWidgetData","businessAreaIds","orderAutoOrder_OrderBy","orderAutoOrder_Reverse","objectName","directiveFactory","gotoImportFile","printImportFile","editableDecimal","editableDirectiveFactory","directiveName","inputTpl","enterAsTab","bind","parents","which","shiftKey","eq","opt","loadSpinner","usSpinnerService","spinnerMessage","loaders","spin","percentInput","onViewChange","viewValue","newValueParsed","newValueUnparsed","onModelChange","modelValue","ele","ctrl","$parsers","$formatters","restrictAccess","compile","access","permission","elm","ignore","smartDecimal","DECIMAL_REGEXP_1","DECIMAL_REGEXP_2","DECIMAL_REGEXP_3","DECIMAL_REGEXP_4","$setValidity","el","_window","_mb","trigger","_this","siblings","is","removeClass","w_h","addClass","appendTo","off","insertAfter","classes","uiToggleClass","targets","magic","patt","cn","multiPartFilter","searchables","out","minimumInputLength","ks","searchableTerms","matchingItems","searchTermsThatMatches","propsFilter","itemMatches","importFileData","updateImportFile","onlyCurrent","fileId","downloadPdfFile","savedTimestamps","apiFactoryGet","apiFactoryCreate","apiFactoryUpdate","apiFactorySave","apiFactoryDelete","apiRms2FactoryGet","apiRms2FactoryCreate","apiRms2FactoryUpdate","apiRms2FactorySave","apiRms2FactoryDelete","updateSavedTimestamp","getSavedTimestamp","relativeUrl","errorHandler","req","httpError","transform","resource","apiToken","LoginDialogService","_isAuthenticating","_isAuthenticated","_user","isAuthenticated","hasUser","matchAllDemand","resetPassword","confirmNewPassword","callback","lowerCaseObjectType","licenseTypes","licenseType","languageLocale","use","expireSession","isLoginState","authMessage","Token","Tenant","httpConfig","putObject","demand","rights","rightNode","param","newPassword","confirmPassword","securityCode","cleanedBarcode","formattedString","invoiceConfirmationDialogController","colourChangeDialogController","selectedColour","replacementColourName","colourNameIsTheSame","prepareColourNames","colourNames","foundValue","modalSize","confirmationDialogController","deliveryConfirmationDialogController","deliveryDocumentDownloadDialogServiceController","deliveryTimeProximity","deliveryTimeType","deliveryTimeOptions","downloadDocument","isFetchingData","loadDateSelections","deliveryDates","entry","dateObj","ShowError","getDeliveryDateString","dateStr","importFinalizationDialogController","selectionChoices","informationDialogController","inventoryCorrectionsDialogServiceController","pickOutArticleVariants","inventoryToSend","relatedInventoryRow","getInventoryRowFor","labelPrintingDialogController","printOrderLabels","selectableDates","useWholeDate","LoginDialogController","UserPasswordResetDialogService","authError","showTenantInputField","showDialogTimeStamping","login","showDialogResetPassword","absoluteUrl","absUrl","inventoryTypes","NewInventoryDialogServiceController","currentTime","getCurrentTimeRoundedToNearestHour","insertEmptyMainGroupFirst","insertEmptyBrandFirst","locationChanged","inventoryTypeChanged","mainGroupChanged","brandChanged","newInventoryRequestData","inventoryType","timeNonUtc","time","setSeconds","setMilliseconds","emptyMainGroup","newArr","emptyBrand","printInventoryReportDialogController","setLanguage","setPrintFormat","printInventoryReportSettings","printInvoiceDialogController","setWeightSetting","printLanguageConfirmationDialogController","printLanguageConfirmationSettings","printPickingListDialogController","printOrderPickingListSettings","includeprices","purchaseOrderAnalysisFilterDialogController","UserPasswordResetDialogServiceController","showPage","usernameOrEmail","clickedResetPasswordButton","clickedConfirmPasswordButton","showConfirmPassword","EMAIL_REGEXP","salesTotalFilterDialogController","fieldType","setFieldConfirmationDialogController","updateAddressDialogController","updateOrderNoteDialogController","licenses","getLicense","license","FlexGridHelperService","assembleOrderArticleFlexGridData","assembleArticleVariantsFlexGridData","propertyToShow","VARIANT_DETAIL_ONE_PROPERTY_NAME","VARIANT_DETAIL_TWO_PROPERTY_NAME","VARIANT_DETAIL_THREE_PROPERTY_NAME","VARIANT_DETAIL_FOUR_PROPERTY_NAME","sortedVar1s","getSortedUniqueVariants","sortedVar2s","articleVariantsHashTable","generateArticleVariantsHashTable","returnData","gridRowData","currentArtVar","arrayContains","hashTable","var1Name","var2Name","getUniqueDestinations","rowsHashTable","generateRowsHashTable","destName","destinationName","currentDetail","detailFieldNameString","details","comparisonFieldName","original","edited","keysInOriginal","keysInEdited","editKey","originalKey","findDiffs","diffs","orgvalue","editedvalue","priceListItemsToRecalculate","priceToRecalculate","priceInterval","MockImportFileRowService","toastr","validateFileRow","returnList","descriptionShort","timeOutTimer","timeOut","useSyncExternalStore","createPortal","createRoot","Root","BridgeElements","renderReactRoot","render","components","$templateCache","templatePath","put"],"sourceRoot":""}