mirror of
https://github.com/bcomsugi/Quickbooks-API.git
synced 2026-01-08 09:12: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_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, 'IncludeLineItems':'true', 'IncludeLinkedTxns':'true', 'IncludeRetElement':IncludeRetElements})#, 'OwnerID':0} )
|
||||
|
||||
@ -126,4 +126,12 @@ def 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()
|
||||
@ -40,6 +40,11 @@ class baseQBQuery:
|
||||
self.statusMessage = ""
|
||||
self.statusSeverity = ""
|
||||
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
|
||||
def create_QBXML(self):
|
||||
|
||||
64
utils.py
64
utils.py
@ -3,6 +3,59 @@ from time import time
|
||||
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:
|
||||
txnIDs=[]
|
||||
if isinstance(x, dict):
|
||||
@ -63,7 +116,11 @@ def timing(f):
|
||||
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 = []
|
||||
# print(f'{includeRetElements_allowed = }\n{includeRetElements = }')
|
||||
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():
|
||||
iREs.append(iRE_a)
|
||||
break
|
||||
return iREs
|
||||
if len(iREs)>0:
|
||||
return iREs
|
||||
else:
|
||||
return [default_val]
|
||||
|
||||
if __name__=='__main__':
|
||||
#Example makelist
|
||||
|
||||
Loading…
Reference in New Issue
Block a user