se adiciona SendNominaSync

FossilOrigin-Name: e09a3b15439d3f052dd7dbf9504035507abad0cc885c69432d0b989bb4b8b55f
This commit is contained in:
bit4bit 2021-11-13 18:33:36 +00:00
parent 903b1bad64
commit cd1b14ff1d
2 changed files with 39 additions and 1 deletions

View File

@ -312,6 +312,26 @@ def generate_nomina(private_key, passphrase, scriptname, ssl=True, sign=False, u
else:
DIANWrite(xml, output)
@click.command()
@click.option('--private-key', required=True)
@click.option('--public-key', required=True)
@click.option('--habilitacion/--produccion', default=False)
@click.option('--password')
@click.argument('filename', required=True)
@click.argument('zipfile', type=click.Path(exists=True))
def soap_send_nomina_sync(private_key, public_key, habilitacion, password, filename, zipfile):
from facho.fe.client import dian
client = dian.DianSignatureClient(private_key, public_key, password=password)
req = dian.SendNominaSync
if habilitacion:
req = dian.Habilitacion.SendNominaSync
resp = client.request(req(
filename,
open(zipfile, 'rb').read()
))
print(resp)
@click.command()
@click.option('--private-key', type=click.Path(exists=True))
@click.option('--passphrase')
@ -347,7 +367,8 @@ main.add_command(soap_get_status)
main.add_command(soap_get_status_zip)
main.add_command(soap_get_numbering_range)
main.add_command(generate_invoice)
main.add_command(generate_nomina)
main.add_command(validate_invoice)
main.add_command(sign_xml)
main.add_command(sign_verify_xml)
main.add_command(generate_nomina)
main.add_command(soap_send_nomina_sync)

View File

@ -175,7 +175,21 @@ class GetStatusZip(SOAPService):
def build_response(self, as_dict):
return GetStatusResponse.fromdict(as_dict[0])
@dataclass
class SendNominaSync(SOAPService):
fileName: str
contentFile: bytes
def get_wsdl(self):
return 'https://vpfe.dian.gov.co/WcfDianCustomerServices.svc?wsdl'
def get_service(self):
return 'SendNominaSync'
def build_response(self, as_dict):
return as_dict
class Habilitacion:
WSDL = 'https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.svc?wsdl'
@ -203,6 +217,9 @@ class Habilitacion:
def get_wsdl(self):
return Habilitacion.WSDL
class SendNominaSync(SendNominaSync):
def get_wsdl(self):
return Habilitacion.WSDL
class DianGateway: