Beispiel #1
0
 def _all(self, resource):
     xml = xml_setter('MaxReturned', 100)
     xml = xml_setter(resource + QUICKBOOKS_ENUMS.OPP_QR + 'Rq',
                      xml,
                      metaData='NoMetaData',
                      iterator='Start')
     return self._prepare_request(xml)
Beispiel #2
0
    def _prepare_request(self, req_body):
        xml_type = utils.get_xml_type(self.qb_type)
        xml = xml_setter(f'{xml_type}MsgsRq', req_body, onError='stopOnError')
        xml = xml_setter(xml_type, xml)

        xml = get_xml_meta_info(self.qb_type) + xml
        return xml
Beispiel #3
0
 def _update(self, resource, object):
     xml = ''
     xml += xml_setter(
         resource + QUICKBOOKS_ENUMS.OPP_MOD + 'Rq',
         object.as_xml(opp_type=QUICKBOOKS_ENUMS.OPP_MOD,
                       ref_fields=self.ref_fields,
                       change_fields=self.mod_fields,
                       complex_fields=self.complex_fields))
     return self._prepare_request(xml)
Beispiel #4
0
    def as_xml(self, class_name=None, indent=0, opp_type=QUICKBOOKS_ENUMS.OPP_ADD,
               version=QUICKBOOKS_ENUMS.VERSION_13, **kwargs):
        xml = ''
        for field_key, options in self.fields.items():
            if hasattr(self, field_key):
                obj = getattr(self, field_key)
                if not obj:
                    continue
                if is_primitive(obj):
                    if self.fields[field_key]['validator']['type'] == self.validator.BOOLTYPE:
                        xml += xml_setter(field_key, str(obj).lower(), encode=True)
                    else:
                        xml += xml_setter(field_key, str(obj), encode=True)

                elif is_list(obj):
                    for element in obj:
                        if is_primitive(element):
                            if self.fields[field_key]['validator']['type'] == self.validator.BOOLTYPE:
                                xml += xml_setter(field_key, str(element).lower(), encode=True)
                            else:
                                xml += xml_setter(field_key, str(element), encode=True)
                        else:
                            if field_key in kwargs.get('ref_fields', []):
                                xml += element.as_xml(class_name=field_key, indent=indent,
                                                      opp_type=QUICKBOOKS_ENUMS.OBJ_REF, version=version, **kwargs)
                            elif field_key in kwargs.get('change_fields', []):
                                xml += element.as_xml(class_name=field_key, indent=indent, opp_type=opp_type,
                                                      version=version, **kwargs)
                            elif field_key in kwargs.get('complex_fields', []):
                                xml += element.as_xml(class_name=field_key, indent=indent, opp_type='', version=version,
                                                      **kwargs)
                else:
                    if field_key in kwargs.get('ref_fields', []):
                        xml += obj.as_xml(class_name=field_key, indent=indent, opp_type=QUICKBOOKS_ENUMS.OBJ_REF,
                                          version=version, **kwargs)
                    elif field_key in kwargs.get('change_fields', []):
                        xml += obj.as_xml(class_name=field_key, indent=indent, opp_type=opp_type, version=version,
                                          **kwargs)
                    elif field_key in kwargs.get('complex_fields', []):
                        xml += obj.as_xml(class_name=field_key, indent=indent, opp_type='', version=version, **kwargs)

        class_name = self.__class__.__name__ if not class_name else class_name
        xml = xml_setter(class_name + opp_type, xml)
        return xml
Beispiel #5
0
 def _find_by_full_name(self, resource, full_name):
     xml = xml_setter('FullName', full_name)
     xml = xml_setter(resource + QUICKBOOKS_ENUMS.OPP_QR + 'Rq',
                      xml,
                      metaData='NoMetaData')
     return self._prepare_request(xml)
Beispiel #6
0
 def _find_by_id(self, resource, id, field_name='ListID'):
     xml = xml_setter(field_name, id)
     xml = xml_setter(resource + QUICKBOOKS_ENUMS.OPP_QR + 'Rq',
                      xml,
                      metaData='NoMetaData')
     return self._prepare_request(xml)
Beispiel #7
0
 def _delete(self, resource, object):
     xml = ''
     xml += xml_setter(resource + QUICKBOOKS_ENUMS.OPP_DEL + 'Rq',
                       object.as_xml(opp_type=QUICKBOOKS_ENUMS.OPP_DEL))
     return self._prepare_request(xml)
Beispiel #8
0
 def _prepare_request(self, req_body):
     xml = xml_setter('QBXMLMsgsRq', req_body, onError='stopOnError')
     xml = xml_setter('QBXML', xml)
     xml = get_xml_meta_info() + xml
     return xml