mirror of
https://github.com/bcomsugi/Quickbooks-API.git
synced 2026-01-09 17:52:38 +07:00
start doing data smotthing addso.py
This commit is contained in:
parent
118ceb824d
commit
a23432157f
935
QBClasses.py
935
QBClasses.py
File diff suppressed because it is too large
Load Diff
435
SalesOrderAdd.xml
Normal file
435
SalesOrderAdd.xml
Normal file
@ -0,0 +1,435 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<?qbxml version="16.0"?>
|
||||||
|
<QBXML>
|
||||||
|
<QBXMLMsgsRq onError="stopOnError">
|
||||||
|
<SalesOrderAddRq>
|
||||||
|
<SalesOrderAdd defMacro="MACROTYPE"> <!-- required -->
|
||||||
|
<CustomerRef> <!-- required -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CustomerRef>
|
||||||
|
<ClassRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ClassRef>
|
||||||
|
<TemplateRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</TemplateRef>
|
||||||
|
<TxnDate >DATETYPE</TxnDate> <!-- optional -->
|
||||||
|
<RefNumber >STRTYPE</RefNumber> <!-- optional -->
|
||||||
|
<BillAddress> <!-- optional -->
|
||||||
|
<Addr1 >STRTYPE</Addr1> <!-- optional -->
|
||||||
|
<Addr2 >STRTYPE</Addr2> <!-- optional -->
|
||||||
|
<Addr3 >STRTYPE</Addr3> <!-- optional -->
|
||||||
|
<Addr4 >STRTYPE</Addr4> <!-- optional -->
|
||||||
|
<Addr5 >STRTYPE</Addr5> <!-- optional -->
|
||||||
|
<City >STRTYPE</City> <!-- optional -->
|
||||||
|
<State >STRTYPE</State> <!-- optional -->
|
||||||
|
<PostalCode >STRTYPE</PostalCode> <!-- optional -->
|
||||||
|
<Country >STRTYPE</Country> <!-- optional -->
|
||||||
|
<Note >STRTYPE</Note> <!-- optional -->
|
||||||
|
</BillAddress>
|
||||||
|
<ShipAddress> <!-- optional -->
|
||||||
|
<Addr1 >STRTYPE</Addr1> <!-- optional -->
|
||||||
|
<Addr2 >STRTYPE</Addr2> <!-- optional -->
|
||||||
|
<Addr3 >STRTYPE</Addr3> <!-- optional -->
|
||||||
|
<Addr4 >STRTYPE</Addr4> <!-- optional -->
|
||||||
|
<Addr5 >STRTYPE</Addr5> <!-- optional -->
|
||||||
|
<City >STRTYPE</City> <!-- optional -->
|
||||||
|
<State >STRTYPE</State> <!-- optional -->
|
||||||
|
<PostalCode >STRTYPE</PostalCode> <!-- optional -->
|
||||||
|
<Country >STRTYPE</Country> <!-- optional -->
|
||||||
|
<Note >STRTYPE</Note> <!-- optional -->
|
||||||
|
</ShipAddress>
|
||||||
|
<PONumber >STRTYPE</PONumber> <!-- optional -->
|
||||||
|
<TermsRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</TermsRef>
|
||||||
|
<DueDate >DATETYPE</DueDate> <!-- optional -->
|
||||||
|
<SalesRepRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</SalesRepRef>
|
||||||
|
<FOB >STRTYPE</FOB> <!-- optional -->
|
||||||
|
<ShipDate >DATETYPE</ShipDate> <!-- optional -->
|
||||||
|
<ShipMethodRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ShipMethodRef>
|
||||||
|
<ItemSalesTaxRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemSalesTaxRef>
|
||||||
|
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
|
||||||
|
<Memo >STRTYPE</Memo> <!-- optional -->
|
||||||
|
<CustomerMsgRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CustomerMsgRef>
|
||||||
|
<IsToBePrinted >BOOLTYPE</IsToBePrinted> <!-- optional -->
|
||||||
|
<IsToBeEmailed >BOOLTYPE</IsToBeEmailed> <!-- optional -->
|
||||||
|
<IsTaxIncluded >BOOLTYPE</IsTaxIncluded> <!-- optional -->
|
||||||
|
<CustomerSalesTaxCodeRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CustomerSalesTaxCodeRef>
|
||||||
|
<Other >STRTYPE</Other> <!-- optional -->
|
||||||
|
<ExchangeRate >FLOATTYPE</ExchangeRate> <!-- optional -->
|
||||||
|
<ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<SalesOrderLineAdd> <!-- optional -->
|
||||||
|
<ItemRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemRef>
|
||||||
|
<Desc >STRTYPE</Desc> <!-- optional -->
|
||||||
|
<Quantity >QUANTYPE</Quantity> <!-- optional -->
|
||||||
|
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<Rate >PRICETYPE</Rate> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<PriceLevelRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</PriceLevelRef>
|
||||||
|
<!-- END OR -->
|
||||||
|
<ClassRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ClassRef>
|
||||||
|
<Amount >AMTTYPE</Amount> <!-- optional -->
|
||||||
|
<!-- OptionForPriceRuleConflict may have one of the following values: Zero, BasePrice -->
|
||||||
|
<OptionForPriceRuleConflict >ENUMTYPE</OptionForPriceRuleConflict> <!-- optional -->
|
||||||
|
<InventorySiteRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteRef>
|
||||||
|
<InventorySiteLocationRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteLocationRef>
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
<SalesTaxCodeRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</SalesTaxCodeRef>
|
||||||
|
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
|
||||||
|
<Other1 >STRTYPE</Other1> <!-- optional -->
|
||||||
|
<Other2 >STRTYPE</Other2> <!-- optional -->
|
||||||
|
<DataExt> <!-- optional, may repeat -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- required -->
|
||||||
|
<DataExtName >STRTYPE</DataExtName> <!-- required -->
|
||||||
|
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
|
||||||
|
</DataExt>
|
||||||
|
</SalesOrderLineAdd>
|
||||||
|
<!-- OR -->
|
||||||
|
<SalesOrderLineGroupAdd> <!-- optional -->
|
||||||
|
<ItemGroupRef> <!-- required -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemGroupRef>
|
||||||
|
<Quantity >QUANTYPE</Quantity> <!-- optional -->
|
||||||
|
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
|
||||||
|
<InventorySiteRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteRef>
|
||||||
|
<InventorySiteLocationRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteLocationRef>
|
||||||
|
<DataExt> <!-- optional, may repeat -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- required -->
|
||||||
|
<DataExtName >STRTYPE</DataExtName> <!-- required -->
|
||||||
|
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
|
||||||
|
</DataExt>
|
||||||
|
</SalesOrderLineGroupAdd>
|
||||||
|
<SOChannel>ENUMTYPE</SOChannel> <!-- optional -->
|
||||||
|
<StoreName>STRTYPE</StoreName> <!-- optional -->
|
||||||
|
<StoreType>STRTYPE</StoreType> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
</SalesOrderAdd>
|
||||||
|
<IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat -->
|
||||||
|
</SalesOrderAddRq>
|
||||||
|
|
||||||
|
<SalesOrderAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
|
||||||
|
<SalesOrderRet> <!-- optional -->
|
||||||
|
<TxnID >IDTYPE</TxnID> <!-- required -->
|
||||||
|
<TimeCreated >DATETIMETYPE</TimeCreated> <!-- required -->
|
||||||
|
<TimeModified >DATETIMETYPE</TimeModified> <!-- required -->
|
||||||
|
<EditSequence >STRTYPE</EditSequence> <!-- required -->
|
||||||
|
<TxnNumber >INTTYPE</TxnNumber> <!-- optional -->
|
||||||
|
<CustomerRef> <!-- required -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CustomerRef>
|
||||||
|
<ClassRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ClassRef>
|
||||||
|
<TemplateRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</TemplateRef>
|
||||||
|
<TxnDate >DATETYPE</TxnDate> <!-- required -->
|
||||||
|
<RefNumber >STRTYPE</RefNumber> <!-- optional -->
|
||||||
|
<BillAddress> <!-- optional -->
|
||||||
|
<Addr1 >STRTYPE</Addr1> <!-- optional -->
|
||||||
|
<Addr2 >STRTYPE</Addr2> <!-- optional -->
|
||||||
|
<Addr3 >STRTYPE</Addr3> <!-- optional -->
|
||||||
|
<Addr4 >STRTYPE</Addr4> <!-- optional -->
|
||||||
|
<Addr5 >STRTYPE</Addr5> <!-- optional -->
|
||||||
|
<City >STRTYPE</City> <!-- optional -->
|
||||||
|
<State >STRTYPE</State> <!-- optional -->
|
||||||
|
<PostalCode >STRTYPE</PostalCode> <!-- optional -->
|
||||||
|
<Country >STRTYPE</Country> <!-- optional -->
|
||||||
|
<Note >STRTYPE</Note> <!-- optional -->
|
||||||
|
</BillAddress>
|
||||||
|
<BillAddressBlock> <!-- optional -->
|
||||||
|
<Addr1 >STRTYPE</Addr1> <!-- optional -->
|
||||||
|
<Addr2 >STRTYPE</Addr2> <!-- optional -->
|
||||||
|
<Addr3 >STRTYPE</Addr3> <!-- optional -->
|
||||||
|
<Addr4 >STRTYPE</Addr4> <!-- optional -->
|
||||||
|
<Addr5 >STRTYPE</Addr5> <!-- optional -->
|
||||||
|
</BillAddressBlock>
|
||||||
|
<ShipAddress> <!-- optional -->
|
||||||
|
<Addr1 >STRTYPE</Addr1> <!-- optional -->
|
||||||
|
<Addr2 >STRTYPE</Addr2> <!-- optional -->
|
||||||
|
<Addr3 >STRTYPE</Addr3> <!-- optional -->
|
||||||
|
<Addr4 >STRTYPE</Addr4> <!-- optional -->
|
||||||
|
<Addr5 >STRTYPE</Addr5> <!-- optional -->
|
||||||
|
<City >STRTYPE</City> <!-- optional -->
|
||||||
|
<State >STRTYPE</State> <!-- optional -->
|
||||||
|
<PostalCode >STRTYPE</PostalCode> <!-- optional -->
|
||||||
|
<Country >STRTYPE</Country> <!-- optional -->
|
||||||
|
<Note >STRTYPE</Note> <!-- optional -->
|
||||||
|
</ShipAddress>
|
||||||
|
<ShipAddressBlock> <!-- optional -->
|
||||||
|
<Addr1 >STRTYPE</Addr1> <!-- optional -->
|
||||||
|
<Addr2 >STRTYPE</Addr2> <!-- optional -->
|
||||||
|
<Addr3 >STRTYPE</Addr3> <!-- optional -->
|
||||||
|
<Addr4 >STRTYPE</Addr4> <!-- optional -->
|
||||||
|
<Addr5 >STRTYPE</Addr5> <!-- optional -->
|
||||||
|
</ShipAddressBlock>
|
||||||
|
<PONumber >STRTYPE</PONumber> <!-- optional -->
|
||||||
|
<TermsRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</TermsRef>
|
||||||
|
<DueDate >DATETYPE</DueDate> <!-- optional -->
|
||||||
|
<SalesRepRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</SalesRepRef>
|
||||||
|
<FOB >STRTYPE</FOB> <!-- optional -->
|
||||||
|
<ShipDate >DATETYPE</ShipDate> <!-- optional -->
|
||||||
|
<ShipMethodRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ShipMethodRef>
|
||||||
|
<Subtotal >AMTTYPE</Subtotal> <!-- optional -->
|
||||||
|
<ItemSalesTaxRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemSalesTaxRef>
|
||||||
|
<SalesTaxPercentage >PERCENTTYPE</SalesTaxPercentage> <!-- optional -->
|
||||||
|
<SalesTaxTotal >AMTTYPE</SalesTaxTotal> <!-- optional -->
|
||||||
|
<TotalAmount >AMTTYPE</TotalAmount> <!-- optional -->
|
||||||
|
<CurrencyRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CurrencyRef>
|
||||||
|
<ExchangeRate >FLOATTYPE</ExchangeRate> <!-- optional -->
|
||||||
|
<TotalAmountInHomeCurrency >AMTTYPE</TotalAmountInHomeCurrency> <!-- optional -->
|
||||||
|
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
|
||||||
|
<IsFullyInvoiced >BOOLTYPE</IsFullyInvoiced> <!-- optional -->
|
||||||
|
<Memo >STRTYPE</Memo> <!-- optional -->
|
||||||
|
<CustomerMsgRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CustomerMsgRef>
|
||||||
|
<IsToBePrinted >BOOLTYPE</IsToBePrinted> <!-- optional -->
|
||||||
|
<IsToBeEmailed >BOOLTYPE</IsToBeEmailed> <!-- optional -->
|
||||||
|
<IsTaxIncluded >BOOLTYPE</IsTaxIncluded> <!-- optional -->
|
||||||
|
<CustomerSalesTaxCodeRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</CustomerSalesTaxCodeRef>
|
||||||
|
<Other >STRTYPE</Other> <!-- optional -->
|
||||||
|
<ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
|
||||||
|
<LinkedTxn> <!-- optional, may repeat -->
|
||||||
|
<TxnID >IDTYPE</TxnID> <!-- required -->
|
||||||
|
<!-- TxnType may have one of the following values: ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, LiabilityAdjustment, Paycheck, PayrollLiabilityCheck, PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, Transfer, VendorCredit, YTDAdjustment -->
|
||||||
|
<TxnType >ENUMTYPE</TxnType> <!-- required -->
|
||||||
|
<TxnDate >DATETYPE</TxnDate> <!-- required -->
|
||||||
|
<RefNumber >STRTYPE</RefNumber> <!-- optional -->
|
||||||
|
<!-- LinkType may have one of the following values: AMTTYPE, QUANTYPE -->
|
||||||
|
<LinkType >ENUMTYPE</LinkType> <!-- optional -->
|
||||||
|
<Amount >AMTTYPE</Amount> <!-- required -->
|
||||||
|
</LinkedTxn>
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<SalesOrderLineRet> <!-- optional -->
|
||||||
|
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
|
||||||
|
<ItemRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemRef>
|
||||||
|
<Desc >STRTYPE</Desc> <!-- optional -->
|
||||||
|
<Quantity >QUANTYPE</Quantity> <!-- optional -->
|
||||||
|
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
|
||||||
|
<OverrideUOMSetRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</OverrideUOMSetRef>
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<Rate >PRICETYPE</Rate> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
<ClassRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ClassRef>
|
||||||
|
<Amount >AMTTYPE</Amount> <!-- optional -->
|
||||||
|
<InventorySiteRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteRef>
|
||||||
|
<InventorySiteLocationRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteLocationRef>
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
<ExpirationDateForSerialLotNumber>STRTYPE</ExpirationDateForSerialLotNumber>
|
||||||
|
<SalesTaxCodeRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</SalesTaxCodeRef>
|
||||||
|
<Invoiced >QUANTYPE</Invoiced> <!-- optional -->
|
||||||
|
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
|
||||||
|
<Other1 >STRTYPE</Other1> <!-- optional -->
|
||||||
|
<Other2 >STRTYPE</Other2> <!-- optional -->
|
||||||
|
<DataExtRet> <!-- optional, may repeat -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
|
||||||
|
<DataExtName >STRTYPE</DataExtName> <!-- required -->
|
||||||
|
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
|
||||||
|
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
|
||||||
|
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
|
||||||
|
</DataExtRet>
|
||||||
|
</SalesOrderLineRet>
|
||||||
|
<!-- OR -->
|
||||||
|
<SalesOrderLineGroupRet> <!-- optional -->
|
||||||
|
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
|
||||||
|
<ItemGroupRef> <!-- required -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemGroupRef>
|
||||||
|
<Desc >STRTYPE</Desc> <!-- optional -->
|
||||||
|
<Quantity >QUANTYPE</Quantity> <!-- optional -->
|
||||||
|
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
|
||||||
|
<OverrideUOMSetRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</OverrideUOMSetRef>
|
||||||
|
<IsPrintItemsInGroup >BOOLTYPE</IsPrintItemsInGroup> <!-- required -->
|
||||||
|
<TotalAmount >AMTTYPE</TotalAmount> <!-- required -->
|
||||||
|
<SalesOrderLineRet> <!-- optional, may repeat -->
|
||||||
|
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
|
||||||
|
<ItemRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ItemRef>
|
||||||
|
<Desc >STRTYPE</Desc> <!-- optional -->
|
||||||
|
<Quantity >QUANTYPE</Quantity> <!-- optional -->
|
||||||
|
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
|
||||||
|
<OverrideUOMSetRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</OverrideUOMSetRef>
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<Rate >PRICETYPE</Rate> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
<ClassRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</ClassRef>
|
||||||
|
<Amount >AMTTYPE</Amount> <!-- optional -->
|
||||||
|
<InventorySiteRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteRef>
|
||||||
|
<InventorySiteLocationRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</InventorySiteLocationRef>
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
<ExpirationDateForSerialLotNumber>STRTYPE</ExpirationDateForSerialLotNumber>
|
||||||
|
<SalesTaxCodeRef> <!-- optional -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<FullName >STRTYPE</FullName> <!-- optional -->
|
||||||
|
</SalesTaxCodeRef>
|
||||||
|
<Invoiced >QUANTYPE</Invoiced> <!-- optional -->
|
||||||
|
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
|
||||||
|
<Other1 >STRTYPE</Other1> <!-- optional -->
|
||||||
|
<Other2 >STRTYPE</Other2> <!-- optional -->
|
||||||
|
<DataExtRet> <!-- optional, may repeat -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
|
||||||
|
<DataExtName >STRTYPE</DataExtName> <!-- required -->
|
||||||
|
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
|
||||||
|
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
|
||||||
|
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
|
||||||
|
</DataExtRet>
|
||||||
|
</SalesOrderLineRet>
|
||||||
|
<DataExtRet> <!-- optional, may repeat -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
|
||||||
|
<DataExtName >STRTYPE</DataExtName> <!-- required -->
|
||||||
|
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
|
||||||
|
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
|
||||||
|
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
|
||||||
|
</DataExtRet>
|
||||||
|
<SOChannel>ENUMTYPE</SOChannel> <!-- optional -->
|
||||||
|
<StoreName>STRTYPE</StoreName> <!-- optional -->
|
||||||
|
<StoreType>STRTYPE</StoreType> <!-- optional -->
|
||||||
|
</SalesOrderLineGroupRet>
|
||||||
|
<!-- END OR -->
|
||||||
|
<DataExtRet> <!-- optional, may repeat -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
|
||||||
|
<DataExtName >STRTYPE</DataExtName> <!-- required -->
|
||||||
|
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
|
||||||
|
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
|
||||||
|
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
|
||||||
|
</DataExtRet>
|
||||||
|
</SalesOrderRet>
|
||||||
|
<ErrorRecovery> <!-- optional -->
|
||||||
|
<!-- BEGIN OR -->
|
||||||
|
<ListID >IDTYPE</ListID> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
|
||||||
|
<!-- OR -->
|
||||||
|
<TxnID >IDTYPE</TxnID> <!-- optional -->
|
||||||
|
<!-- END OR -->
|
||||||
|
<TxnNumber >INTTYPE</TxnNumber> <!-- optional -->
|
||||||
|
<EditSequence >STRTYPE</EditSequence> <!-- optional -->
|
||||||
|
<ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
|
||||||
|
</ErrorRecovery>
|
||||||
|
</SalesOrderAddRs>
|
||||||
|
</QBXMLMsgsRq>
|
||||||
|
</QBXML>
|
||||||
50
addSO.py
Normal file
50
addSO.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
from QBClasses import SalesOrderQuery, InvoiceQuery, TransactionQuery, InvoiceAdd, SalesOrderAdd
|
||||||
|
from utils import timing, makeAList, makeLinkedTxnList, prepareData
|
||||||
|
from pprint import pprint, PrettyPrinter
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
import xmltodict
|
||||||
|
|
||||||
|
def addSO(data:dict)->bool:
|
||||||
|
CustomerRef_FullName=data.get('CustomerRef_FullName', None)
|
||||||
|
TemplateRef_FullName=data.get('TemplateRef_FullName', None)
|
||||||
|
TxnDate=data.get('TxnDate', None) #default today
|
||||||
|
RefNumber=data.get('RefNumber', None)
|
||||||
|
ShipAddress=data.get('ShipAddress', None)
|
||||||
|
PONumber=data.get('PONumber', None)
|
||||||
|
Memo=data.get('Memo', None)
|
||||||
|
IsToBePrint=False #default False
|
||||||
|
IsToBeEmail=False #default False
|
||||||
|
|
||||||
|
SalesOrderLineAdd:list[dict]=data.get('SalesOrderLineAdd', [])
|
||||||
|
for SOLine in SalesOrderLineAdd:
|
||||||
|
ItemRef_FullName=SOLine.get('ItemRef_FullName', None)
|
||||||
|
Quantity=SOLine.get('Quantity', None)
|
||||||
|
UnitOfMeasure=SOLine.get('UnitOfMeasure', None)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
data = {'CustomerRef_FullName': '999 HPL', 'RefNumber':'Ref12345'}
|
||||||
|
lineAdd = [{'ItemRef_FullName':'TACO:AA:TH-006AA', 'Quantity':5, 'Rate':1200}, {'ItemRef_FullName':'TACO:J_FC:TH-807J','Other1':"my reftoother1", 'Quantity':1, 'Rate':5500}]
|
||||||
|
# lineAdd = {'ItemRef_FullName':'Item123', 'Quantity':5, 'Rate':1200}#, {'ItemRef_FullName':'Item23A', 'Quantity':1, 'Rate':5500}
|
||||||
|
data['SalesOrderLineAdd']=lineAdd
|
||||||
|
print("")
|
||||||
|
print('this is the format to ADD SO or INV')
|
||||||
|
pprint(data)
|
||||||
|
print("")
|
||||||
|
soAdd = SalesOrderAdd(**data)
|
||||||
|
# print(f'{soAdd = }')
|
||||||
|
print(soAdd.__repr__)
|
||||||
|
|
||||||
|
def test_preparedata():
|
||||||
|
print("Test Preparedata")
|
||||||
|
data = '''order: Sumber rejeki\n
|
||||||
|
TH-001AA : 4 :Kirim Krian\n
|
||||||
|
ECO-016= 7\n
|
||||||
|
'''
|
||||||
|
prepareData(data)
|
||||||
|
if __name__=='__main__':
|
||||||
|
test_preparedata()
|
||||||
|
# data={'root':data}
|
||||||
|
# print(f'{data = }')
|
||||||
|
# QBXML = xmltodict.unparse(data, pretty=True).replace("</?qbxml>", "")#.replace(f'version="{version}"', f'version="{version}"?')
|
||||||
|
# print(QBXML)
|
||||||
10
save_data.py
10
save_data.py
@ -22,7 +22,7 @@ def main():
|
|||||||
]
|
]
|
||||||
refNumbers_listofdict= [{'RefNumber': '0099'}, {'RefNumber': '0100'}, {'RefNumber': '0103'}]
|
refNumbers_listofdict= [{'RefNumber': '0099'}, {'RefNumber': '0100'}, {'RefNumber': '0103'}]
|
||||||
refNumbers_list= makeAList(refNumbers_listofdict,dictvalue=True, listofdict=True)
|
refNumbers_list= makeAList(refNumbers_listofdict,dictvalue=True, listofdict=True)
|
||||||
print(refNumbers_list)
|
print(f'{refNumbers_list = }')
|
||||||
# invQ = InvoiceQuery(**{'debug':False, 'MaxReturned':1, 'RefNumber':refNumbers_list, 'IncludeLineItems':'true', 'IncludeLinkedTxns':'true', 'IncludeRetElements':IncludeRetElements})#, 'OwnerID':0} )
|
# invQ = InvoiceQuery(**{'debug':False, 'MaxReturned':1, 'RefNumber':refNumbers_list, 'IncludeLineItems':'true', 'IncludeLinkedTxns':'true', 'IncludeRetElements':IncludeRetElements})#, 'OwnerID':0} )
|
||||||
invQ = InvoiceQuery(**{'debug':False, 'MaxReturned':1, 'IncludeLineItems':'true', 'IncludeLinkedTxns':'true', 'IncludeRetElement':IncludeRetElements})#, 'OwnerID':0} )
|
invQ = InvoiceQuery(**{'debug':False, 'MaxReturned':1, 'IncludeLineItems':'true', 'IncludeLinkedTxns':'true', 'IncludeRetElement':IncludeRetElements})#, 'OwnerID':0} )
|
||||||
|
|
||||||
@ -126,4 +126,12 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
|
# main()
|
||||||
|
if True: print("trueeee"); print("again")
|
||||||
|
print("before") if True else 0
|
||||||
|
d={'a':""}
|
||||||
|
if d['a']:
|
||||||
|
print("Ada")
|
||||||
|
else:
|
||||||
|
print('Tak ada')
|
||||||
main()
|
main()
|
||||||
@ -40,6 +40,11 @@ class baseQBQuery:
|
|||||||
self.statusMessage = ""
|
self.statusMessage = ""
|
||||||
self.statusSeverity = ""
|
self.statusSeverity = ""
|
||||||
self.statusOk = False
|
self.statusOk = False
|
||||||
|
if self.__class__.__name__=="baseQBQuery":
|
||||||
|
print("baseqbquey same with classname")
|
||||||
|
else:
|
||||||
|
print("accessed from child class")
|
||||||
|
print("basequery is accessed from ", self.__class__.__name__ + "Rq")
|
||||||
|
|
||||||
# @timing
|
# @timing
|
||||||
def create_QBXML(self):
|
def create_QBXML(self):
|
||||||
|
|||||||
64
utils.py
64
utils.py
@ -3,6 +3,59 @@ from time import time
|
|||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
|
|
||||||
|
def getItemFullName(shortItem:str)->str:
|
||||||
|
# def searchitem(SearchItem = '001aba', QTY = 0, dbTable="itemlist", column="FullName"):
|
||||||
|
FullName = shortItem
|
||||||
|
return FullName
|
||||||
|
|
||||||
|
def getCustomerFullName(shortCustomerName:str)->str:
|
||||||
|
# def searchitem(SearchItem = '001aba', QTY = 0, dbTable="itemlist", column="FullName"):
|
||||||
|
FullName = shortCustomerName
|
||||||
|
return FullName
|
||||||
|
|
||||||
|
def getRefNumber()->str:
|
||||||
|
return "refnumber345"
|
||||||
|
|
||||||
|
def prepareData(dt:str):
|
||||||
|
dtLines = dt.strip().split('\n')
|
||||||
|
smoothdtLines:list[str] = []
|
||||||
|
for dtLine in dtLines:
|
||||||
|
if dtLine.strip()=='':
|
||||||
|
continue
|
||||||
|
smoothdtLines.append(dtLine)
|
||||||
|
for smIdx, smdtLine in enumerate(smoothdtLines):
|
||||||
|
itemName, Qty, memoLine = ('', '', '')
|
||||||
|
if smIdx==0 and ':' in smdtLine:
|
||||||
|
CustomerName = smdtLine.split(':')[1].strip()
|
||||||
|
CustomerRef_FullName = getCustomerFullName(CustomerName)
|
||||||
|
RefNumber = getRefNumber()
|
||||||
|
continue
|
||||||
|
elif smIdx==0 and ':' not in smdtLine:
|
||||||
|
return False
|
||||||
|
else: #proccess the second till end lines
|
||||||
|
for splitChar in [':', '=']:
|
||||||
|
if splitChar in smdtLine:
|
||||||
|
objects = smdtLine.split(splitChar)
|
||||||
|
if len(objects)==2:
|
||||||
|
itemName, Qty = tuple(smdtLine.split(splitChar))
|
||||||
|
if len(objects)==3:
|
||||||
|
itemName, Qty, memoLine = tuple(smdtLine.split(splitChar))
|
||||||
|
break
|
||||||
|
itemName = itemName.strip()
|
||||||
|
Qty=Qty.strip()
|
||||||
|
memoLine = memoLine.strip()
|
||||||
|
print(CustomerRef_FullName, RefNumber, itemName, Qty, memoLine)
|
||||||
|
ItemRef_FullName = getItemFullName(itemName)
|
||||||
|
|
||||||
|
if memoLine:
|
||||||
|
print(memoLine)
|
||||||
|
else:
|
||||||
|
print("no memo")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def makeLinkedTxnList(x:list, key:str=None)->list:
|
def makeLinkedTxnList(x:list, key:str=None)->list:
|
||||||
txnIDs=[]
|
txnIDs=[]
|
||||||
if isinstance(x, dict):
|
if isinstance(x, dict):
|
||||||
@ -63,7 +116,11 @@ def timing(f):
|
|||||||
return wrap
|
return wrap
|
||||||
|
|
||||||
|
|
||||||
def cleanIncludeRetElements(includeRetElements_allowed:list, includeRetElements:list):
|
def cleanIncludeRetElements(includeRetElements_allowed:list, includeRetElements:Union[list, str], default_val:str=None):
|
||||||
|
if default_val==None:
|
||||||
|
default_val = []
|
||||||
|
# else:
|
||||||
|
# default = [default]
|
||||||
iREs = []
|
iREs = []
|
||||||
# print(f'{includeRetElements_allowed = }\n{includeRetElements = }')
|
# print(f'{includeRetElements_allowed = }\n{includeRetElements = }')
|
||||||
if isinstance(includeRetElements, str): #if user put 1 str argument in IncludeRetElements, change it to list
|
if isinstance(includeRetElements, str): #if user put 1 str argument in IncludeRetElements, change it to list
|
||||||
@ -73,7 +130,10 @@ def cleanIncludeRetElements(includeRetElements_allowed:list, includeRetElements:
|
|||||||
if iRE.lower() == iRE_a.lower():
|
if iRE.lower() == iRE_a.lower():
|
||||||
iREs.append(iRE_a)
|
iREs.append(iRE_a)
|
||||||
break
|
break
|
||||||
return iREs
|
if len(iREs)>0:
|
||||||
|
return iREs
|
||||||
|
else:
|
||||||
|
return [default_val]
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
#Example makelist
|
#Example makelist
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user