Author: jleroux
Date: Mon Dec 17 12:41:23 2007 New Revision: 604993 URL: http://svn.apache.org/viewvc?rev=604993&view=rev Log: A modified patch from Chris Lombardi "Ability to add items with modifiers in POS" (https://issues.apache.org/jira/browse/OFBIZ-1109) - OFBIZ-1109 There are some additions I did, and still some things to do... An new Jira issue should be opened Added: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml (with props) ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml (with props) ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java (with props) Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels.properties ofbiz/trunk/specialpurpose/pos/config/XuiLabels_es.properties ofbiz/trunk/specialpurpose/pos/config/XuiLabels_fr.properties ofbiz/trunk/specialpurpose/pos/config/XuiLabels_it.properties ofbiz/trunk/specialpurpose/pos/config/XuiLabels_ro.properties ofbiz/trunk/specialpurpose/pos/config/XuiLabels_zh.properties ofbiz/trunk/specialpurpose/pos/config/buttonevents.xml ofbiz/trunk/specialpurpose/pos/config/pos.properties ofbiz/trunk/specialpurpose/pos/config/pos_es.properties ofbiz/trunk/specialpurpose/pos/config/pos_fr.properties ofbiz/trunk/specialpurpose/pos/config/pos_it.properties ofbiz/trunk/specialpurpose/pos/config/pos_ro.properties ofbiz/trunk/specialpurpose/pos/config/pos_zh.properties ofbiz/trunk/specialpurpose/pos/data/PosSecurityData.xml ofbiz/trunk/specialpurpose/pos/screens/default/menu/posmain.xml ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/event/MenuEvents.java ofbiz/trunk/specialpurpose/pos/styles/posstyles.xml Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/XuiLabels.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/XuiLabels.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/XuiLabels.properties Mon Dec 17 12:41:23 2007 @@ -6,9 +6,9 @@ # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -16,6 +16,7 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels directly translated by XUI framework Add=Add AmountInOut=Amount CASH=CASH @@ -29,6 +30,7 @@ CLOSE=CLOSE CLR=CLR CLR_DISC=CLR DISC +CONFIG_ITEM=Item Configuration CREDIT=CREDIT Cancel=Cancel DEL=DEL @@ -62,6 +64,7 @@ PROMO_CODE=PROMO CODE QTY=QTY RECEIPT_PRINTER_COMMUNICATION_ERROR=RECEIPT PRINTER COMMUNICATION ERROR +RECEIPT_SERIALISE_ERROR=RECEIPT SERIALISE ERROR REPRINT=REPRINT RESET_XUI=RESET XUI ReasonInOut=Reason @@ -84,6 +87,7 @@ UNKNOWN_CARD_TYPE=UNKNOWN CARD TYPE VOID_ITEM=VOID ITEM VOID_SALE=VOID SALE +item_not_configurable=The selected item is not configurable. no_sales=No sales saved order_not_found=ORDER NOT FOUND problems_reading_card=PROBLEMS READING SWIPED CARD Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels_es.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/XuiLabels_es.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/XuiLabels_es.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/XuiLabels_es.properties Mon Dec 17 12:41:23 2007 @@ -16,32 +16,32 @@ # specific language governing permissions and limitations # under the License. ############################################################################### -#### -Add=A\u00F1adir +### This file contains labels directly translated by XUI framework +Add=A\u00f1adir CASH=CASH -CASH_DRAWER_COMMUNICATION_ERROR=Error en comunicaci\u00F3n de caja -CASH_DRAWER_IS_OPEN=La caja est\u00E1 abierta +CASH_DRAWER_COMMUNICATION_ERROR=Error en comunicaci\u00f3n de caja +CASH_DRAWER_IS_OPEN=La caja est\u00e1 abierta CHANGE_PRICE=Cambiando precio CHECK=CHEQUE CLEAR_ALL=Limpiar todos -CLEAR_CACHE=Limpiar cach\u00E9 -CLEAR_ONE=Anular art\u00EDculo +CLEAR_CACHE=Limpiar cach\u00e9 +CLEAR_ONE=Anular art\u00edculo CLOSE=Cerrar CLR=LIMPIAR CLR_DISC=LIMPIAR DISCO -CREDIT=Cr\u00E9dito +CREDIT=Cr\u00e9dito Cancel=Cancel DEL=BORRAR Delete=Suprimir ENT=Validar -EXCEPTION=Excepci\u00F3n +EXCEPTION=Excepci\u00f3n EXIT=Salir FINISH=Fin -FUNCTION_NOT_YET_SUPPORTED=Funci\u00F3n no soportada +FUNCTION_NOT_YET_SUPPORTED=Funci\u00f3n no soportada GIFT_CERT=Certificado de regalo -INVALID_CARD_NUMBER=Tarjeta de cr\u00E9dito inv\u00E1lida -ITEM_DISC=Descuento de art\u00EDculo -ITEM_MODIFICATION_ERROR=Error en la modificaci\u00F3n del art\u00EDculo +INVALID_CARD_NUMBER=Tarjeta de cr\u00e9dito inv\u00e1lida +ITEM_DISC=Descuento de art\u00edculo +ITEM_MODIFICATION_ERROR=Error en la modificaci\u00f3n del art\u00edculo LANG=Idioma LOCK=Bloquear MAIN=Principal @@ -49,7 +49,7 @@ MGR=Gestion MOD=Cambiar la cantidad NOT_ENOUGH_FUNDS=No tiene suficientes fondos -NO_ITEMS_SOLD=Art\u00EDculos no vendidos +NO_ITEMS_SOLD=Art\u00edculos no vendidos OK=OK OPEN=ABIERTO OPEN_DRAWER=ABRIR CAJA @@ -57,30 +57,30 @@ PRINTER_NOT_READY=IMPRESORA NO LISTA PROMO=PROMOCIONES QTY=CANTIDAD -RECEIPT_PRINTER_COMMUNICATION_ERROR=Error de comunicaci\u00F3n entre impresora y caja +RECEIPT_PRINTER_COMMUNICATION_ERROR=Error de comunicaci\u00f3n entre impresora y caja REPRINT=REIMPRIMIR RESET_XUI=Reiniciar Replace=Reemplazar ReplaceAndDelete=<html><center>Reemplazar y<br>borrar SALE_DISC=Descuento de ventas SALE_VOIDED=Venta anulada -SET_REF\#=N\u00FAmero +SET_REF\#=N\u00famero SIGN_OUT=Salir SKU=SKU Save=Guardar SaveAndClear=<html><center>Guardar y<br>limpiar -TERMINAL_IS_CLOSED=El terminar est\u00E1 cerrado +TERMINAL_IS_CLOSED=El terminar est\u00e1 cerrado TEST_ALERT=Alerta (prueba) TEST_ALERT_BOX=Pueba de alerta: -TEST_MSR=Tarjeta de cr\u00E9dito +TEST_MSR=Tarjeta de cr\u00e9dito TOTALS=TOTAL TRANS_RET=TRANS RET -TRANS_SAVE=Guardar transacci\u00F3n +TRANS_SAVE=Guardar transacci\u00f3n UNKNOWN_CARD_TYPE=Tipo de tarjeta desconocido -VOID_ITEM=Anular art\u00EDculo +VOID_ITEM=Anular art\u00edculo VOID_SALE=Anular venta no_sales=No se guardaron ventas order_not_found=Orden no encontrada problems_reading_card=Problemas al leer la tarjeta product_not_found=Producto no encontrado -promo_page=Esta ser\u00E1 la p\u00E1gina de promociones +promo_page=Esta ser\u00e1 la p\u00e1gina de promociones Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels_fr.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/XuiLabels_fr.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/XuiLabels_fr.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/XuiLabels_fr.properties Mon Dec 17 12:41:23 2007 @@ -6,9 +6,9 @@ # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -16,39 +16,42 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels directly translated by XUI framework Add=Ajouter AmountInOut=Montant -CASH=Esp\u00E8ces +CASH=Esp\u00e8ces CASH_DRAWER_COMMUNICATION_ERROR=Erreur lors de la communication avec le tiroir caisse CASH_DRAWER_IS_OPEN=Le tiroir caisse est ouvert CHANGE_PRICE=Changer le prix -CHECK=Ch\u00E8que +CHECK=Ch\u00e8que CLEAR_ALL=Tout annuler CLEAR_CACHE=Annuler l'encours CLEAR_ONE=Annuler l'article CLOSE=Fermer CLR=Effacer CLR_DISC=Annuler la remise -CREDIT=Cr\u00E9dit +CONFIG_ITEM=Configurer l'article +CREDIT=Cr\u00e9dit Cancel=Annuler DEL=Suppr. Delete=Supprimer ENT=Valider -EXCEPTION=Exception rencontr\u00E9e +EXCEPTION=Exception rencontr\u00e9e EXIT=Quitter FINISH=Fin -FUNCTION_NOT_YET_SUPPORTED=Fonction non encore support\u00E9e +FUNCTION_NOT_YET_SUPPORTED=Fonction non encore support\u00e9e GIFT_CERT=Bon d'achat -INVALID_CARD_NUMBER=N\u00B0 de carte non valide +INVALID_CARD_NUMBER=N\u00b0 de carte non valide ITEM_DISC=Remise sur l'article ITEM_MODIFICATION_ERROR=Erreur lors de la modification de l'article LANG=Langage +LOAD=Charger LOCK=Bloquer MAIN=Vente -MANAGER_NOT_LOGGED_IN=Identifiant non g\u00E9rant +MANAGER_NOT_LOGGED_IN=Identifiant non g\u00e9rant MGR=Gestion -MOD=Changer la quantit\u00E9 -NOT_ENOUGH_FUNDS=Le client n'a pas fournit assez d'argent pour cl\u00F4turer la vente +MOD=Changer la quantit\u00e9 +NOT_ENOUGH_FUNDS=Le client n'a pas fournit assez d'argent pour cl\u00f4turer la vente NO_ITEMS_SOLD=Aucun article vendu OK=OK OPEN=Ouvrir @@ -56,34 +59,37 @@ PAID_IN=Retour en caisse PAID_OUT=Sortie de caisse PAY=Paiement -PRINTER_NOT_READY=Imprimante de caisse non pr\u00EAte +PRINTER_NOT_READY=Imprimante de caisse non pr\u00eate PROMO=Promos -QTY=Quantit\u00E9 +PROMO_CODE=Code de promotion +QTY=Quantit\u00e9 RECEIPT_PRINTER_COMMUNICATION_ERROR=Erreur lors de la communication avec l'imprimante de caisse -REPRINT=R\u00E9afficher -RESET_XUI=R\u00E9initialiser +RECEIPT_SERIALISE_ERROR=Erreur lors de la tentative de s\u00e9rialisation du ticket +REPRINT=R\u00e9afficher +RESET_XUI=R\u00e9initialiser ReasonInOut=Raison Replace=Remplacer ReplaceAndDelete=<html><center>Remplacer et<br>supprimer SALE_DISC=Remise sur la vente -SALE_VOIDED=Vente annul\u00E9e -SET_REF\#=n\u00B0 ? +SALE_VOIDED=Vente annul\u00e9e +SET_REF\#=n\u00b0 ? SIGN_OUT=Sortir SKU=Code Save=Sauver -SaveAndClear=<html><center>Sauver et<br>r\u00E9intialiser la vente -TERMINAL_IS_CLOSED=Le terminal est ferm\u00E9 +SaveAndClear=<html><center>Sauver et<br>r\u00e9intialiser la vente +TERMINAL_IS_CLOSED=Le terminal est ferm\u00e9 TEST_ALERT=Alerte (test) -TEST_ALERT_BOX=Test de l'impl\u00E9mentation des alertes -TEST_MSR=Carte de cr\u00E9dit +TEST_ALERT_BOX=Test de l'impl\u00e9mentation des alertes +TEST_MSR=Carte de cr\u00e9dit TOTALS=Totals TRANS_RET=Recharger une vente TRANS_SAVE=Sauver la vente UNKNOWN_CARD_TYPE=Type de carte inconnu VOID_ITEM=Annuler l'article VOID_SALE=Annuler la vente -no_sales=Aucune vente sauv\u00E9e -order_not_found=N\u00B0 de transaction inconnu ! -problems_reading_card=Probl\u00E8me lors de la lecture de la carte +item_not_configurable=Article non configurable +no_sales=Aucune vente sauv\u00e9e +order_not_found=N\u00b0 de transaction inconnu ! +problems_reading_card=Probl\u00e8me lors de la lecture de la carte product_not_found=Produit inconnu ! promo_page=Ce sera la page des promotions... Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels_it.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/XuiLabels_it.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/XuiLabels_it.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/XuiLabels_it.properties Mon Dec 17 12:41:23 2007 @@ -16,6 +16,7 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels directly translated by XUI framework CASH=CONTANTE CASH_DRAWER_COMMUNICATION_ERROR=ERRORE DI COMUNICAZIONE CON REGISTRATORE DI CASSA CASH_DRAWER_IS_OPEN=REGISTRATORE DI CASSA E' APERTO @@ -29,7 +30,6 @@ CLR_DISC=PULISCI SCONTO CREDIT=CREDITO DEL=CANCELLA -Delete= ENT=INSERISCI EXCEPTION=ECCEZIONE EXIT=ESCI @@ -56,14 +56,11 @@ RECEIPT_PRINTER_COMMUNICATION_ERROR=ERRORE COMUNICAZIONE STAMPA RICEVUTA REPRINT=RISTAMPA RESET_XUI=AZZERA XUI -ReplaceAndDelete= SALE_DISC=SCONTO VENDITA SALE_VOIDED=VENDITA VUOTA SET_REF\#=IMPOSTA RIF# SIGN_OUT=SIGN OUT SKU=CODICE PRODOTTO -Save= -SaveAndClear= TERMINAL_IS_CLOSED=TERMINALE E' CHIUSO TEST_ALERT=TEST AVVISO TEST_ALERT_BOX=TEST BOX AVVISO - TESTANDO IL DIALOGO IMPLEMENTAZIONE @@ -77,4 +74,4 @@ order_not_found=ORDINE NON TROVATO problems_reading_card=PROBLEMI LEGGENDO LETTORE CARTE product_not_found=PRODOTTO NON TROVATO -promo_page=Questo sar\u00E0 nella pagina promozione! +promo_page=Questo sar\u00e0 nella pagina promozione! Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels_ro.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/XuiLabels_ro.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/XuiLabels_ro.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/XuiLabels_ro.properties Mon Dec 17 12:41:23 2007 @@ -16,6 +16,7 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels directly translated by XUI framework CASH=NUMERAR CASH_DRAWER_COMMUNICATION_ERROR=EROARE DE COMUNICARE CU REGISTRATORUL DE CASA CASH_DRAWER_IS_OPEN=REGISTRATORUL DE CASA ESTE DESCHIS @@ -29,7 +30,6 @@ CLR_DISC=CURATA REDUCERE CREDIT=CREDIT DEL=STERGE -Delete= ENT=INTRODUCETI EXCEPTION=EXCEPTIE EXIT=IESIRE @@ -56,17 +56,14 @@ RECEIPT_PRINTER_COMMUNICATION_ERROR=EROARE LA PRIMIREA COMUNICARII DE TIPARIRE REPRINT=RETIPARESTE RESET_XUI=AZEREAZA XUI -ReplaceAndDelete= SALE_DISC=SCONT VANZARE SALE_VOIDED=VANZARE GOALA SET_REF\#=SETEAZA RIF# SIGN_OUT=SIGN AUT SKU=COD PRODUS -Save= -SaveAndClear= TERMINAL_IS_CLOSED=TERMINAL INCHIS TEST_ALERT=TEST AVIZARE -TEST_ALERT_BOX= AVIZ TEST BOX - TESTAND DIALOGUL IMPLEMENTRE +TEST_ALERT_BOX=AVIZ TEST BOX - TESTAND DIALOGUL IMPLEMENTRE TEST_MSR=TEST MSR TOTALS=TOTAL TRANS_RET=RETURNARE TRANZACTIE @@ -76,6 +73,5 @@ VOID_SALE=VANZARE GOALA order_not_found=COMANDA NEGASITA problems_reading_card=PROBLEME LA CITIREA CARDULUI -product_not_found= NU GASESTE PRODUSUL +product_not_found=NU GASESTE PRODUSUL promo_page=Acesta va fi in pagina de promotie! - Modified: ofbiz/trunk/specialpurpose/pos/config/XuiLabels_zh.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/XuiLabels_zh.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/XuiLabels_zh.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/XuiLabels_zh.properties Mon Dec 17 12:41:23 2007 @@ -16,64 +16,61 @@ # specific language governing permissions and limitations # under the License. ############################################################################### -CASH=\u73B0\u91D1 -CASH_DRAWER_COMMUNICATION_ERROR=\u94B1\u7BB1\u901A\u8BAF\u9519 -CASH_DRAWER_IS_OPEN=\u94B1\u7BB1\u5F00\u7740 -CHANGE_PRICE=\u8C03\u6574\u4EF7\u683C -CHECK=\u652F\u7968 -CLEAR_ALL=\u6E05\u9664\u6240\u6709 -CLEAR_CACHE=\u6E05\u7F13\u5B58 -CLEAR_ONE=\u6E05\u9664\u4E00 +### This file contains labels directly translated by XUI framework +CASH=\u73b0\u91d1 +CASH_DRAWER_COMMUNICATION_ERROR=\u94b1\u7bb1\u901a\u8baf\u9519 +CASH_DRAWER_IS_OPEN=\u94b1\u7bb1\u5f00\u7740 +CHANGE_PRICE=\u8c03\u6574\u4ef7\u683c +CHECK=\u652f\u7968 +CLEAR_ALL=\u6e05\u9664\u6240\u6709 +CLEAR_CACHE=\u6e05\u7f13\u5b58 +CLEAR_ONE=\u6e05\u9664\u4e00 CLOSE=\u5173 -CLR=\u6E05\u9664 -CLR_DISC=\u6E05\u9664\u6298\u6263 -CREDIT=\u4FE1\u7528\u5361 -Delete= -ENT=\u786E\u8BA4 -EXCEPTION=\u9519\u8BEF -EXIT=\u9000\u51FA -FINISH=\u5B8C\u6210 -FUNCTION_NOT_YET_SUPPORTED=\u8BE5\u529F\u80FD\u8FD8\u672A\u652F\u6301 -GIFT_CERT=\u793C\u5238 -INVALID_CARD_NUMBER=\u65E0\u6548\u5361\u53F7 +CLR=\u6e05\u9664 +CLR_DISC=\u6e05\u9664\u6298\u6263 +CREDIT=\u4fe1\u7528\u5361 +ENT=\u786e\u8ba4 +EXCEPTION=\u9519\u8bef +EXIT=\u9000\u51fa +FINISH=\u5b8c\u6210 +FUNCTION_NOT_YET_SUPPORTED=\u8be5\u529f\u80fd\u8fd8\u672a\u652f\u6301 +GIFT_CERT=\u793c\u5238 +INVALID_CARD_NUMBER=\u65e0\u6548\u5361\u53f7 ITEM_DISC=\u5355\u9879\u6298\u6263 -ITEM_MODIFICATION_ERROR=\u884C\u4FEE\u6539\u51FA\u9519 -LANG=\u8BED\u8A00 +ITEM_MODIFICATION_ERROR=\u884c\u4fee\u6539\u51fa\u9519 +LANG=\u8bed\u8a00 LOCK=\u9501 -MAIN=\u4E3B\u9875 -MANAGER_NOT_LOGGED_IN=\u7BA1\u7406\u5458\u672A\u767B\u5F55 +MAIN=\u4e3b\u9875 +MANAGER_NOT_LOGGED_IN=\u7ba1\u7406\u5458\u672a\u767b\u5f55 MGR=MGR MOD=MOD -NOT_ENOUGH_FUNDS=\u5BA2\u6237\u4EA4\u6B3E\u4E0D\u8DB3 -NO_ITEMS_SOLD=\u6CA1\u6709\u9500\u552E\u9879 -OPEN=\u5F00 -OPEN_DRAWER=\u6253\u5F00\u94B1\u7BB1 -PAY=\u652F\u4ED8 -PRINTER_NOT_READY=\u6253\u5370\u673A\u672A\u5C31\u7EEA -PROMO=\u4FC3\u9500 -QTY=\u4EF6\u6570 -RECEIPT_PRINTER_COMMUNICATION_ERROR=\u6253\u5370\u51FA\u9519 -REPRINT=\u91CD\u5370 -RESET_XUI=\u5237\u65B0\u754C\u9762 -ReplaceAndDelete= -SALE_DISC=\u9500\u552E\u6298\u6263 -SALE_VOIDED=\u9500\u552E\u4F5C\u5E9F +NOT_ENOUGH_FUNDS=\u5ba2\u6237\u4ea4\u6b3e\u4e0d\u8db3 +NO_ITEMS_SOLD=\u6ca1\u6709\u9500\u552e\u9879 +OPEN=\u5f00 +OPEN_DRAWER=\u6253\u5f00\u94b1\u7bb1 +PAY=\u652f\u4ed8 +PRINTER_NOT_READY=\u6253\u5370\u673a\u672a\u5c31\u7eea +PROMO=\u4fc3\u9500 +QTY=\u4ef6\u6570 +RECEIPT_PRINTER_COMMUNICATION_ERROR=\u6253\u5370\u51fa\u9519 +REPRINT=\u91cd\u5370 +RESET_XUI=\u5237\u65b0\u754c\u9762 +SALE_DISC=\u9500\u552e\u6298\u6263 +SALE_VOIDED=\u9500\u552e\u4f5c\u5e9f SET_REF\#=SET REF# -SIGN_OUT=\u7B7E\u9000 +SIGN_OUT=\u7b7e\u9000 SKU=SKU -Save= -SaveAndClear= -TERMINAL_IS_CLOSED=\u7EC8\u7AEF\u5DF2\u5173\u95ED -TEST_ALERT=\u6D4B\u8BD5\u62A5\u8B66 -TEST_ALERT_BOX=\u6D4B\u8BD5\u62A5\u8B66\u76D2 - \u6D4B\u8BD5\u5BF9\u8BB2\u5668 -TEST_MSR=\u6D4B\u8BD5\u78C1\u6761 -TOTALS=\u5408\u8BA1 +TERMINAL_IS_CLOSED=\u7ec8\u7aef\u5df2\u5173\u95ed +TEST_ALERT=\u6d4b\u8bd5\u62a5\u8b66 +TEST_ALERT_BOX=\u6d4b\u8bd5\u62a5\u8b66\u76d2 - \u6d4b\u8bd5\u5bf9\u8bb2\u5668 +TEST_MSR=\u6d4b\u8bd5\u78c1\u6761 +TOTALS=\u5408\u8ba1 TRANS_RET=TRANS RET -TRANS_SAVE=\u4EA4\u6613\u4FDD\u5B58 -UNKNOWN_CARD_TYPE=\u672A\u77E5\u5361\u7C7B\u578B -VOID_ITEM=\u7A7A\u884C -VOID_SALE=\u7A7A\u9500\u552E -order_not_found=\u8BA2\u5355\u4E0D\u5B58\u5728 -problems_reading_card=\u5237\u5361\u95EE\u9898 -product_not_found=\u8D27\u54C1\u4E0D\u5B58\u5728 -promo_page=\u8FD9\u662F\u4FC3\u9500\u9875! +TRANS_SAVE=\u4ea4\u6613\u4fdd\u5b58 +UNKNOWN_CARD_TYPE=\u672a\u77e5\u5361\u7c7b\u578b +VOID_ITEM=\u7a7a\u884c +VOID_SALE=\u7a7a\u9500\u552e +order_not_found=\u8ba2\u5355\u4e0d\u5b58\u5728 +problems_reading_card=\u5237\u5361\u95ee\u9898 +product_not_found=\u8d27\u54c1\u4e0d\u5b58\u5728 +promo_page=\u8fd9\u662f\u4fc3\u9500\u9875! Modified: ofbiz/trunk/specialpurpose/pos/config/buttonevents.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/buttonevents.xml?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/buttonevents.xml (original) +++ ofbiz/trunk/specialpurpose/pos/config/buttonevents.xml Mon Dec 17 12:41:23 2007 @@ -80,6 +80,7 @@ <event button-name="menuClrDisc" class-name="org.ofbiz.pos.event.MenuEvents" method-name="clearDiscounts" disable-lock="false"/> <event button-name="menuSave" class-name="org.ofbiz.pos.event.MenuEvents" method-name="saveSale" disable-lock="false"/> <event button-name="menuLoad" class-name="org.ofbiz.pos.event.MenuEvents" method-name="loadSale" disable-lock="false"/> + <event button-name="menuConfigItem" class-name="org.ofbiz.pos.event.MenuEvents" method-name="configureItem" disable-lock="false"/> <!-- payment events --> <event button-name="payCash" class-name="org.ofbiz.pos.event.PaymentEvents" method-name="payCash" disable-lock="false"/> @@ -121,4 +122,4 @@ <event button-name="testAlert" class-name="org.ofbiz.pos.event.TestEvents" method-name="testAlert" disable-lock="false"/> <event button-name="testLogIdx" class-name="org.ofbiz.pos.event.TestEvents" method-name="logSelectedIndex" disable-lock="false"/> <event button-name="testMsr" class-name="org.ofbiz.pos.event.TestEvents" method-name="testMsr" disable-lock="false"/> -</button-events> \ No newline at end of file +</button-events> Modified: ofbiz/trunk/specialpurpose/pos/config/pos.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/pos.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/pos.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/pos.properties Mon Dec 17 12:41:23 2007 @@ -16,6 +16,9 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels translated by the POS component (ie not by XUI framework) +(ItemDiscount)=(Item discount) +(SalesDiscount)=(Sales discount) (adjustment)=(adjustment) AMT=AMT AUTHCD=Enter Auth Code: @@ -27,6 +30,8 @@ CREDIT_CARD=CREDIT CARD CREDNO=Enter Card Number: CREDZP=Enter Billing ZipCode: +ConfigureItem=Item Configuration +CreateOrChooseReasonInOut=You have to create or choose a reason DATE=DATE DRWR=TILL DateFormat=EEE MMM dd @@ -50,6 +55,8 @@ OPDRAM=Starting Drawer Amount: OTHER=OTHER PAYFIN=Press Finish To Complete Sale +PaidInTitle=Enter amount to paid in and create or choose a reason +PaidOutTitle=Enter amount to withdraw and create or choose a reason Processing=Processing payments... QTY=QTY REFNUM=Enter Reference Number: @@ -73,8 +80,3 @@ draw=Dr: term=Term: total_report=TOTALS REPORT -CreateOrChooseReasonInOut=You have to create or choose a reason -PaidInTitle=Enter amount to paid in and create or choose a reason -PaidOutTitle=Enter amount to withdraw and create or choose a reason -(ItemDiscount)=(Item discount) -(SalesDiscount)=(Sales discount) \ No newline at end of file Modified: ofbiz/trunk/specialpurpose/pos/config/pos_es.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/pos_es.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/pos_es.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/pos_es.properties Mon Dec 17 12:41:23 2007 @@ -16,18 +16,20 @@ # specific language governing permissions and limitations # under the License. ############################################################################### - +### This file contains labels translated by the POS component (ie not by XUI framework) +(ItemDiscount)=(Item discount) +(SalesDiscount)=(Sales discount) (adjustment)=(adjustment) AMT=Precio -AUTHCD=Ingrese el c\u00F3digo secreto : +AUTHCD=Ingrese el c\u00f3digo secreto : CASH=CONTADO CHANGE=Cambio : CHECK=CHEQUE -CREDCF=Ingrese los \u00FAltimos 4 d\u00EDgitos -CREDEX=Ingrese fecha de expiraci\u00F3n (MMYY) -CREDIT_CARD=TARJETA DE CR\u00C9DITO -CREDNO=Ingrese n\u00FAmero de tarjeta : -CREDZP=Ingrese c\u00F3digo postal de facturaci\u00F3n +CREDCF=Ingrese los \u00faltimos 4 d\u00edgitos +CREDEX=Ingrese fecha de expiraci\u00f3n (MMYY) +CREDIT_CARD=TARJETA DE CR\u00c9DITO +CREDNO=Ingrese n\u00famero de tarjeta : +CREDZP=Ingrese c\u00f3digo postal de facturaci\u00f3n DATE=FECHA DRWR=Caja DateFormat=EEE MMM dd @@ -35,38 +37,36 @@ EMPL=VENDEDOR ENTCAS=Ingrese monto en efectivo ENTCHK=Ingrese monto en cheque -ENTCRC=Ingrese monto en tarjeta de cr\u00E9dito +ENTCRC=Ingrese monto en tarjeta de cr\u00e9dito ENTGFC=Ingrese monto de certificado de regalo:\u0009 ENTOTH=Ingrese monto de otros pagos GIFT_CARD=Certificado de regalo GROSS_SALES=Total Grand_Total=Gran total -ISCLOSED=El registro est\u00E1 cerrado -ISOPEN=El registro est\u00E1 abierto +ISCLOSED=El registro est\u00e1 cerrado +ISOPEN=El registro est\u00e1 abierto ITEM=ITEM -Invalid_Selection=Selecci\u00F3n inv\u00E1lida +Invalid_Selection=Selecci\u00f3n inv\u00e1lida OPDRAM=Monto inicial de la caja: OTHER=OTROS PAYFIN=Presione FINISH para completar la venta Processing=Procesando pagos... QTY=Cantidad -REFNUM=Ingrese n\u00FAmero de referencia +REFNUM=Ingrese n\u00famero de referencia SKU=SKU Sales_Tax=Impuestos de ventas Saving=Usted ahorra.... Shutting_down=Cerrando... TOTAL=Total TOTALD=Total debido: -TXID=N\u00FAmero de venta +TXID=N\u00famero de venta ULOGIN=Ingrese su login: UPASSW=Ingrese password -UserNotmanager=El usuario no es administrador v\u00E1lido -VOID=Ingrese n\u00FAmero de orden a anular +UserNotmanager=El usuario no es administrador v\u00e1lido +VOID=Ingrese n\u00famero de orden a anular Validating=Validando... -WaitingFinalSales=Esperando transmisi\u00F3n de datos... +WaitingFinalSales=Esperando transmisi\u00f3n de datos... clerk=Empleado draw=Dr. term=Terminal: total_report=REPORTE TOTAL: -(ItemDiscount)=(Item discount) -(SalesDiscount)=(Sales discount) \ No newline at end of file Modified: ofbiz/trunk/specialpurpose/pos/config/pos_fr.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/pos_fr.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/pos_fr.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/pos_fr.properties Mon Dec 17 12:41:23 2007 @@ -16,65 +16,67 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels translated by the POS component (ie not by XUI framework) +(ItemDiscount)=Remise sur l'article +(SalesDiscount)=Remise sur la vente (adjustment)=(ajustement) AMT=Prix AUTHCD=Entrez le code secret : -CASH=Esp\u00E8ces +CASH=Esp\u00e8ces CHANGE=A rendre : -CHECK=Ch\u00E8que(s) +CHECK=Ch\u00e8que(s) CREDCF=Entrez les 4 derniers chiffres : CREDEX=Entrez la date d'expiration (MMYY): -CREDIT_CARD=Carte(s) de cr\u00E9dit -CREDNO=Entrez le n\u00B0 de la carte : +CREDIT_CARD=Carte(s) de cr\u00e9dit +CREDNO=Entrez le n\u00b0 de la carte : CREDZP=Entrez le code postal de facturation : +ConfigureItem=Configuration de l'article +CreateOrChooseReasonInOut=Vous devez cr\u00e9er ou choisir une raison pour ce mouvement de caisse DATE=Date DRWR=Caisse DateFormat=EE dd MMM -DateTimeFormat='le' dd MMMMM yyyy '\u00E0' HH:mm:ss +DateTimeFormat='le' dd MMMMM yyyy '\u00e0' HH:mm:ss EMPL=Vendeur -ENTCAS=Entrez le montant en esp\u00E8ce : -ENTCHK=Entrez le montant en ch\u00E8que : -ENTCRC=Entrez le montant en carte de cr\u00E9dit : +ENTCAS=Entrez le montant en esp\u00e8ce : +ENTCHK=Entrez le montant en ch\u00e8que : +ENTCRC=Entrez le montant en carte de cr\u00e9dit : ENTGFC=Entrez le montant en bon d'achat : ENTOTH=Entrez le mt en autre moyen de paiement : GIFT_CARD=Bon(s) d'achat GROSS_SALES=Total Grand_Total=Total -ISCLOSED=Le registre est ferm\u00E9. +ISCLOSED=Le registre est ferm\u00e9. ISOPEN=Le registre est ouvert. -ITEM=D\u00E9signation -Invalid_Selection=S\u00E9lection non valide ! +ITEM=D\u00e9signation +Invalid_Selection=S\u00e9lection non valide ! LoadASale=Charger une vente LoadSaleListDblClickTip=Vous pouvez utiliser le double clic pour remplacer la vente en cours et supprimer celle ci OPDRAM=Contenu initial du tiroir : OTHER=Autres -PaidInOut=Entrez le montant et créer ou choisissez une raison pour ce mouvement de caisse PAYFIN=Appuyez sur [Fin] pour terminer la vente ! +PaidInOut=Entrez le montant et cr\u00e9er ou choisissez une raison pour ce mouvement de caisse +PaidInTitle=Entrez le montant \u00e0 remettre en caisse et cr\u00e9er ou choisissez une raison +PaidOutTitle=Entrez le montant \u00e0 retirer et cr\u00e9er ou choisissez une raison Processing=Traitement du paiement... QTY=Nb -REFNUM=Entrez la r\u00E9f\u00E9rence (nombre) : +REFNUM=Entrez la r\u00e9f\u00e9rence (nombre) : SKU=Code Sales_Tax=TVA SaveASale=Sauver la vente en cours Saving=Enregistrement de la vente... -SelectAProduct=S\u00E9lectionnez un produit +SelectAProduct=S\u00e9lectionnez un produit SelectProductListDblClickTip=Vous pouvez utiliser le double clic pour chosir un produit -Shutting_down=Arr\u00EAt en cours... +Shutting_down=Arr\u00eat en cours... TOTAL=Total -TOTALD=Total d\u00FB : -TXID=N\u00B0vente +TOTALD=Total d\u00fb : +TXID=N\u00b0vente ULOGIN=Entrez votre identifiant : UPASSW=Entrez votre mot de passe : -UserNotmanager=Cet utilisateur n'est pas un g\u00E9rant ! -VOID=Entrez le n\u00B0 d'ordre \u00E0 annuler : +UserNotmanager=Cet utilisateur n'est pas un g\u00e9rant ! +VOID=Entrez le n\u00b0 d'ordre \u00e0 annuler : Validating=Validation... -WaitingFinalSales=En attente de transmission de donn\u00E9es ... +WaitingFinalSales=En attente de transmission de donn\u00e9es ... clerk=Vendeur : draw=Tiroir : term=Terminal : total_report=TOTAUX -CreateOrChooseReasonInOut=Vous devez créer ou choisir une raison pour ce mouvement de caisse -PaidInTitle=Entrez le montant \u00E0 remettre en caisse et créer ou choisissez une raison -PaidOutTitle=Entrez le montant \u00E0 retirer et créer ou choisissez une raison -(ItemDiscount)=Remise sur l'article -(SalesDiscount)=Remise sur la vente \ No newline at end of file Modified: ofbiz/trunk/specialpurpose/pos/config/pos_it.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/pos_it.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/pos_it.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/pos_it.properties Mon Dec 17 12:41:23 2007 @@ -16,6 +16,9 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels translated by the POS component (ie not by XUI framework) +(ItemDiscount)=(Item discount) +(SalesDiscount)=(Sales discount) (adjustment)=(adjustment) AMT=IMP AUTHCD=Inserire Codice Autorizzazione: @@ -30,7 +33,6 @@ DATE=DATA DRWR=CASSIERE DateFormat=EEE MMM dd -DateTimeFormat= EMPL=IMPIEGATO ENTCAS=Inserire Importo Contante: ENTCHK=Inserire Importo Assegno: @@ -40,11 +42,10 @@ GIFT_CARD=CARTA OMAGGIO GROSS_SALES=LORDO VENDITA Grand_Total=Totale Generale -ISCLOSED=Registratore di Cassa \u00E8 Chiuso -ISOPEN=Registratore di Cassa \u00E8 Aperto +ISCLOSED=Registratore di Cassa \u00e8 Chiuso +ISOPEN=Registratore di Cassa \u00e8 Aperto ITEM=PRODOTTO Invalid_Selection=Selezione Non Valida! -LoadSaleListDblClickTip= OPDRAM=Importo Iniziale Cassiere: OTHER=ALTRO PAYFIN=Premere Fine Per Completare la Vendita @@ -53,7 +54,6 @@ REFNUM=Inserire Numero Riferimento: SKU=CODICE PRODOTTO Sales_Tax=Tasse di Vendita -SaveASale= Saving=Salvataggio vendita... Shutting_down=Chiusura... TOTAL=TOTALE @@ -61,7 +61,7 @@ TXID=IDTAX ULOGIN=Inserire Id Utente: UPASSW=Inserire Password: -UserNotmanager=Utente non \u00E8 un manager valido! +UserNotmanager=Utente non \u00e8 un manager valido! VOID=Inserire Numero Ordine Da Svuotare: Validating=Validazione... WaitingFinalSales=In Attesa di trasmissione dei dati vendite finali... @@ -69,5 +69,3 @@ draw=Cass.: term=Termine: total_report=TOTALI STAMPA -(ItemDiscount)=(Item discount) -(SalesDiscount)=(Sales discount) \ No newline at end of file Modified: ofbiz/trunk/specialpurpose/pos/config/pos_ro.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/pos_ro.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/pos_ro.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/pos_ro.properties Mon Dec 17 12:41:23 2007 @@ -16,6 +16,9 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels translated by the POS component (ie not by XUI framework) +(ItemDiscount)=(Item discount) +(SalesDiscount)=(Sales discount) (adjustment)=(adjustment) AMT=IMP AUTHCD=Introduceti Codul de Autorizatie: @@ -30,13 +33,13 @@ DATE=DATA DRWR=CASIER DateFormat=EEE MMM dd -DateTimeFormat= yyyy MMMMM dd 'la' hh:mm:ss aaa +DateTimeFormat=yyyy MMMMM dd 'la' hh:mm:ss aaa EMPL=Angajat ENTCAS=Introduceti Valoare Numerar: ENTCHK=Introduceti Valoare CEC: -ENTCRC= Introduceti Valoare Carte de Credit: -ENTGFC= Introduceti Valoare Carte Omagiu: -ENTOTH= Introduceti Valoare Alte Plati: +ENTCRC=Introduceti Valoare Carte de Credit: +ENTGFC=Introduceti Valoare Carte Omagiu: +ENTOTH=Introduceti Valoare Alte Plati: GIFT_CARD=CARTE OMAGIU GROSS_SALES=Valoare BRUTA-VANZARE Grand_Total=Total General @@ -44,7 +47,7 @@ ISOPEN=Registru de Casa este Deschis ITEM=PRODUS Invalid_Selection=Selectare InValida! -LoadSaleListDblClickTip= Poti folosi dublu click pentru a rescrie vanzarea cruenta si pentru a o sterge. +LoadSaleListDblClickTip=Poti folosi dublu click pentru a rescrie vanzarea cruenta si pentru a o sterge. OPDRAM=Valoare Initiala Casierie: OTHER=ALTE PAYFIN=Apasa Terminare(FINISH) Pentru a Completa Vanzarea @@ -69,5 +72,3 @@ draw=Cas: term=Term: total_report=TOTAL REPORT -(ItemDiscount)=(Item discount) -(SalesDiscount)=(Sales discount) \ No newline at end of file Modified: ofbiz/trunk/specialpurpose/pos/config/pos_zh.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/config/pos_zh.properties?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/config/pos_zh.properties (original) +++ ofbiz/trunk/specialpurpose/pos/config/pos_zh.properties Mon Dec 17 12:41:23 2007 @@ -16,58 +16,56 @@ # specific language governing permissions and limitations # under the License. ############################################################################### +### This file contains labels translated by the POS component (ie not by XUI framework) +(ItemDiscount)=(Item discount) +(SalesDiscount)=(Sales discount) (adjustment)=(adjustment) -AMT=\u91D1\u989D -AUTHCD=\u8F93\u5165\u6388\u6743\u7801: -CASH=\u73B0\u91D1 -CHANGE=\u627E\u96F6: -CHECK=\u652F\u7968 -CREDCF=\u8F93\u5165\u6700\u540E4\u4F4D\u5361\u53F7: -CREDEX=\u8F93\u5165\u5230\u671F\u65E5 (MMYY): -CREDIT_CARD=\u4FE1\u7528\u5361 -CREDNO=\u8F93\u5165\u5361\u53F7: -CREDZP=\u8F93\u5165\u8D26\u5355\u90AE\u653F\u7F16\u7801: -DATE=\u65E5\u671F -DRWR=\u949E\u7BB1 +AMT=\u91d1\u989d +AUTHCD=\u8f93\u5165\u6388\u6743\u7801: +CASH=\u73b0\u91d1 +CHANGE=\u627e\u96f6: +CHECK=\u652f\u7968 +CREDCF=\u8f93\u5165\u6700\u540e4\u4f4d\u5361\u53f7: +CREDEX=\u8f93\u5165\u5230\u671f\u65e5 (MMYY): +CREDIT_CARD=\u4fe1\u7528\u5361 +CREDNO=\u8f93\u5165\u5361\u53f7: +CREDZP=\u8f93\u5165\u8d26\u5355\u90ae\u653f\u7f16\u7801: +DATE=\u65e5\u671f +DRWR=\u949e\u7bb1 DateFormat=EEE MMM dd -DateTimeFormat= -EMPL=\u6536\u94F6\u5458 -ENTCAS=\u8F93\u5165\u73B0\u91D1\u989D: -ENTCHK=\u8F93\u5165\u652F\u7968\u989D: -ENTCRC=\u8F93\u5165\u4FE1\u7528\u5361\u989D: -ENTGFC=\u8F93\u5165\u793C\u54C1\u5361\u989D: -ENTOTH=\u8F93\u5165\u5176\u4ED6\u4ED8\u6B3E\u989D: -GIFT_CARD=\u793C\u54C1\u5361 -GROSS_SALES=\u6BDB\u9500\u552E\u989D -Grand_Total=\u603B\u8BA1 -ISCLOSED=\u63D0\u793A\u724C\u5DF2\u5173\u95ED -ISOPEN=\u63D0\u793A\u724C\u5DF2\u6253\u5F00 +EMPL=\u6536\u94f6\u5458 +ENTCAS=\u8f93\u5165\u73b0\u91d1\u989d: +ENTCHK=\u8f93\u5165\u652f\u7968\u989d: +ENTCRC=\u8f93\u5165\u4fe1\u7528\u5361\u989d: +ENTGFC=\u8f93\u5165\u793c\u54c1\u5361\u989d: +ENTOTH=\u8f93\u5165\u5176\u4ed6\u4ed8\u6b3e\u989d: +GIFT_CARD=\u793c\u54c1\u5361 +GROSS_SALES=\u6bdb\u9500\u552e\u989d +Grand_Total=\u603b\u8ba1 +ISCLOSED=\u63d0\u793a\u724c\u5df2\u5173\u95ed +ISOPEN=\u63d0\u793a\u724c\u5df2\u6253\u5f00 ITEM=\u9879 -Invalid_Selection=\u975E\u6CD5\u9009\u9879! -LoadSaleListDblClickTip= -OPDRAM=\u5F00\u59CB\u949E\u7BB1\u91D1\u989D: -OTHER=\u5176\u4ED6 -PAYFIN=\u6309\u5B8C\u6210\u952E\u7ED3\u675F\u9500\u552E -Processing=\u5904\u7406\u652F\u4ED8... -QTY=\u4EF6\u6570 -REFNUM=\u8F93\u5165\u6D41\u6C34\u53F7: +Invalid_Selection=\u975e\u6cd5\u9009\u9879! +OPDRAM=\u5f00\u59cb\u949e\u7bb1\u91d1\u989d: +OTHER=\u5176\u4ed6 +PAYFIN=\u6309\u5b8c\u6210\u952e\u7ed3\u675f\u9500\u552e +Processing=\u5904\u7406\u652f\u4ed8... +QTY=\u4ef6\u6570 +REFNUM=\u8f93\u5165\u6d41\u6c34\u53f7: SKU=SKU -Sales_Tax=\u9500\u552E\u7A0E -SaveASale= -Saving=\u4FDD\u5B58\u9500\u552E... -Shutting_down=\u5173\u95ED... -TOTAL=\u5408\u8BA1 -TOTALD=\u5408\u8BA1\u989D: -TXID=\u4EA4\u6613\u53F7 -ULOGIN=\u8F93\u5165\u7528\u6237 ID: -UPASSW=\u8F93\u5165\u53E3\u4EE4: -UserNotmanager=\u7528\u6237\u975E\u5408\u6CD5\u7BA1\u7406\u5458! -VOID=\u8F93\u5165\u8981\u4F5C\u5E9F\u7684\u8BA2\u5355\u53F7: -Validating=\u786E\u8BA4... -WaitingFinalSales=\u7B49\u5F85\u6700\u7EC8\u9500\u552E\u6570\u636E\u4F20\u8F93... -clerk=\u6536\u94F6\u5458: -draw=\u949E\u7BB1: -term=\u7EC8\u7AEF: -total_report=\u5408\u8BA1\u62A5\u8868 -(ItemDiscount)=(Item discount) -(SalesDiscount)=(Sales discount) \ No newline at end of file +Sales_Tax=\u9500\u552e\u7a0e +Saving=\u4fdd\u5b58\u9500\u552e... +Shutting_down=\u5173\u95ed... +TOTAL=\u5408\u8ba1 +TOTALD=\u5408\u8ba1\u989d: +TXID=\u4ea4\u6613\u53f7 +ULOGIN=\u8f93\u5165\u7528\u6237 ID: +UPASSW=\u8f93\u5165\u53e3\u4ee4: +UserNotmanager=\u7528\u6237\u975e\u5408\u6cd5\u7ba1\u7406\u5458! +VOID=\u8f93\u5165\u8981\u4f5c\u5e9f\u7684\u8ba2\u5355\u53f7: +Validating=\u786e\u8ba4... +WaitingFinalSales=\u7b49\u5f85\u6700\u7ec8\u9500\u552e\u6570\u636e\u4f20\u8f93... +clerk=\u6536\u94f6\u5458: +draw=\u949e\u7bb1: +term=\u7ec8\u7aef: +total_report=\u5408\u8ba1\u62a5\u8868 Modified: ofbiz/trunk/specialpurpose/pos/data/PosSecurityData.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/data/PosSecurityData.xml?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/data/PosSecurityData.xml (original) +++ ofbiz/trunk/specialpurpose/pos/data/PosSecurityData.xml Mon Dec 17 12:41:23 2007 @@ -35,4 +35,6 @@ <SecurityGroupPermission groupId="POSCLERK" permissionId="ACCOUNTING_CREATE"/> <SecurityGroupPermission groupId="POSCLERK" permissionId="ACCOUNTING_UPDATE"/> <SecurityGroupPermission groupId="POSCLERK" permissionId="ACCOUNTING_COMM_VIEW"/> + <SecurityGroupPermission groupId="POSCLERK" permissionId="ACCTG_ATX_CREATE"/> + <SecurityGroupPermission groupId="POSCLERK" permissionId="ACCTG_ATX_UPDATE"/> </entity-engine-xml> Added: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml?rev=604993&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml (added) +++ ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml Mon Dec 17 12:41:23 2007 @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<XPage class="net.xoetrope.swing.XDialog"> + <Components> + <Panel x="0" y="0" w="1280" h="1024" style="menu"> + <ScrollPane x="20" y="20" w="150" h="372"> + <List name="configList" x="0" y="0" w="200" h="400" style="editAndList"/> + </ScrollPane> + <!-- <Button name="BtnCancel" x="0" y="500" w="100" h="60" style="configureItemButtonRed" content="Cancel" alignment="Center"/> --> + <Button name="BtnOk" x="102" y="500" w="100" h="60" style="configureItemButtonGreen" content="Ok" alignment="Center"/> + <Button name="BtnReset" x="204" y="500" w="100" h="60" style="configureItemButtonRed" content="Reset" alignment="Center"/> + + <ScrollPane name="optionListPane" x="625" y="20" w="150" h="372"> + <List name="optionList" x="0" y="0" w="200" h="400" style="editAndList"/> + </ScrollPane> + <Button name="r1c1" x="204" y="20" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r1c2" x="306" y="20" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r1c3" x="408" y="20" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r1c4" x="510" y="20" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r2c1" x="204" y="100" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r2c2" x="306" y="100" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r2c3" x="408" y="100" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r2c4" x="510" y="100" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r3c1" x="204" y="180" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r3c2" x="306" y="180" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r3c3" x="408" y="180" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r3c4" x="510" y="180" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r4c1" x="204" y="260" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r4c2" x="306" y="260" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r4c3" x="408" y="260" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r4c4" x="510" y="260" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r5c1" x="204" y="340" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r5c2" x="306" y="340" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r5c3" x="408" y="340" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="r5c4" x="510" y="340" w="100" h="60" style="posButton" content="" alignment="Center"/> + </Panel> + </Components> +</XPage> Propchange: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/ConfigureItem.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml?rev=604993&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml (added) +++ ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml Mon Dec 17 12:41:23 2007 @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<XPage> + <Components> + <Panel name="errorPanel" x="0" y="0" w="400" h="200" style="errorpanel" border="0" alignment="Center"> + <Button w="400" h="200" name="closeBtn" style="error" content="item_not_configurable" alignment="Center"/> + </Panel> + </Components> +</XPage> Propchange: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/pos/screens/default/dialog/error/itemnotconfigurable.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/specialpurpose/pos/screens/default/menu/posmain.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/screens/default/menu/posmain.xml?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/screens/default/menu/posmain.xml (original) +++ ofbiz/trunk/specialpurpose/pos/screens/default/menu/posmain.xml Mon Dec 17 12:41:23 2007 @@ -24,7 +24,7 @@ <Button name="menuMain" x="102" y="0" w="100" h="60" style="posButton" content="MAIN" alignment="Center"/> <Button name="menuMgr" x="204" y="0" w="100" h="60" style="posButton" content="MGR" alignment="Center"/> <Button name="menuPromo" x="306" y="0" w="100" h="60" style="posButton" content="PROMO" alignment="Center"/> - <Button name="" x="408" y="0" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="menuConfigItem" x="408" y="0" w="100" h="60" style="posButton" content="CONFIG_ITEM" alignment="Center"/> <Button name="menuPay" x="510" y="0" w="100" h="60" style="posButton" content="PAY" alignment="Center"/> <!-- line 2 --> @@ -57,7 +57,7 @@ <Button name="SKU.GZ-8544" x="204" y="248" w="100" h="60" style="skuButtonGizmo" content="GZ-8544" alignment="Center"/> <Button name="SKU.GZ-9290" x="306" y="248" w="100" h="60" style="skuButtonGizmo" content="GZ-9290" alignment="Center"/> <Button name="SKU.WG-1111" x="408" y="248" w="100" h="60" style="skuButtonWidget" content="WG-1111" alignment="Center"/> - <Button name="" x="510" y="248" w="100" h="60" style="posButton" content="" alignment="Center"/> + <Button name="SKU.PC001" x="510" y="248" w="100" h="60" style="skuButtonConfigurableItem" content="CONFIG PC" alignment="Center"/> <!-- line 6 --> <!--Button name="testAlert" x="0" y="310" w="100" h="60" style="posButton" content="TEST ALERT" alignment="Center"/--> @@ -69,4 +69,4 @@ <Button name="" x="510" y="310" w="100" h="60" style="posButton" content="" alignment="Center"/> <!--Button name="testMsr" x="510" y="310" w="100" h="60" style="posButton" content="TEST MSR" alignment="Center"/--> </Components> -</XPage> \ No newline at end of file +</XPage> Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original) +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Mon Dec 17 12:41:23 2007 @@ -26,6 +26,8 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.ArrayList; +//import javax.swing.SwingWorker; import net.xoetrope.xui.data.XModel; import net.xoetrope.xui.helper.SwingWorker; @@ -57,6 +59,8 @@ import org.ofbiz.pos.screen.LoadSale; import org.ofbiz.pos.screen.PosScreen; import org.ofbiz.pos.screen.SaveSale; +import org.ofbiz.product.config.ProductConfigWrapper; +import org.ofbiz.product.config.ProductConfigWrapper.ConfigOption; import org.ofbiz.product.store.ProductStoreWorker; import org.ofbiz.service.GenericServiceException; import org.ofbiz.service.LocalDispatcher; @@ -237,6 +241,34 @@ return itemInfo; } + public List getItemConfigInfo(int index) { + List<Map> list = new ArrayList<Map>(); + // I think I need to initialize the list in a special way + // to use foreach in receipt.java + + ShoppingCartItem item = cart.findCartItem(index); + if(this.isAggregatedItem(item.getProductId())){ + ProductConfigWrapper pcw = null; + pcw = item.getConfigWrapper(); + List selected = pcw.getSelectedOptions(); + Iterator iter = selected.iterator(); + while(iter.hasNext()){ + ConfigOption configoption = (ConfigOption)iter.next(); + Map itemInfo = new HashMap(); + if (configoption.isSelected()){ + itemInfo.put("productId", ""); + itemInfo.put("sku", ""); + itemInfo.put("description", configoption.getDescription()); + itemInfo.put("quantity", UtilFormatOut.formatQuantity(item.getQuantity())); + itemInfo.put("basePrice", UtilFormatOut.formatPrice(configoption.getPrice())); + itemInfo.put("isTaxable", item.taxApplies() ? "T" : " "); + list.add(itemInfo); + } + } + } + return list; + } + public Map getPaymentInfo(int index) { ShoppingCart.CartPaymentInfo inf = cart.getPaymentInfo(index); GenericValue infValue = inf.getValueObject(session.getDelegator()); @@ -350,19 +382,134 @@ } } + public boolean isAggregatedItem(String productId){ + trace("is Aggregated Item", productId); + try { + GenericDelegator delegator = cart.getDelegator(); + GenericValue product = null; + product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId)); + if ("AGGREGATED".equals(product.getString("productTypeId"))) { + return true; + } + } catch (GenericEntityException e){ + trace("item lookup error", e); + Debug.logError(e, module); + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); + } + return false; + } + + public ProductConfigWrapper getProductConfigWrapper(String productId){ + //Get a PCW for a new product + trace("get Product Config Wrapper", productId); + ProductConfigWrapper pcw = null; + try { + GenericDelegator delegator = cart.getDelegator(); + pcw = new ProductConfigWrapper(delegator, session.getDispatcher(), + productId, null, null, null, null, null, null); + } catch (ItemNotFoundException e) { + trace("item not found", e); + //throw e; + } catch (CartItemModifyException e) { + trace("add item error", e); + //throw e; + }catch (GenericEntityException e){ + trace("item lookup error", e); + Debug.logError(e, module); + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); + } + return pcw; + } + + public ProductConfigWrapper getProductConfigWrapper(String productId, String cartIndex ){ + // Get a PCW for a pre-configured product + trace("get Product Config Wrapper", productId + "/" + cartIndex ); + ProductConfigWrapper pcw = null; + try { + int index = Integer.parseInt(cartIndex); + ShoppingCartItem product = cart.findCartItem(index); + GenericDelegator delegator = cart.getDelegator(); + pcw = product.getConfigWrapper(); + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); + } + return pcw; + } + public void addItem(String productId, double quantity) throws CartItemModifyException, ItemNotFoundException { trace("add item", productId + "/" + quantity); try { - cart.addOrIncreaseItem(productId, null, quantity, null, null, null, null, null, null, null, null, null, null, null, null, session.getDispatcher()); + GenericDelegator delegator = cart.getDelegator(); + GenericValue product = null; + ProductConfigWrapper pcw = null; + product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId)); + if ("AGGREGATED".equals(product.getString("productTypeId"))) { + // if it's an aggregated item, load the configwrapper and set to defaults + pcw = new ProductConfigWrapper(delegator, session.getDispatcher(), productId, null, null, null, null, null, null); + pcw.setDefaultConfig(); + } + //cart.addOrIncreaseItem(productId, null, quantity, null, null, null, null, null, null, null, null, null, null, null, null, session.getDispatcher()); + cart.addOrIncreaseItem(productId, null, quantity, null, null, null, null, null, null, null, null, pcw, null, null, null, session.getDispatcher()); } catch (ItemNotFoundException e) { trace("item not found", e); throw e; } catch (CartItemModifyException e) { trace("add item error", e); throw e; + }catch (GenericEntityException e){ + trace("item lookup error", e); + Debug.logError(e, module); + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); } } + public void addItem(String productId, ProductConfigWrapper pcw) + throws ItemNotFoundException, CartItemModifyException { + trace("add item with ProductConfigWrapper", productId ); + try { + cart.addOrIncreaseItem(productId, null, 1, null, null, null, null, null, null, null, null, pcw, null, null, null, session.getDispatcher()); + } catch (ItemNotFoundException e) { + trace("item not found", e); + throw e; + } catch (CartItemModifyException e) { + trace("add item error", e); + throw e; + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); + } + } + + public void modifyConfig(String productId, ProductConfigWrapper pcw, String cartIndex) + throws CartItemModifyException, ItemNotFoundException { + trace("modify item config", cartIndex ); + try { + int cartIndexInt = Integer.parseInt(cartIndex); + ShoppingCartItem cartItem = cart.findCartItem(cartIndexInt); + double quantity = cartItem.getQuantity(); + cart.removeCartItem(cartIndexInt, session.getDispatcher()); + cart.addOrIncreaseItem(productId, null, quantity, null, null, null, null, null, null, null, null, pcw, null, null, null, session.getDispatcher()); + } catch (CartItemModifyException e) { + Debug.logError(e, module); + trace("void or add item error", productId, e); + throw e; + } catch (ItemNotFoundException e) { + trace("item not found", e); + throw e; + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); + } + return; + } + public void modifyQty(String productId, double quantity) throws CartItemModifyException { trace("modify item quantity", productId + "/" + quantity); ShoppingCartItem item = cart.findCartItem(productId, null, null, null, 0.00); @@ -719,6 +866,28 @@ Journal.appendNode(line, "td", "qty", UtilFormatOut.formatQuantity(quantity)); Journal.appendNode(line, "td", "price", UtilFormatOut.formatPrice(subTotal)); Journal.appendNode(line, "td", "index", Integer.toString(cart.getItemIndex(item))); + + if (this.isAggregatedItem(item.getProductId())){ + // put alterations here + ProductConfigWrapper pcw = null; + // product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId)); + // pcw = new ProductConfigWrapper(delegator, session.getDispatcher(), productId, null, null, null, null, null, null); + pcw = item.getConfigWrapper(); + List selected = pcw.getSelectedOptions(); + Iterator iter = selected.iterator(); + while(iter.hasNext()){ + ConfigOption configoption = (ConfigOption)iter.next(); + if (configoption.isSelected()){ + XModel option = Journal.appendNode(model, "tr", "", ""); + Journal.appendNode(option, "td", "sku", ""); + Journal.appendNode(option, "td", "desc", configoption.getDescription()); + Journal.appendNode(option, "td", "qty", ""); + Journal.appendNode(option, "td", "price", UtilFormatOut.formatPrice(configoption.getPrice())); + Journal.appendNode(option, "td", "index", Integer.toString(cart.getItemIndex(item))); + } + } + } + if (adjustment != 0) { // append the promo info XModel promo = Journal.appendNode(model, "tr", "", ""); @@ -921,6 +1090,27 @@ pos.showDialog("dialog/error/nosales"); } } + +/* public void configureItem(String cartIndex, PosScreen pos) { + trace("configure item", cartIndex); + try { + int index = Integer.parseInt(cartIndex); + ShoppingCartItem product = cart.findCartItem(index); + GenericDelegator delegator = cart.getDelegator(); + ProductConfigWrapper pcw = null; + pcw = product.getConfigWrapper(); + if(pcw != null) { + ConfigureItem configItem = new ConfigureItem(cartIndex, pcw, this, pos); + configItem.openDlg(); + } + else { + pos.showDialog("dialog/error/itemnotconfigurable"); + } + } catch (Exception e){ + trace("general exception", e); + Debug.logError(e, module); + } + } */ public List createShoppingLists() { List shoppingLists = null; Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java (original) +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java Mon Dec 17 12:41:23 2007 @@ -27,6 +27,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.List; import jpos.JposException; import jpos.POSPrinter; @@ -70,7 +71,8 @@ protected int[] descLength = { 25, 25, 0 }; protected int[] pridLength = { 25, 25, 0 }; protected int[] infoLength = { 34, 34, 0 }; - + protected int[] configPaddingLength = { 2, 2, 2 }; + protected String[] configPadding = { " ", " ", " "}; protected PosTransaction lastTransaction = null; public Receipt(String deviceName, int timeout) { @@ -275,6 +277,17 @@ } } else if ("#dateFormat".equals(code[0])) { this.dateFmtStr[type] = code[1]; + } else if ("#configPadding.length".equals(code[0])) { + try { + this.configPaddingLength[type] = Integer.parseInt(code[1]); + StringBuffer spaces = new StringBuffer(); + for (int i=0; i < this.configPaddingLength[type]; i+=1){ + spaces.append(" "); + } + this.configPadding[type] = spaces.toString(); + } catch (NumberFormatException e) { + Debug.logWarning(e, module); + } } } else if (line.trim().startsWith("[BEGIN ITEM LOOP]")) { template[currentPart++] = buf.toString(); @@ -361,10 +374,44 @@ if (toPrint.indexOf("\n") > -1) { String[] lines = toPrint.split("\\n"); for (int x = 0; x < lines.length; x++) { - this.println(lines[x]); + String trimmed = lines[x].trim(); + if(trimmed.length()>1){ // if empty string don't println + this.println(lines[x]); + } } } else { this.println(toPrint); + } + + if(trans.isAggregatedItem(((String)expandMap.get("productId")).trim())){ + List<Map> maps = trans.getItemConfigInfo(i); + for (Map map: maps){ + expandMap = this.makeCodeExpandMap(trans, type); + expandMap.putAll(map); + // adjust the padding + expandMap.put("description", + UtilFormatOut.padString(this.configPadding[type] + + (String) expandMap.get("description"), descLength[type], true, ' ')); + expandMap.put("productId", UtilFormatOut.padString((String) expandMap.get("productId"), pridLength[type], true, ' ')); + //expandMap.put("basePrice", UtilFormatOut.padString((String) expandMap.get("basePrice"), priceLength[type], false, ' ')); + expandMap.put("basePrice", UtilFormatOut.padString((String) " ", priceLength[type], false, ' ')); + expandMap.put("subtotal", UtilFormatOut.padString((String) expandMap.get("subtotal"), priceLength[type], false, ' ')); + //expandMap.put("quantity", UtilFormatOut.padString((String) expandMap.get("quantity"), qtyLength[type], false, ' ')); + expandMap.put("quantity", UtilFormatOut.padString((String) " ", qtyLength[type], false, ' ')); + expandMap.put("isTaxable", UtilFormatOut.padString((String) " ", priceLength[type], false, ' ')); + toPrint = FlexibleStringExpander.expandString(loopStr, expandMap); + if (toPrint.indexOf("\n") > -1) { + String[] lines = toPrint.split("\\n"); + for (int x = 0; x < lines.length; x++) { + String trimmed = lines[x].trim(); + if(trimmed.length()>1){ + this.println(lines[x]); + } + } + } else { + this.println(toPrint); + } + } } } } Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/event/MenuEvents.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/event/MenuEvents.java?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/event/MenuEvents.java (original) +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/event/MenuEvents.java Mon Dec 17 12:41:23 2007 @@ -35,6 +35,8 @@ import org.ofbiz.pos.screen.SelectProduct; import org.ofbiz.pos.screen.PosScreen; import org.ofbiz.entity.GenericValue; +import org.ofbiz.pos.screen.ConfigureItem; +import org.ofbiz.product.config.ProductConfigWrapper; public class MenuEvents { @@ -178,10 +180,31 @@ pos.showDialog("dialog/error/producterror"); } + // Check for Aggregated item + boolean aggregatedItem = false; + ProductConfigWrapper pcw = null; + try { + aggregatedItem = trans.isAggregatedItem(productId); + if(aggregatedItem){ + pcw = trans.getProductConfigWrapper(productId); + pcw.setDefaultConfig(); + ConfigureItem configureItem = new ConfigureItem(pcw, trans, pos); + pcw = configureItem.openDlg(); + configureItem = null; + } + }catch(Exception e){ + Debug.logError(e, module); + pos.showDialog("dialog/error/producterror"); + } + // add the item to the cart; report any errors to the user if (productId != null) { try { - trans.addItem(productId, quantity); + if(!aggregatedItem){ + trans.addItem(productId, quantity); + }else{ + trans.addItem(productId, pcw); + } } catch (CartItemModifyException e) { Debug.logError(e, module); pos.showDialog("dialog/error/producterror"); @@ -387,4 +410,37 @@ Journal journal = pos.getJournal(); return journal.getSelectedSku(); } + + public static void configureItem(PosScreen pos) { + PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession()); + Journal journal = pos.getJournal(); + String index = journal.getSelectedIdx(); + String productId = journal.getSelectedSku(); + //trans.configureItem(index, pos); + + boolean aggregatedItem = false; + ProductConfigWrapper pcw = null; + try { + aggregatedItem = trans.isAggregatedItem(productId); + if(aggregatedItem){ + pcw = trans.getProductConfigWrapper(productId, index); + ConfigureItem configureItem = new ConfigureItem(pcw, trans, pos); + pcw = configureItem.openDlg(); + configureItem = null; + trans.modifyConfig(productId, pcw, index); + }else{ + pos.showDialog("dialog/error/itemnotconfigurable"); + } + }catch(Exception e){ + Debug.logError(e, module); + pos.showDialog("dialog/error/producterror"); + } + + trans.calcTax(); + pos.refresh(); + + return; + } + + } Added: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java?rev=604993&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java (added) +++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java Mon Dec 17 12:41:23 2007 @@ -0,0 +1,433 @@ +/******************************************************************************* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + *******************************************************************************/ +package org.ofbiz.pos.screen; + +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.ArrayList; +import java.util.EventObject; +import javax.swing.DefaultListModel; +import javax.swing.JList; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionListener; +import javax.swing.event.ListSelectionEvent; + +import net.xoetrope.swing.XButton; +import net.xoetrope.swing.XDialog; +import net.xoetrope.swing.XList; +import net.xoetrope.swing.XScrollPane; +import net.xoetrope.xui.XPage; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilProperties; +import org.ofbiz.entity.GenericValue; +import org.ofbiz.pos.PosTransaction; +import org.ofbiz.product.config.ProductConfigWrapper; +import org.ofbiz.product.config.ProductConfigWrapper.ConfigItem; +import org.ofbiz.product.config.ProductConfigWrapper.ConfigOption; + + +public class ConfigureItem extends XPage { + + /** + * To create or configure a configurable item + */ + public static final String module = ConfigureItem.class.getName(); + protected PosScreen m_pos = null; + protected ConfigureItem m_configureItem = null; + protected XDialog m_dialog = null; + protected XList m_configList = null; + protected XList m_optionList = null; + protected XButton m_ok = null; + protected XButton m_reset = null; + protected XScrollPane m_optionListPane = null; + protected PosTransaction m_trans = null; + protected static final String buttonArray[][] = { + { "r1c1", "r1c2", "r1c3", "r1c4" }, + { "r2c1", "r2c2", "r2c3", "r2c4" }, + { "r3c1", "r3c2", "r3c3", "r3c4" }, + { "r4c1", "r4c2", "r4c3", "r4c4" } + }; + protected ProductConfigWrapper m_pcw = null; + protected ArrayList m_buttonList = null; + protected Hashtable questionHashMap = null; + + public ConfigureItem(ProductConfigWrapper pcw, PosTransaction trans, PosScreen page) { + m_pcw = pcw; + m_trans = trans; + m_pos = page; + m_configureItem = this; + } + + public ProductConfigWrapper openDlg() { + // cache must be set to false because there's no method to remove actionhandlers + m_dialog = (XDialog) pageMgr.loadPage( + m_pos.getScreenLocation() + "/dialog/ConfigureItem", false); + //TODO: change caption + m_dialog.setCaption(UtilProperties.getMessage("pos", "ConfigureItem", Locale.getDefault())); + + m_optionListPane = (XScrollPane) m_dialog.findComponent("optionListPane"); + m_configList = (XList) m_dialog.findComponent("configList"); + m_optionList = (XList) m_dialog.findComponent("optionList"); + m_ok = (XButton) m_dialog.findComponent("BtnOk"); + m_reset = (XButton) m_dialog.findComponent("BtnReset"); + + addMouseHandler(m_ok, "ok"); + addMouseHandler(m_reset, "reset"); + + getButtons(); + //debugQuestions(); + showItem(); + displayQuestions(); + m_dialog.pack(); + m_dialog.showDialog(this); + + return m_pcw; + } + + public synchronized void ok() { + if (wasMouseClicked()) { + closeDlg(); + } + } + + public synchronized void reset() { + if (wasMouseClicked()) { + m_pcw.setDefaultConfig(); + resetButtons(); + showItem(); + m_dialog.repaint(); + } + } + + public synchronized void buttonPressed() { + EventObject eo = getCurrentEvent(); + XButton button = (XButton) eo.getSource(); + Question question = (Question)questionHashMap.get(button.getName()); + question.buttonClicked(); + showItem(); + m_dialog.repaint(); + return; + } + + public synchronized void listPressed() { + EventObject eo = getCurrentEvent(); + showItem(); + m_dialog.repaint(); + return; + } + + + private void closeDlg() { + m_dialog.closeDlg(); + } + + private void resetButtons(){ + Object[] questions = questionHashMap.values().toArray(); + for(Object question : questions){ + ((Question)question).reset(); + } + return; + } + + private void showItem(){ + DefaultListModel listModel = null; + listModel = new DefaultListModel(); + + GenericValue gv = m_pcw.getProduct(); + listModel.addElement(gv.get("description")); + + List questions = m_pcw.getQuestions(); + if(questions==null) ; // no questions, we shouldn't be here + else{ + Iterator iter = questions.iterator(); + while(iter.hasNext()){ + ConfigItem question = (ConfigItem)iter.next(); + List options = question.getOptions(); + Iterator itero = options.iterator(); + while(itero.hasNext()){ + ConfigOption configoption = (ConfigOption)itero.next(); + if (configoption.isSelected()){ + listModel.addElement(" "+configoption.getDescription()); + } + } + } + } + m_configList.setModel(listModel); + return; + } + + private void displayQuestions(){ + + QuestionFactory qf = new QuestionFactory(); + questionHashMap = new Hashtable(); + + List questions = m_pcw.getQuestions(); + if(questions==null) ; // no questions, we shouldn't be here + else{ + Iterator iter = questions.iterator(); + Iterator buttons = m_buttonList.iterator(); + while(iter.hasNext()){ + Question buttonQuestion = qf.get((ConfigItem)iter.next()); + XButton button = (XButton)buttons.next(); + questionHashMap.put(button.getName(), buttonQuestion ); + buttonQuestion.setupButton(button); + if(buttonQuestion instanceof ListQuestion){ + ((ListQuestion)buttonQuestion).setupListPane(m_optionListPane); + } + addActionHandler(button, "buttonPressed"); + } + } + return; + } + + private void getButtons(){ + ArrayList buttonList = new ArrayList(); + for(String[] buttonSingleArray : buttonArray ){ + for(String buttonName : buttonSingleArray){ + //Debug.logInfo("ButtonName: "+buttonName, module); + XButton button = (XButton) m_dialog.findComponent(buttonName); + buttonList.add(button); + } + } + m_buttonList = buttonList; + } + + private void debugQuestions(){ + //Debug.logInfo("debugQuestions",module); + GenericValue gv = m_pcw.getProduct(); + + //Debug.logInfo("Product: " +gv.get("description"), module); + + List questions = m_pcw.getQuestions(); + if(questions==null) return; // no questions, return + + Iterator iter = questions.iterator(); + while(iter.hasNext()){ + ConfigItem question = (ConfigItem)iter.next(); + /*Debug.logInfo("Question: " + question.getQuestion(), module); + Debug.logInfo("IsFirst: "+question.isFirst()+ + ", IsMandatory: "+question.isMandatory()+ + ", IsSelected: "+question.isSelected()+ + ", IsSingleChoice: "+question.isSingleChoice()+ + ", IsStandard: "+question.isStandard(), module);*/ + + List options = question.getOptions(); + Iterator itero = options.iterator(); + + while(itero.hasNext()){ + ConfigOption configoption = (ConfigOption)itero.next(); + /*Debug.logInfo("Found option " + configoption.getDescription(), module); + Debug.logInfo("IsAvailable: "+configoption.isAvailable()+ + ", IsSelected: "+configoption.isSelected(), module);*/ + //configoption.getComponents() + } + } + } + + /* + * What are the Question types? + Must choose one - isMandatory & isSingleChoice + May choose one - !isMandatory & isSingleChoice + May choose one or more - !isMandatory & !isSingleChoice + Must choose one or more - isMandatory & !isSingleChoice + For !isMandatory, include way to select none + + * SingleChoice with one option can be a button. (Can't be mandatory) + Example: decaf + SingleChoice with multiple options can be a group of buttons or a list. + Example: temperature (extra hot, warm, cold) + Not SingleChoice with multiple options can be a group of buttons or a list + Example: flavor (vanilla and chocolate) + Can I specify multiple of an item? 4 shots of espresso? + Could do as a list? Example: Extra shots -> single, double, etc. + + What is isStandard? Maybe I can key off IsStandard for using buttons, others get a list. + + */ + + protected class QuestionFactory{ + + public Question get(ConfigItem question){ + + List options = question.getOptions(); + if(question.isSingleChoice()){ + if(options.size()>2){ + return new ListButtonQuestion(question); + }else{ + //TODO: this doesn't handle the case of + // two options with none required to be selected + return new SingleButtonQuestion(question); + } + } + else{ + return new ListButtonQuestion(question); + } + } + } + + protected interface Question{ + public void setupButton(XButton button); + //public void setupList(XList list); + public void buttonClicked(); + public void reset(); + } + + protected interface ListQuestion{ + public void setupListPane(XScrollPane m_optionListPane); + } + + protected class SingleButtonQuestion implements Question{ + private XButton button = null; + private ConfigItem question = null; + private int showOption = 0; + + public SingleButtonQuestion(ConfigItem question){ + this.question = question; + return; + } + + public void setupButton(XButton button){ + this.button = button; + List options = question.getOptions(); + if(question.isSelected()){ + ConfigOption selectedOption = question.getSelected(); + showOption = options.indexOf(selectedOption); + } + ConfigOption configoption = (ConfigOption)options.get(showOption); + button.setText(configoption.getDescription()); + return; + } + + /*public void setupListPane(XScrollPane m_optionListPane){ + return; + } */ + + public void buttonClicked(){ + //only two choices, if the button is clicked, toggle + List options = question.getOptions(); + ConfigOption unselectedoption = (ConfigOption)options.get(showOption); + unselectedoption.setSelected(false); + showOption = (showOption+1)%2; + ConfigOption selectedoption = (ConfigOption)options.get(showOption); + selectedoption.setSelected(true); + button.setText(selectedoption.getDescription()); + return; + } + + public void reset(){ + showOption = 0; + List options = question.getOptions(); + if(question.isSelected()){ + ConfigOption selectedOption = question.getSelected(); + showOption = options.indexOf(selectedOption); + } + ConfigOption configoption = (ConfigOption)options.get(showOption); + button.setText(configoption.getDescription()); + return; + } + } + + protected class ListButtonQuestion implements Question, ListQuestion{ + private XButton button = null; + private XScrollPane scrollpane = null; + private ConfigItem question = null; + + public ListButtonQuestion(ConfigItem question){ + this.question = question; + return; + } + + public void setupButton(XButton button){ + this.button = button; + int showOption = 0; + button.setText(question.getQuestion()); + return; + } + + public void setupListPane(XScrollPane m_optionListPane){ + scrollpane = m_optionListPane; + return; + } + + public void buttonClicked(){ + Iterator options = question.getOptions().iterator(); + + DefaultListModel listModel = new DefaultListModel(); + + while(options.hasNext()){ + ConfigOption configoption = (ConfigOption)options.next(); + listModel.addElement(configoption.getDescription()); + //Debug.logInfo("Found option " + configoption.getDescription(), module); + //Debug.logInfo("IsAvailable: "+configoption.isAvailable()+ + // ", IsSelected: "+configoption.isSelected(), module); + } + + //Create the list and put it in a scroll pane. + JList list = new JList(listModel); + list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + LBQSelectionHandler selectionHandler = new LBQSelectionHandler(); + selectionHandler.setQuestion(question); + list.addListSelectionListener(selectionHandler); + + scrollpane.add(list); + return; + } + + public void reset(){ + return; + } + } + + protected class LBQSelectionHandler implements ListSelectionListener { + private ConfigItem question = null; + + public void setQuestion(ConfigItem question){ + this.question = question; + } + + public void valueChanged(ListSelectionEvent event) { + try{ + JList jlist = (JList)event.getSource(); + boolean isAdjusting = event.getValueIsAdjusting(); + if(!isAdjusting){ + int[] selected = jlist.getSelectedIndices(); + //for(int i: selected){ + // Debug.logInfo(""+i, module); + //} + List<ConfigOption> options = (List<ConfigOption>)question.getOptions(); + for (ConfigOption option: options){ + option.setSelected(false); + } + for(int i: selected){ + ConfigOption option = options.get(i); + option.setSelected(true); + } + m_configureItem.listPressed(); + } + } + catch(Exception ex){ + Debug.logInfo(ex.getMessage(), module); + ex.printStackTrace(); + } + } + } +} Propchange: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/screen/ConfigureItem.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/specialpurpose/pos/styles/posstyles.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/styles/posstyles.xml?rev=604993&r1=604992&r2=604993&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/pos/styles/posstyles.xml (original) +++ ofbiz/trunk/specialpurpose/pos/styles/posstyles.xml Mon Dec 17 12:41:23 2007 @@ -157,6 +157,15 @@ <font_weight value="1"/> <font_italic value="0"/> </style> + <style name="skuButtonConfigurableItem"> + <color_back value="daa520"/> + <color_fore value="000000"/> + <font_face value="verdana"/> + <font_size value="14"/> + <font_weight value="1"/> + <font_italic value="0"/> + </style> + <!-- embedded POS [menu] button styles (required but can be customized) --> <style name="posButton"> |
Free forum by Nabble | Edit this page |