def SincronizarArticuloGrupo(sender, **kwargs): ''' Para sincronizar ciudad en todas las empreas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) articulo_grupo_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 100, 'GRUPO') for base_de_datos in bases_de_datos[indice:indice_final]: articulo_grupo_old = first_or_none(GrupoLineas.objects.using(default_db).filter(pk=articulo_grupo_a_syncronizar.id)) if articulo_grupo_old: articulo_grupo_nombre = articulo_grupo_old.nombre else: articulo_grupo_nombre = articulo_grupo_a_syncronizar.nombre articulo_grupo = first_or_none(GrupoLineas.objects.using(base_de_datos).filter(nombre=articulo_grupo_nombre)) if articulo_grupo: articulo_grupo.nombre= articulo_grupo_a_syncronizar.nombre articulo_grupo.cuenta_ventas= articulo_grupo_a_syncronizar.cuenta_ventas articulo_grupo.save(using=base_de_datos) else: GrupoLineas.objects.using(base_de_datos).create( nombre= articulo_grupo_a_syncronizar.nombre, cuenta_ventas = articulo_grupo_a_syncronizar.cuenta_ventas, ) set_indices(indice_final, len(bases_de_datos), 'GRUPO')
def SincronizarPais(sender, **kwargs): ''' Para sincronizar ciudad en todas las empreas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) pais_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 100, 'PAIS') for base_de_datos in bases_de_datos[indice:indice_final]: pais_old = first_or_none(Pais.objects.using(default_db).filter(pk=pais_a_syncronizar.id)) if pais_old: pais_nombre = pais_old.nombre else: pais_nombre = pais_a_syncronizar.nombre pais = first_or_none(Pais.objects.using(base_de_datos).filter(nombre=pais_nombre)) if pais: pais.nombre= pais_a_syncronizar.nombre pais.es_predet= pais_a_syncronizar.es_predet pais.nombre_abreviado= pais_a_syncronizar.nombre_abreviado pais.save(using=base_de_datos) else: Pais.objects.using(base_de_datos).create( id=-1, nombre= pais_a_syncronizar.nombre, es_predet = pais_a_syncronizar.es_predet, nombre_abreviado = pais_a_syncronizar.nombre_abreviado ) set_indices(indice_final, len(bases_de_datos), 'PAIS')
def Sincronizarciudad(sender, **kwargs): ''' Para sincronizar ciudad en todas las empreas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) ciudad_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 100, 'CIUDAD') for base_de_datos in bases_de_datos[indice:indice_final]: ciudad_old = first_or_none(Ciudad.objects.using(default_db).filter(pk=ciudad_a_syncronizar.id)) if ciudad_old: ciudad_nombre = ciudad_old.nombre else: ciudad_nombre = ciudad_a_syncronizar.nombre ciudad = first_or_none(Ciudad.objects.using(base_de_datos).filter(nombre=ciudad_nombre)) old_estado = ciudad_a_syncronizar.estado old_pais = old_estado.pais pais, pais_creado = Pais.objects.using(base_de_datos).get_or_create( nombre= old_estado.pais.nombre, defaults={ 'nombre': old_pais.nombre, 'es_predet': old_pais.es_predet, 'nombre_abreviado': old_pais.nombre_abreviado, } ) estado, estado_creado = Estado.objects.using(base_de_datos).get_or_create( nombre=ciudad_a_syncronizar.estado.nombre, defaults={ 'es_predet': old_estado.es_predet, 'nombre_abreviado':old_estado.nombre_abreviado, 'pais': pais, } ) if ciudad: ciudad.nombre= ciudad_a_syncronizar.nombre ciudad.es_predet= ciudad_a_syncronizar.es_predet ciudad.estado = estado ciudad.save(using=base_de_datos) else: Ciudad.objects.using(base_de_datos).create( id=-1, nombre= ciudad_a_syncronizar.nombre, es_predet= ciudad_a_syncronizar.es_predet, estado = estado ) set_indices(indice_final, len(bases_de_datos), 'CIUDAD')
def SincronizarArticulo(sender, **kwargs): ''' Para sincronizar articulos en todas las empreas registradas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) articulo_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 40, 'ARTICULO') for base_de_datos in bases_de_datos[indice:indice_final]: try: articulo_nombre = Articulo.objects.using(default_db).get(pk=articulo_a_syncronizar.id).nombre except ObjectDoesNotExist: articulo_nombre = articulo_a_syncronizar.nombre articulo = first_or_none(Articulo.objects.using(base_de_datos).filter(nombre=articulo_nombre)) if articulo: articulo.nombre = articulo_a_syncronizar.nombre articulo.es_almacenable = articulo_a_syncronizar.es_almacenable articulo.estatus = articulo_a_syncronizar.estatus articulo.seguimiento = articulo_a_syncronizar.seguimiento articulo.cuenta_ventas = articulo_a_syncronizar.cuenta_ventas linea = LineaArticulos.objects.using(base_de_datos).get(nombre=articulo_a_syncronizar.linea.nombre) articulo.linea = linea articulo.nota_ventas = articulo_a_syncronizar.nota_ventas articulo.unidad_venta = articulo_a_syncronizar.unidad_venta articulo.unidad_compra = articulo_a_syncronizar.unidad_compra articulo.costo_ultima_compra = articulo_a_syncronizar.costo_ultima_compra articulo.usuario_ult_modif = articulo_a_syncronizar.usuario_ult_modif articulo.save(using=base_de_datos) else: linea = LineaArticulos.objects.using(base_de_datos).get(nombre=articulo_a_syncronizar.linea.nombre) Articulo.objects.using(base_de_datos).create( nombre = articulo_a_syncronizar.nombre, es_almacenable = articulo_a_syncronizar.es_almacenable, estatus = articulo_a_syncronizar.estatus, seguimiento = articulo_a_syncronizar.seguimiento, cuenta_ventas = articulo_a_syncronizar.cuenta_ventas, linea = linea, nota_ventas = articulo_a_syncronizar.nota_ventas, unidad_venta = articulo_a_syncronizar.unidad_venta, unidad_compra = articulo_a_syncronizar.unidad_compra, costo_ultima_compra = articulo_a_syncronizar.costo_ultima_compra, usuario_ult_modif = articulo_a_syncronizar.usuario_ult_modif, ) SincronizarDependencias(using=base_de_datos, articulo_nombre=articulo_nombre) set_indices(indice_final, len(bases_de_datos), 'ARTICULO')
def SincronizarCliente(sender, **kwargs): ''' Para sincronizar clientes en todas las empreas registradas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) cliente_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 40, 'CLIENTE') for base_de_datos in bases_de_datos[indice:indice_final]: try: cliente_nombre = Cliente.objects.using(default_db).get(pk=cliente_a_syncronizar.id).nombre except ObjectDoesNotExist: cliente_nombre = cliente_a_syncronizar.nombre cliente = first_or_none(Cliente.objects.using(base_de_datos).filter(nombre=cliente_nombre)) if cliente: cliente.nombre = cliente_a_syncronizar.nombre condicion_de_pago = CondicionPago.objects.using(base_de_datos).get(nombre=cliente_a_syncronizar.condicion_de_pago.nombre) cliente.condicion_de_pago = condicion_de_pago cliente.moneda = cliente_a_syncronizar.moneda cliente.cobrar_impuestos = cliente_a_syncronizar.cobrar_impuestos cliente.generar_interereses = cliente_a_syncronizar.generar_interereses cliente.emir_estado_cuenta = cliente_a_syncronizar.emir_estado_cuenta cliente.save(using=base_de_datos) else: condicion_de_pago = CondicionPago.objects.using(base_de_datos).get(nombre=cliente_a_syncronizar.condicion_de_pago.nombre) Cliente.objects.using(base_de_datos).create( nombre = cliente_a_syncronizar.nombre, condicion_de_pago = condicion_de_pago, moneda = cliente_a_syncronizar.moneda, cobrar_impuestos = cliente_a_syncronizar.cobrar_impuestos, generar_interereses = cliente_a_syncronizar.generar_interereses, emir_estado_cuenta = cliente_a_syncronizar.emir_estado_cuenta, ) SincronizarClienteDireccion(using=base_de_datos, fuente_cliente_nombre=cliente_nombre ) set_indices(indice_final, len(bases_de_datos), 'CLIENTE')
def SincronizarEstado(sender, **kwargs): ''' Para sincronizar estado en todas las empreas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) estado_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 100, 'ESTADO') for base_de_datos in bases_de_datos[indice:indice_final]: estado_old = first_or_none(Estado.objects.using(default_db).filter(pk=estado_a_syncronizar.id)) if estado_old: estado_nombre = estado_old.nombre else: estado_nombre = estado_a_syncronizar.nombre estado = first_or_none(Estado.objects.using(base_de_datos).filter(nombre=estado_nombre)) pais = first_or_none(Pais.objects.using(base_de_datos).filter(nombre=estado_a_syncronizar.pais.nombre)) if not pais: old_pais = estado_a_syncronizar.pais pais = Pais.objects.using(base_de_datos).create( nombre = old_pais.nombre, es_predet = old_pais.es_predet, nombre_abreviado = old_pais.nombre_abreviado ) if estado: estado.nombre= estado_a_syncronizar.nombre estado.es_predet= estado_a_syncronizar.es_predet estado.nombre_abreviado= estado_a_syncronizar.nombre_abreviado estado.pais = pais estado.save(using=base_de_datos) else: Estado.objects.using(base_de_datos).create( id=-1, nombre= estado_a_syncronizar.nombre, nombre_abreviado = estado_a_syncronizar.nombre_abreviado, es_predet= estado_a_syncronizar.es_predet, pais = pais ) set_indices(indice_final, len(bases_de_datos), 'ESTADO')
def SincronizarCondicionPago(sender, **kwargs): """ Para sincronizar condiciones de pago en todas las empreas registradas. """ if kwargs.get("using") == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get("using")) condicion_pago_a_syncronizar = kwargs.get("instance") indice, indice_final = get_indices(len(bases_de_datos), 70, "CONDICIONPAGO") for base_de_datos in bases_de_datos[indice:indice_final]: try: condicion_pago_nombre = ( CondicionPago.objects.using(default_db).get(pk=condicion_pago_a_syncronizar.id).nombre ) except ObjectDoesNotExist: condicion_pago_nombre = condicion_pago_a_syncronizar.nombre condicion_pago = first_or_none( CondicionPago.objects.using(base_de_datos).filter(nombre=condicion_pago_nombre) ) if condicion_pago: condicion_pago.nombre = condicion_pago_a_syncronizar.nombre condicion_pago.dias_ppag = condicion_pago_a_syncronizar.dias_ppag condicion_pago.porcentaje_descuento_ppago = condicion_pago_a_syncronizar.porcentaje_descuento_ppago condicion_pago.es_predet = condicion_pago_a_syncronizar.es_predet condicion_pago.usuario_creador = condicion_pago_a_syncronizar.usuario_creador condicion_pago.usuario_ult_modif = condicion_pago_a_syncronizar.usuario_creador condicion_pago.save(using=base_de_datos) else: CondicionPago.objects.using(base_de_datos).create( nombre=condicion_pago_a_syncronizar.nombre, dias_ppag=condicion_pago_a_syncronizar.dias_ppag, porcentaje_descuento_ppago=condicion_pago_a_syncronizar.porcentaje_descuento_ppago, es_predet=condicion_pago_a_syncronizar.es_predet, usuario_creador=condicion_pago_a_syncronizar.usuario_creador, usuario_ult_modif=condicion_pago_a_syncronizar.usuario_creador, ) sync_condicion_pago_plazo(using=base_de_datos, condicion_pago_nombre=condicion_pago_nombre) set_indices(indice_final, len(bases_de_datos), "CONDICIONPAGO")
def SincronizarImpuesto(sender, **kwargs): ''' Para sincronizar impuestos en todas las empreas. ''' if kwargs.get('using') == default_db: bases_de_datos = MICROSIP_DATABASES.keys() bases_de_datos.remove(kwargs.get('using')) impuesto_a_syncronizar = kwargs.get('instance') indice, indice_final = get_indices(len(bases_de_datos), 100, 'IMPUESTO') for base_de_datos in bases_de_datos[indice:indice_final]: impuesto_old = first_or_none(Impuesto.objects.using(default_db).filter(pk=impuesto_a_syncronizar.id)) if impuesto_old: impuesto_nombre = impuesto_old.nombre else: impuesto_nombre = impuesto_a_syncronizar.nombre impuesto = first_or_none(Impuesto.objects.using(base_de_datos).filter(nombre=impuesto_nombre)) if impuesto: tipo_impuesto = first_or_none(ImpuestoTipo.objects.using(base_de_datos).filter(nombre=impuesto_old.tipoImpuesto.nombre)) if tipo_impuesto: impuesto.porcentaje = impuesto_old.porcentaje impuesto.nombre= impuesto_old.nombre impuesto.tipoImpuesto = tipo_impuesto impuesto.tipo_iva = impuesto_old.tipo_iva impuesto.es_predet= impuesto_old.es_predet impuesto.save(using=base_de_datos) else: tipo_impuesto = first_or_none(ImpuestoTipo.objects.using(base_de_datos).filter(nombre=impuesto_old.tipoImpuesto.nombre)) if tipo_impuesto: Impuesto.objects.using(base_de_datos).create( id=-1, nombre= impuesto_old.nombre, tipoImpuesto = tipo_impuesto, tipo_iva = impuesto_old.tipo_iva, porcentaje = impuesto_old.porcentaje ) set_indices(indice_final, len(bases_de_datos), 'IMPUESTO')