## Procesamiento de documentos por cobrar. Funciones de lógica de negocio - cxc/movimientos.dkh - efectivo/movimientos.dkh Paquetes requeridos: - `efectivo` ### Funciones #### Crear una cuenta por cobrar ``` crearCxC::&db,&data { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `data` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new data { @"flimite":(date) Fecha de aplicación y fecha de fultmoratorios. @"documento":(int) Tipo de documento, id de la tabla cdocumentos. @"fecha":(date) Fecha @"concepto":(string) Notas de la cuenta por cobrar. @"referencia":(string) Referencia única. @"tcambio":(decimal) Tipo de cambio. @"icliente": (int) clave primaria de un cliente existente. @"aplicable": (bool) Si es true, marca como aplicable el documento(opcional). @"iventa":(int) Clave primaria de la venta(opcional ). @"importe":(decimal) Importe del documento. } ``` **Retorno** - `(int) Clave primaria del nuevo documento creado.` #### Cobrar un documento por cobrar Transacciones al realizar el proceso. - Realizar deposito a la cuenta indicado en el objeto `data`. - Generar documento por cobrar (dcxc) y Afectar saldo del cliente. - Aplicar cobro (inserta una fila a la tabla aplcxc). ``` cobrarCxC::&db,&data { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `data` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new data { @"faplicacion":(date) Fecha de aplicación, fecha de fultmoratorios y fecha de aplicación del depósito. @"conciliado":(bool) @"tcambio_deposito":(decimal) Tipo de cambio del depósito. @"documento_deposito":(int) Tipo de documento del depósito. @"categoria_deposito":(int) Categoría del depósito. @"cuenta_deposito"(int) Clave primaria de la cuenta(tabla chequera). @"documento_cobro":(int) Tipo de documento del cobro, id de la tabla cdocumentos. @"fecha":(date) Fecha @"concepto":(string) Notas de la cuenta por cobrar. @"referencia":(string) Referencia única. @"tipocambio":(decimal) Tipo de cambio. @"icliente": (int) clave primaria de un cliente existente. @"importe":(decimal) Importe del documento. } ``` **Retorno** - `(int) Clave primaria del nuevo documento creado.` ### Bonificar documento por cobrar Transacciones al realizar el proceso. - Generar documento por cobrar (dcxc) y Afectar saldo del cliente. - Aplicar bonificación(Inserta datos en aplcxc). ``` bonificarCxC::&db,&data { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `data` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new data { @"flimite":(date) Fecha de aplicación y fecha de fultmoratorios. @"documento":(int) Tipo de documento, id de la tabla cdocumentos. @"fecha":(date) Fecha @"concepto":(string) Notas de la cuenta por cobrar. @"referencia":(string) Referencia única. @"tipocambio":(decimal) Tipo de cambio. @"icliente": (int) clave primaria de un cliente existente. @"importe":(decimal) Importe del documento. @"pkparent":(int) Define a que documento será aplicado. } ``` **Retorno** - `(int) Clave primaria del nuevo documento creado.` ### Aplicar intereses moratorios Transacciones al realizar el proceso. - Generar documento por cobrar (dcxc) y Afectar saldo del cliente. - Aplicar IntMor(Inserta datos en aplcxc). ``` aplicarIntMor::&db,&data { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `data` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new data { @"flimite":(date) Fecha de aplicación y fecha de fultmoratorios. @"documento":(int) Tipo de documento, id de la tabla cdocumentos. @"fecha":(date) Fecha @"concepto":(string) Notas de la cuenta por cobrar. @"referencia":(string) Referencia única. @"tipocambio":(decimal) Tipo de cambio. @"icliente": (int) clave primaria de un cliente existente. @"importe":(decimal) Importe del documento. @"pkparent":(int) Define a que documento será aplicado. } ``` **Retorno** - `(int) Clave primaria del nuevo documento creado.` ### Cobrar cliente Transacciones al realizar el proceso. - Realizar deposito a la cuenta. - Generar documento por cobrar (dcxc) y Afectar saldo del cliente. ``` cobrarCliente::&db,&data { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `data` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new data { @"faplicacion":(date) Fecha de aplicación, fecha de fultmoratorios y fecha de aplicación del depósito. @"conciliado":(bool) @"tcambio_deposito":(decimal) Tipo de cambio del depósito. @"documento_deposito":(int) Tipo de documento del depósito. @"categoria_deposito":(int) Categoría del depósito. @"cuenta_deposito"(int) Clave primaria de la cuenta(tabla chequera). @"documento_cobro":(int) Tipo de documento del cobro, id de la tabla cdocumentos. @"fecha":(date) Fecha @"concepto":(string) Notas de la cuenta por cobrar. @"referencia":(string) Referencia única. @"tipocambio":(decimal) Tipo de cambio. @"icliente": (int) clave primaria de un cliente existente. @"importe":(decimal) Importe del documento. } ``` **Retorno** - `(int) Clave primaria del nuevo documento creado.` ### Bonificar cliente Transacciones al realizar el proceso. - Generar documento por cobrar (dcxc) y Afectar saldo del cliente. ``` bonificarCliente::&db,&data { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `data` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new data { @"flimite":(date) Fecha de aplicación y fecha de fultmoratorios. @"documento":(int) Tipo de documento, id de la tabla cdocumentos. @"fecha":(date) Fecha @"concepto":(string) Notas de la cuenta por cobrar. @"referencia":(string) Referencia única. @"tcambio":(decimal) Tipo de cambio. @"icliente": (int) clave primaria de un cliente existente. @"iventa":(int) Clave primaria de la venta(opcional ). @"importe":(decimal) Importe del documento por aplicar(campo xaplicar). } ``` **Retorno** - `(int) Clave primaria del nuevo documento creado.` ### Desaplicar cobros Transacciones al realizar el proceso. - Obtener todos los documentos aplicados. - Disminuir en pago al documento aplicado. - Aumentar en xaplicar al documento de origen. - Eliminar registro de aplicado. ``` desaplicarCobros::&db,¶ms { } ``` **Parámetros** - `db` Referencia a una conexión de base de datos abierta (recomendado: transacción de base de datos previamente iniciada). - `params` Referencia a un registro que contiene los datos necesarios para realizar la operación. ``` new params { @"_entity_id":(int) Clave primaria de un documento por cobrar. } ``` **Retorno** (objecto) Todos los documentos aplicados. ### Ejemplos ``` #include "dkli.dkh" #! program "" { #include "functions.dkh" #include "serialize.dkh" #include "dbr.dkh" #include "cxc/movimientos.dkh" #include "efectivo/movimientos.dkh" new data { //Todos los campos necesarios } ref db=dbr.open("micnn@miapp") //Crear documento por cobrar do erp.cxc.movimientos.crearCxC(db,data) //Bonificar documento por cobrar do erp.cxc.movimientos.bonificarCxC(db,data) //Cobrar cliente do erp.cxc.movimientos.cobrarCliente(db,data) } ```