Phiên bản chính mới này đang chuyển gói sang các khả năng cấu hình và linh hoạt hơn nói chung Show
Một trong những điểm khác biệt chính là chúng tôi đã thay thế use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.003 bằng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.004 dưới mui xe. Điều này giới thiệu rất nhiều thay đổi đột phá, chủ yếu là về các phương thức khởi tạo hiện phản ánh API của brick/money để giữ cho mọi thứ thân thiện với nhà phát triển. Nhánh use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.005 sẽ vẫn khả dụng và duy trì trong một thời gian, nhưng chúng tôi thực sự khuyên bạn nên cập nhật lên use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.006 Sử dụng thư viện use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.004 cơ bản, đối tượng Giá đơn giản này cho phép làm việc với các giá trị tiền tệ tổng hợp phức tạp bao gồm loại trừ, bao gồm, VAT (và các loại thuế tiềm năng khác) và số tiền chiết khấu. Tính năng này giúp tính toán giá hiển thị cuối cùng an toàn và dễ dàng hơn mà không phải lo lắng về cấu trúc của chúng Cài đặt
Bắt đầuMỗi đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.008 có một phiên bản use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.009 được coi là số lượng không thay đổi, theo đơn vị & độc quyền của mặt hàng. Tất cả các hoạt động tổng hợp, chẳng hạn như thêm VAT hoặc áp dụng chiết khấu, được thêm vào trên giá trị cơ sở này ________số 8 Thực tế phổ biến và luôn luôn tốt nhất là làm việc với số tiền được biểu thị bằng đơn vị tiền tệ nhỏ nhất (giá trị nhỏ) chẳng hạn như "xu" Có một số cách thuận tiện để lấy phiên bản use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.008Phương thức Sử dụng giá trị chính Sử dụng giá trị phụXác định đơn vịConstructor use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0001 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0001 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0003Brick/Money API use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0004 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0005-API Tiền tệ- use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0006 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0007Chuỗi phân tích cú pháp use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0008- use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0009 Từ nhà xây dựngBạn có thể đặt giá trị cơ bản này bằng cách khởi tạo Giá trực tiếp với phiên bản use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.009 mong muốn use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.000 Từ các phương thức Brick/Money-likeĐể thuận tiện, cũng có thể sử dụng phương pháp rút gọn Money factory use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.001 Sử dụng các lệnh gọi tĩnh này, bạn không thể xác định trực tiếp số lượng hoặc đơn vị bằng các phương thức hàm tạo Để biết thêm thông tin về tất cả các nhà xây dựng Brick/Money có sẵn, vui lòng xem tài liệu của họ Từ các phương thức mã tiền tệBạn cũng có thể tạo một phiên bản trực tiếp với đơn vị tiền tệ và số lượng dự định bằng cách sử dụng mã ISO đơn vị tiền tệ gồm 3 ký tự use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.00 Sử dụng các cuộc gọi tĩnh này, tất cả các giá trị tiền tệ được coi là giá trị nhỏ (e. g. xu) Để biết danh sách tất cả các loại tiền tệ ISO 4217 có sẵn, hãy xem định nghĩa đồng tiền tệ của Brick/Money Từ các giá trị chuỗi được phân tích cú phápNgoài ra, giá cũng có thể được phân tích cú pháp từ chuỗi "giá trị tiền tệ thô". Phương pháp này có thể hữu ích nhưng phải luôn được sử dụng cẩn thận vì nó có thể tạo ra kết quả không mong muốn trong một số tình huống khó khăn, đặc biệt là khi "đoán" tiền tệ use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.000 Phân tích chuỗi định dạng là một chủ đề phức tạp. Thông tin thêm về phân tích giá trị chuỗi bên dưới Truy cập các đối tượng Tiền (getters)Sau khi được đặt, số tiền cơ sở có thể được truy cập bằng phương pháp use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0041 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.004 Lấy phiên bản tiền tệ thật dễ dàng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.006 Tổng số tiền độc quyền (với tất cả các sửa đổi trừ VAT) use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.007 Tổng số tiền đã bao gồm (đã áp dụng tất cả các công cụ sửa đổi và thuế GTGT) use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.008 Các biến thuế GTGT use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.160 So sánh số tiềnCó thể kiểm tra xem tổng số tiền bao gồm của một đối tượng giá lớn hơn, nhỏ hơn hay bằng một giá trị khác bằng cách sử dụng phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0042 use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.161 Để thuận tiện, cũng có một phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0043 use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.162 Nếu bạn không muốn so sánh các giá trị sửa đổi cuối cùng, có một phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0044 use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.163 Điều chỉnh giá cơ sởĐối tượng giá sẽ chuyển tiếp tất cả lệnh gọi phương thức API use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.009 đến giá trị cơ sở của nó
use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.164 Vui lòng tham khảo tài liệu của use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.004 để biết danh sách đầy đủ các tính năng khả dụng
Đặt đơn vị (số lượng)Hành vi mặc định của gói này là coi giá cơ bản là giá "trên mỗi đơn vị". Khi không có đơn vị nào được chỉ định, nó sẽ mặc định là use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0047. Vì "đơn vị" có thể là bất cứ thứ gì từ một số tích không chia được cho đến một phép đo, nên chúng luôn được chuyển đổi thành số thực Bạn có thể đặt số lượng đơn vị (hoặc "số lượng" nếu bạn muốn) trong quá trình khởi tạo use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.165 hoặc sửa đổi nó sau bằng phương pháp use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0048 use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.166 Bạn có thể trả lại số lượng đơn vị bằng cách sử dụng phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0049 (luôn luôn là ____260) use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.167 Đặt VATVAT có thể được thêm vào bằng cách cung cấp giá trị tương đối của nó (ví dụ:. 21%) use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.168 Sau khi được đặt, đối tượng giá sẽ có thể cung cấp nhiều thông tin liên quan đến VAT use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.169 Đặt công cụ sửa đổiCông cụ sửa đổi là tất cả các hoạt động tùy chỉnh mà doanh nghiệp cần áp dụng cho giá trước khi hiển thị trên hóa đơn. Chúng bao gồm từ giảm giá đến thuế, bao gồm các quy tắc tùy chỉnh và phiếu giảm giá. Đây là những lý do chính khiến gói này tồn tại giảm giáuse Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0000 Thuế (ngoài VAT)use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0001 Các loại công cụ sửa đổi tùy chỉnhĐôi khi các công cụ sửa đổi không thể được phân loại thành "giảm giá" hoặc "thuế", trong trường hợp đó, bạn có thể thêm loại công cụ sửa đổi của riêng mình use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0002
công cụ sửa đổi phức tạpHầu hết thời gian, các công cụ sửa đổi phức tạp hơn để xác định so với các thao tác "+" hoặc "-" đơn giản. Tùy thuộc vào mức độ phức tạp, có một số tùy chọn cho phép bạn định cấu hình bộ sửa đổi của mình theo ý muốn công cụ sửa đổi đóng cửaThay vì cung cấp một giá trị tiền tệ cho các công cụ sửa đổi, bạn có thể sử dụng một bao đóng sẽ nhận được một phiên bản use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0063. Đối tượng này sau đó có thể được sử dụng để thực hiện một số thao tác trên giá trị giá. hoạt động có sẵn làMethodDescription use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0064Đăng ký một cuộc gọi phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0065 trên đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0066. use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0067Đăng ký một cuộc gọi phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0068 trên đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0066. use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0070Đăng ký một cuộc gọi phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0071 trên đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0066. use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0073Đăng ký một cuộc gọi phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0074 trên đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0066. use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0076Đăng ký một cuộc gọi phương thức use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0076 trên đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0066 Tất cả các phương pháp này có cùng chữ ký như tương đương với use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.009 của chúng. Lý do chúng tôi không sử dụng cùng tên phương thức là để ngụ ý khả năng thay đổi đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0003 Hơn nữa, bằng cách sử dụng công cụ sửa đổi bao đóng, bạn cũng có thể thêm các cấu hình hữu ích khác, chẳng hạn như MethodDefaultDescription_______280use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0081Xác định mã định danh trên công cụ sửa đổi. Đây có thể là bất kỳ thứ gì và mục đích chính của nó là làm cho công cụ sửa đổi có thể nhận dạng được trên màn hình, chẳng hạn như khóa dịch hoặc tên lớp CSS. use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0082 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0083Cho biết công cụ sửa đổi nên được áp dụng trước ( use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0083) hay sau ( use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0085) VAT đã được tính. Thông tin thêm về tính năng này bên dưới. use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0086______285Cho biết liệu các phép toán use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0064 và use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0067 có xác định số tiền "trên mỗi đơn vị" thay vì cung cấp một số tiền cố định sẽ được áp dụng bất kể số lượng hay không. use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1600 use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1601Xác định càng nhiều thuộc tính sửa đổi bổ sung càng tốt. Điều này có thể rất hữu ích để hiển thị các công cụ sửa đổi được áp dụng trong các giao diện người dùng phức tạp lớp sửa đổiĐể linh hoạt và dễ đọc hơn nữa, cũng có thể trích xuất tất cả các tính năng này vào lớp riêng của chúng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0004 Các lớp này phải triển khai giao diện use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1602, sau đó trông giống như thế này use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0005 Nếu cần, cũng có thể chuyển đối số cho các lớp tùy chỉnh này từ cấu hình Giá use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0006 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0007 Trước hay sau VAT?Tùy thuộc vào bản chất của công cụ sửa đổi, VAT có thể được áp dụng trước hoặc sau khi can thiệp vào giá cuối cùng. Tất cả các công cụ sửa đổi có thể được cấu hình để được thực thi trong một trong các giai đoạn này Theo mặc định, các công cụ sửa đổi được thêm vào trước khi VAT được áp dụng, nghĩa là rất có thể chúng cũng sẽ sửa đổi giá trị VAT. Để ngăn chặn điều đó, có thể thêm một công cụ sửa đổi vào đầu VAT được tính. Nói một cách hợp pháp, điều này thực sự khá hiếm nhưng tại sao không use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0008 Trong các lớp tùy chỉnh, điều này được xử lý bằng phương thức use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1603
Giá bao gồm sẽ chứa tất cả các yếu tố sửa đổi (trước và sau VAT), nhưng giá độc quyền chỉ chứa các yếu tố điều chỉnh "trước VAT" theo mặc định. Nếu bạn coi các công cụ sửa đổi "sau VAT" là một phần của giá độc quyền, bạn luôn có thể tính chúng bằng cách cung cấp ____ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0009 Hiển thị chi tiết sửa đổiKhi gỡ lỗi hoặc xây dựng giao diện người dùng phức tạp, thường cần truy xuất toàn bộ lịch sử sửa đổi Giá. Điều này có thể được thực hiện bằng cách sử dụng phương pháp use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1606 sau khi tất cả các công cụ sửa đổi đã được thêm vào phiên bản Giá use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0010 Mỗi mục lịch sử chứa số tiền được áp dụng cho tổng giá. Nếu bạn muốn truy vấn những sửa đổi này với giá trị "trên mỗi đơn vị" của chúng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0011 Lọc lịch sử này dựa trên các loại công cụ sửa đổi use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0012 Hầu hết thời gian bạn sẽ không cần tất cả dữ liệu từ phương pháp use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1606, chỉ tổng số sửa đổi. Chúng có thể được trả lại bằng cách sử dụng các phương pháp use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1608, use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1609 và chung chung use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1610 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0013 đầu raTheo mặc định, tất cả các giá trị tiền tệ được xử lý được bao bọc trong một đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.009. Đây phải là cách duy nhất để thao tác các giá trị này để tránh các lỗi xấp xỉ thập phân Hiển thị giá dưới dạng chuỗiCó rất nhiều cách khác nhau để định dạng giá hiển thị và ứng dụng của bạn chắc chắn có những nhu cầu riêng phải được tôn trọng. Mặc dù có thể xử lý định dạng giá trực tiếp từ các đối tượng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.009 được trả về, nhưng chúng tôi cũng đã bao gồm một trình định dạng Giá thuận tiện. Xin lưu ý rằng hành vi mặc định của nó dựa trên PHP813 của PHP (theo mặc định, nó sử dụng ngôn ngữ hiện tại, xem use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1614 để biết thêm thông tin) use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0014 Để định dạng bằng ngôn ngữ khác, hãy cung cấp tên ngôn ngữ mong muốn làm thông số thứ hai use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0015 Đối với các trường hợp sử dụng tùy chỉnh nâng cao, hãy sử dụng phương pháp use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1615 để cung cấp chức năng định dạng tùy chỉnh use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0016 Phương thức use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1615 chấp nhận hàm đóng, tên lớp Trình định dạng hoặc thể hiện Trình định dạng. Hai tùy chọn cuối cùng nên mở rộng cả use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1617 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0017 Để linh hoạt hơn nữa, có thể xác định nhiều trình định dạng được đặt tên và gọi chúng bằng phương thức tĩnh động của riêng chúng use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0018 Xin lưu ý rằng các thông số bổ sung có thể được chuyển tiếp đến trình định dạng tùy chỉnh của bạn use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.0019 JSONGiá có thể được sắp xếp theo thứ tự thành JSON và bù nước bằng phương pháp use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1618, có thể hữu ích khi lưu trữ/truy xuất giá từ cơ sở dữ liệu hoặc API bên ngoài chẳng hạn use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.000
Phân tích giá trịCó một số phương thức khả dụng sẽ cho phép chuyển đổi giá trị chuỗi tiền tệ thành đối tượng Giá. Phương thức chung use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1624 sẽ cố gắng đoán loại tiền tệ từ chuỗi đã cho use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.001 Để điều này hoạt động, chuỗi phải luôn chứa chỉ báo về loại tiền đang được sử dụng (có thể là mã ISO hoặc ký hiệu hợp lệ). Khi sử dụng các ký hiệu, hãy lưu ý rằng một số trong số chúng (ví dụ: ____825) được sử dụng bằng nhiều loại tiền tệ, dẫn đến kết quả không rõ ràng Khi bạn chắc chắn Tiền tệ ISO nào có liên quan, bạn nên chuyển trực tiếp nó làm tham số thứ hai của phương thức use Whitecube\Price\Price; $steak = Price::EUR(1850) // Steak costs €18.50/kg ->setUnits(1.476) // Customer had 1.476kg, excl. total is €27.31 ->setVat(6) // There is 6% VAT, incl. total is €28.95 ->addTax(50) // There also is a €0.50/kg tax (before VAT), incl. total is €29.73 ->addDiscount(-100); // We granted a €1.00/kg discount (before VAT), incl. total is €28.1626 use Whitecube\Price\Price; $single = Price::EUR(500); // 1 x €5.00 $multiple = Price::USD(500, 4); // 4 x $5.002 Khi sử dụng trình phân tích cú pháp tiền tệ chuyên dụng, tất cả các đơn vị/ký hiệu và ký tự không phải là số đều bị bỏ qua 🔥Tài trợNếu bạn phụ thuộc vào gói này trong các ứng dụng sản xuất của mình, hãy cân nhắc tài trợ cho chúng tôi. Đó là cách tốt nhất để giúp chúng tôi tiếp tục làm những gì chúng tôi thích làm. tạo phần mềm mã nguồn mở tuyệt vời Đóng gópVui lòng đề xuất các thay đổi, yêu cầu các tính năng mới hoặc tự sửa lỗi. Chúng tôi chắc chắn rằng vẫn còn rất nhiều cải tiến có thể được thực hiện và chúng tôi rất sẵn lòng hợp nhất các yêu cầu kéo hữu ích Cảm ơn Được tạo bằng❤️ cho mã nguồn mởTại Whitecube, chúng tôi sử dụng rất nhiều phần mềm mã nguồn mở như một phần công việc hàng ngày của mình. Vì vậy, khi chúng tôi có cơ hội để đền đáp lại điều gì đó, chúng tôi vô cùng phấn khích Chúng tôi hy vọng bạn sẽ thích đóng góp nhỏ này của chúng tôi và rất muốn nhận được phản hồi từ bạn nếu bạn thấy nó hữu ích trong các dự án của mình. Theo dõi chúng tôi trên Twitter để biết thêm thông tin cập nhật |