diff --git a/pdfexcel4DNwithxlrd.py b/pdfexcel4DNwithxlrd.py index 4e8b887..9063fff 100644 --- a/pdfexcel4DNwithxlrd.py +++ b/pdfexcel4DNwithxlrd.py @@ -86,15 +86,30 @@ def read_DN_excel(filename): # TxnDate = rawdata[2][3].strip().split(" ")[-1] _y=1 _x=0 + BRANCH = None + BRANCH_LIST = ['SBY', 'BGR', 'CRB'] + BRANCH_ADDRESS = ['BUDURAN', 'CIBINONG', 'CARUBAN'] + col_value=None for col in range(1,wb.sheets()[0].ncols): col_value = wb.sheets()[0].col_values(col) - print("col=",col, col_value[1]) + print(f"{col=} {col_value=} {col_value[1]=}") if "TCO-DN" in col_value[1]: _x=col + break if _x == 0 : return False, "Cannot find TCO-DN cell" - + branchindex = None + for idx, branchadd in enumerate(BRANCH_ADDRESS): + for cvalu in col_value: + if branchadd in cvalu: + branchindex = idx + break + if branchindex!=None: + break + if branchindex != None: + BRANCH = BRANCH_LIST[branchindex] + print(f'{branchindex = } {BRANCH = }') # if "TCO-DN" in wb.sheets()[0].cell(_y, _x).value.strip(): @@ -104,8 +119,8 @@ def read_DN_excel(filename): # print(DNRefNum) TxnDate = wb.sheets()[0].cell(_y+1, _x).value.strip().split(" ")[-1] Memo = DNRefNum - print(f'pdfexcel4DNwithxlrd.py->DNRefNum:{DNRefNum}, TxnDate:{TxnDate}') - DeliveryNotedict={'DNRefNum':DNRefNum, 'TxnDate':TxnDate, 'Memo': Memo} + print(f'pdfexcel4DNwithxlrd.py->DNRefNum:{DNRefNum}, TxnDate:{TxnDate} {BRANCH = }') + DeliveryNotedict={'DNRefNum':DNRefNum, 'TxnDate':TxnDate, 'Memo': Memo, 'BRANCH':BRANCH} wks=wb.sheets() for sheet in wks: # rawdata=ws.range("c1").current_region.value diff --git a/qbpurchaseorderquery.py b/qbpurchaseorderquery.py index 1f1c949..b70c392 100644 --- a/qbpurchaseorderquery.py +++ b/qbpurchaseorderquery.py @@ -100,25 +100,44 @@ class PurchaseOrderQuery: TxnDate = self.create_sub_element(ET, ItemReceiptAdd, "TxnDate", self.DN['TxnDate'], 8 ) RefNumber = self.create_sub_element(ET, ItemReceiptAdd, "RefNumber", self.DN['DNRefNum'], 8 ) Memo = self.create_sub_element(ET, ItemReceiptAdd, "Memo", self.DN['Memo'], 10 ) + DNTotalAmount = 0 for purchaseorder in self.PurchaseOrderList: POTxnId = purchaseorder['TxnID'] print(f'create_itemreceiptadd_QBXML->POTxnID: {POTxnId}') for itemline in purchaseorder['PurchaseOrderLineRet']: if 'DNQuantity' in itemline: + DNQty = itemline['DNQuantity'] + Rate = itemline['Rate'] + DNAmount = DNQty*Rate + DNTotalAmount += DNAmount ItemLineAdd = self.create_sub_element(ET, ItemReceiptAdd, "ItemLineAdd", "\n ", 10 ) - Quantity = self.create_sub_element(ET, ItemLineAdd, "Quantity", str(itemline['DNQuantity'] ), 12 ) + Quantity = self.create_sub_element(ET, ItemLineAdd, "Quantity", str(DNQty), 12 ) UnitOfMeasure = self.create_sub_element(ET, ItemLineAdd, "UnitOfMeasure", str(itemline['UOM']), 12 ) LinkToTxn = self.create_sub_element(ET, ItemLineAdd, "LinkToTxn", "\n ",10 ) TxnID = self.create_sub_element(ET, LinkToTxn, "TxnID", POTxnId,14 ) TxnLineID = self.create_sub_element(ET, LinkToTxn, "TxnLineID", itemline['TxnLineID'],12 ) + + PPN11percent = round(0.11*DNTotalAmount ,2) + if self.DN['BRANCH']!=None and self.DN['BRANCH']!='BGR' and DNTotalAmount: + ItemLineAdd = self.create_sub_element(ET, ItemReceiptAdd, "ItemLineAdd", "\n ", 10 ) + ItemRef = self.create_sub_element(ET, ItemLineAdd, "ItemRef", "\n ", 12 ) + ItemRef = self.create_sub_element(ET, ItemRef, "FullName", "PPN Masukan", 14 ) + # Quantity = self.create_sub_element(ET, ItemLineAdd, "Quantity", "1", 12 ) + Quantity = self.create_sub_element(ET, ItemLineAdd, "Cost", str(PPN11percent), 12 ) + # Quantity = self.create_sub_element(ET, ItemLineAdd, "Quantity", str(DNQty), 12 ) + # UnitOfMeasure = self.create_sub_element(ET, ItemLineAdd, "UnitOfMeasure", str(itemline['UOM']), 12 ) + # LinkToTxn = self.create_sub_element(ET, ItemLineAdd, "LinkToTxn", "\n ",10 ) + # TxnID = self.create_sub_element(ET, LinkToTxn, "TxnID", POTxnId,14 ) + # TxnLineID = self.create_sub_element(ET, LinkToTxn, "TxnLineID", itemline['TxnLineID'],12 ) + mydata = ET.tostring(root, encoding = "unicode") qbxml_query = """\n""" qbxml_query = qbxml_query + """""" qbxml_query = qbxml_query + "\n" + mydata - # print(f'create_itemreceiptadd_QBXML->Create_ItemReceiptadd_QBXML: {qbxml_query}') + print(f'create_itemreceiptadd_QBXML->Create_ItemReceiptadd_QBXML: {qbxml_query}') # print(f"replyfrom qbxml:{self.connect_to_quickbooks(qbxml_query)}") - + print(f'{self.DN["BRANCH"]= } {DNTotalAmount= :_} {PPN11percent= :_} {DNTotalAmount+PPN11percent= :_}') return qbxml_query @@ -273,7 +292,7 @@ class PurchaseOrderQuery: break else: print(f"{_poline['ItemFullName']} BackOrdered < Qty in DN {_poline['BackOrdered']}<{QuantityIn_dict}") - Error_msg = f"BackOrdered < Qty in DN {_poline['BackOrdered']}<{QuantityIn_dict}" + Error_msg = f"BackOrdered < Qty in DN {_poline['BackOrdered']=}<{QuantityIn_dict=}" else: # print(f"UOM different {_poline['UOM']} <> {_dict['UOM']}") Error_msg = f"UOM different {_poline['UOM']} <> {_dict['UOM']}" @@ -306,7 +325,7 @@ class PurchaseOrderQuery: else: _dflist = self.dfDN.to_dict('records') # print(self.dfDN) - print(f'_dflist1:{_dflist}') + print(f'{_dflist = }') # print("") # print(f'self.PurchaseOrderList: {self.PurchaseOrderList}') for idx, xdf in enumerate(_dflist): @@ -341,6 +360,7 @@ class PurchaseOrderQuery: # raise ValueError("Incorrect data format, should be YYYY-MM-DD") def get_ext_doc_no_list(self, dndict=None): + # print(f'{dndict = }') if dndict: dnlist = dndict['lines'] else: