#coding: utf-8 ''' Created on 05.05.2015 @author: v.popov ''' import json from suds.client import Client from ru.curs.celesta.showcase.utils import XMLJSONConverter import sys from journals import nci_settings from java.text import SimpleDateFormat def uploadLeContractor(context, contractor_id): u'''Выполняет выгрузку контрагента ЮЛ в систему НСИ. ''' #userPin = '1C1SMFSRJQIEA1' #wsUrl = 'http://192.168.111.80:8080/nsi_test/forall/webservices?wsdl' settings_json = nci_settings.getSettingsJSON() userPin = settings_json['userPin'] wsUrl = settings_json['wsUrl'] wsClient = Client(wsUrl) legal_entity = legal_entityCursor(context) legal_entity.get(contractor_id) contractor_address = legal_entity.address_fact if legal_entity.address_fact else legal_entity.address_post contractor_name = legal_entity.shortname if legal_entity.shortname else legal_entity.name contractor_guid_nsi = unicode(contractor_id) contractor_kpp = legal_entity.kpp contractor_inn = legal_entity.inn contractor_email = '' wsRequest = u''' %s %s %s Юр. лицо %s %s %s ''' % (userPin, contractor_address, contractor_name, contractor_guid_nsi, contractor_kpp, contractor_inn, contractor_email) wsXmlOut = wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.insert.celesta") if ' %s %s С покупателем %s %s %s ''' % (userPin, contract_date, contract_guid_nsi, contract_number, contract_sum, contractor_guid_nsi) # если ЮЛ - проверяем, что оно синхронизировано if contract.contract_type == 'legalEntityPayed': legal_entity = legal_entityCursor(context) legal_entity.get(contract.customer) if not legal_entity.sync_nsi: # синхронизируем uploadLeContractor(context, contract.customer) wsXmlOut = wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.insert.celesta") if ' %s %s %s %s %s %s %s %s %s %s %s %s %s %s ''' % (userPin, person_guid, family_name, first_name, second_name, birth_date, gender, email, inn, pass_type, pass_ser, pass_num, pass_is_by, pass_date, snils) wsXmlOut = wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.insert.celesta") if ' %s %s %s %s %s %s %s %s %s %s %s %s %s %s ''' % (person_guid, family_name, first_name, second_name, birth_date, gender, email, inn, pass_type, pass_ser, pass_num, pass_is_by, pass_date, snils) recs.append({'person_guid': person_guid, 'rec': rec, 'reg_data_id': reg_data.uid}) wsRequest = u''' %s ''' % (userPin, "".join([x['rec'] for x in recs if 'rec' in x])) try: wsXmlOut = wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.insert.celesta") if ' %s ''' % (userPin, rec['rec']) wsXmlOut = wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.insert.celesta") if ' False ''' % (userPin, table, package_id) wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.syncReport.celesta") def selectPayments(context): u'Загружка оплат в ФДПО.' payments_nsi = payments_nsiCursor(context) settings_json = nci_settings.getSettingsJSON() userPin = settings_json['userPin'] wsUrl = settings_json['wsUrl'] wsClient = Client(wsUrl) wsRequest = u''' ''' % userPin wsXmlOut = wsClient.service.handle(request=wsRequest, procName="webservices.funcTest.select.celesta") if '