private void crearAcuerdo()
        {
            VIEW_CLIENTE cliente = new VIEW_CLIENTE();

            cliente.TIPO_DOCUMENTO = ((TIPO_DOCUMENTO)cmbTipoDocumento.SelectedItem).TIPO;
            cliente.IDENTIFICACION = txtIdentificacion.Text.Trim();
            cliente = serviciosVIEW_CLIENTE.buscarPrimeroVIEW_CLIENTE(cliente);
            if (cliente != null && cliente.ID > 0)
            {
                frmBuscarLiquidacion frm = new frmBuscarLiquidacion(cliente);
                frm.ShowDialog(this);
                buscarAcuerdos();
            }
            else
            {
                MessageBox.Show("No se encontró el cliente", "Sin cliente", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Пример #2
0
        private void liquidar()
        {
            try
            {
                frmTipoLiquidacion frm = new frmTipoLiquidacion();
                if (frm.ShowDialog(this) == DialogResult.Yes)//Pago total
                {
                    wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[] lstDetalles = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[grdDatos.Rows.Count];
                    if (grdDatos.Rows != null && grdDatos.Rows.Count > 0 &&
                        myCliente != null && myCliente.ID > 0)
                    {
                        for (int i = 0; i < grdDatos.Rows.Count; i++)
                        {
                            wsServiciosLIQUIDACION.LIQUIDACION_DETALLE detalle = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE();
                            detalle.ID_TARIFA_DETALLE = int.Parse(grdDatos.Rows[i].Cells["ID_TARIFADETALLE"].Value.ToString());
                            detalle.VALOR_CONCEPTO    = float.Parse(grdDatos.Rows[i].Cells["VALOR"].Value.ToString());
                            lstDetalles[i]            = detalle;
                        }
                        wsServiciosLIQUIDACION.LIQUIDACION liquidacion = new wsServiciosLIQUIDACION.LIQUIDACION();
                        liquidacion.ID_CLIENTE = myCliente.ID;
                        TIPO_LIQUIDACION tipo = new TIPO_LIQUIDACION();
                        tipo.TIPO = "PT";
                        tipo      = serviciosTIPO_LIQUIDACION.buscarPrimeroTIPO_LIQUIDACION(tipo);
                        if (tipo != null && tipo.ID > 0)
                        {
                            liquidacion.ID_TIPO_LIQUIDACION = tipo.ID;
                        }
                        liquidacion.TOTAL = total;

                        wsServiciosLIQUIDACION.VIEW_CLIENTE tmpCliente = new wsServiciosLIQUIDACION.VIEW_CLIENTE();
                        tmpCliente.ID               = myCliente.ID;
                        tmpCliente.TIPO_DOCUMENTO   = myCliente.TIPO_DOCUMENTO;
                        tmpCliente.IDENTIFICACION   = myCliente.IDENTIFICACION;
                        tmpCliente.NOMBRES          = myCliente.NOMBRES;
                        tmpCliente.APELLIDOS        = myCliente.APELLIDOS;
                        tmpCliente.DIRECCION        = myCliente.DIRECCION;
                        tmpCliente.CIUDAD           = myCliente.CIUDAD;
                        tmpCliente.DEPARTAMENTO     = myCliente.DEPARTAMENTO;
                        tmpCliente.GENERO           = myCliente.GENERO;
                        tmpCliente.TELEFONO         = myCliente.TELEFONO;
                        tmpCliente.CELULAR          = myCliente.CELULAR;
                        tmpCliente.CORREO           = myCliente.CORREO;
                        tmpCliente.FECHA_NACIMIENTO = myCliente.FECHA_NACIMIENTO;

                        liquidacion = serviciosLIQUIDACION.crearMultipleLIQUIDACION_2(liquidacion, lstDetalles, tmpCliente);
                        if (liquidacion != null && liquidacion.ID > 0)
                        {
                            WSServiciosRECIBO.ServiciosRECIBO servicio = new WSServiciosRECIBO.ServiciosRECIBO();

                            var liquidacionSerializado = JsonConvert.SerializeObject(liquidacion);
                            WSServiciosRECIBO.LIQUIDACION liquidacionDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.LIQUIDACION> (liquidacionSerializado);

                            WSServiciosRECIBO.LIQUIDACION_DETALLE[] lstLiquidacionDetalle = new WSServiciosRECIBO.LIQUIDACION_DETALLE[lstDetalles.Length];
                            int i = 0;
                            foreach (wsServiciosLIQUIDACION.LIQUIDACION_DETALLE item in lstDetalles)
                            {
                                var detalleSerializado = JsonConvert.SerializeObject(item);
                                WSServiciosRECIBO.LIQUIDACION_DETALLE detalleDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.LIQUIDACION_DETALLE>(detalleSerializado);
                                lstLiquidacionDetalle[i] = detalleDesserializado;
                                i++;
                            }

                            var clienteSerializado = JsonConvert.SerializeObject(tmpCliente);
                            WSServiciosRECIBO.VIEW_CLIENTE clienteDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.VIEW_CLIENTE>(clienteSerializado);

                            recibo = servicio.generarRECIBO(liquidacionDesserializado, lstLiquidacionDetalle, clienteDesserializado);
                            if (recibo != null && recibo.ID > 0)
                            {
                                btnLiquidar.Enabled  = false;
                                lblNumRecibo.Text    = recibo.NUMERO_RECIBO;
                                btnVerRecibo.Enabled = true;
                                MessageBox.Show("Liquidación realizada correctamente", "Liquidación correcta", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                btnLiquidar.Enabled  = true;
                                lblNumRecibo.Text    = "#";
                                btnVerRecibo.Enabled = false;
                                MessageBox.Show("Ocurrio algún problema y la liquidación fue incorrecta", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Ocurrio un error desconocido y la liquidación no se realizó correctamente", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                else//Acuerdo Pago
                {
                    wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[] lstDetalles = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[grdDatos.Rows.Count];
                    if (grdDatos.Rows != null && grdDatos.Rows.Count > 0 &&
                        myCliente != null && myCliente.ID > 0)
                    {
                        for (int i = 0; i < grdDatos.Rows.Count; i++)
                        {
                            wsServiciosLIQUIDACION.LIQUIDACION_DETALLE detalle = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE();
                            detalle.ID_TARIFA_DETALLE = int.Parse(grdDatos.Rows[i].Cells["ID_TARIFADETALLE"].Value.ToString());
                            detalle.VALOR_CONCEPTO    = float.Parse(grdDatos.Rows[i].Cells["VALOR"].Value.ToString());
                            lstDetalles[i]            = detalle;
                        }
                        wsServiciosLIQUIDACION.LIQUIDACION liquidacion = new wsServiciosLIQUIDACION.LIQUIDACION();
                        liquidacion.ID_CLIENTE = myCliente.ID;
                        TIPO_LIQUIDACION tipo = new TIPO_LIQUIDACION();
                        tipo.TIPO = "AP";
                        tipo      = serviciosTIPO_LIQUIDACION.buscarPrimeroTIPO_LIQUIDACION(tipo);
                        if (tipo != null && tipo.ID > 0)
                        {
                            liquidacion.ID_TIPO_LIQUIDACION = tipo.ID;
                        }
                        liquidacion.TOTAL = total;

                        wsServiciosLIQUIDACION.VIEW_CLIENTE tmpCliente = new wsServiciosLIQUIDACION.VIEW_CLIENTE();
                        tmpCliente.ID               = myCliente.ID;
                        tmpCliente.TIPO_DOCUMENTO   = myCliente.TIPO_DOCUMENTO;
                        tmpCliente.IDENTIFICACION   = myCliente.IDENTIFICACION;
                        tmpCliente.NOMBRES          = myCliente.NOMBRES;
                        tmpCliente.APELLIDOS        = myCliente.APELLIDOS;
                        tmpCliente.DIRECCION        = myCliente.DIRECCION;
                        tmpCliente.CIUDAD           = myCliente.CIUDAD;
                        tmpCliente.DEPARTAMENTO     = myCliente.DEPARTAMENTO;
                        tmpCliente.GENERO           = myCliente.GENERO;
                        tmpCliente.TELEFONO         = myCliente.TELEFONO;
                        tmpCliente.CELULAR          = myCliente.CELULAR;
                        tmpCliente.CORREO           = myCliente.CORREO;
                        tmpCliente.FECHA_NACIMIENTO = myCliente.FECHA_NACIMIENTO;

                        liquidacion = serviciosLIQUIDACION.crearMultipleLIQUIDACION_2(liquidacion, lstDetalles, tmpCliente);
                        if (liquidacion != null && liquidacion.ID > 0)
                        {
                            frmBuscarLiquidacion buscarLiquidacion = new frmBuscarLiquidacion(myCliente);
                            buscarLiquidacion.ShowDialog(this);
                        }
                        else
                        {
                            MessageBox.Show("Ocurrio un error desconocido y la liquidación no se realizó correctamente", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            catch (Exception exp)
            {
            }
        }