|
@@ -13,10 +13,11 @@ var feeRateObject={
|
|
|
selectionLoad:false,
|
|
|
changeInfo:null,
|
|
|
feeRateSpreads:null,
|
|
|
+ editingCell:null,
|
|
|
sheetSetting: {
|
|
|
header: [
|
|
|
{headerName: "专业名称", headerWidth: 200, dataCode: "name", dataType: "String"},
|
|
|
- {headerName: "值%", headerWidth: 150, dataCode: "rate", dataType: "String"},
|
|
|
+ {headerName: "值%", headerWidth: 150, dataCode: "rate", dataType: "String",hAlign: "right"},
|
|
|
{headerName: "备注", dataCode: "memo", dataType: "String"}
|
|
|
],
|
|
|
view: {
|
|
@@ -114,7 +115,8 @@ var feeRateObject={
|
|
|
}
|
|
|
},
|
|
|
createSheet:function(){
|
|
|
- feeRateObject.feeRateSpreads=sheetCommonObj.buildSheet($('#fee_rate_sheet')[0], feeRateObject.sheetSetting,30);
|
|
|
+ var feeRateFile = projectObj.project.FeeRate.getActivateFeeRate();
|
|
|
+ feeRateObject.feeRateSpreads=sheetCommonObj.buildSheet($('#fee_rate_sheet')[0], feeRateObject.sheetSetting,feeRateFile.rates.length);
|
|
|
//gljOprObj.gljLibSpresd.bind(GC.Spread.Sheets.Events.ButtonClicked,gljOprObj.onButtonClick);
|
|
|
feeRateObject.feeRateSheet = feeRateObject.feeRateSpreads.getSheet(0);
|
|
|
feeRateObject.feeRateSheet.selectionUnit(1)//0 cell,1 row,2 col;
|
|
@@ -123,36 +125,52 @@ var feeRateObject={
|
|
|
},
|
|
|
showSelectTree:function () {
|
|
|
var sheet= feeRateObject.feeRateSheet;
|
|
|
+ var setting=feeRateObject.sheetSetting;
|
|
|
+ var data = projectObj.project.FeeRate.getActivateFeeRate().rates;
|
|
|
+ var ch = GC.Spread.Sheets.SheetArea.viewport;
|
|
|
+ var groups=[];
|
|
|
sheet.suspendPaint();
|
|
|
sheet.suspendEvent();
|
|
|
sheet.rowOutlines.direction(GC.Spread.Sheets.Outlines.OutlineDirection.backward);
|
|
|
sheet.getRange(-1, 0, -1, 1).cellType(feeRateObject.getTreeNodeCellType());
|
|
|
-
|
|
|
- sheet.setValue(0, 0, "Permanent Differences");
|
|
|
- sheet.setValue(1, 0, "Permanent Differences");
|
|
|
- sheet.setValue(2, 0, "4P01 - Club Dues");
|
|
|
- sheet.setValue(3, 0, "4P02 - Business Gifts");
|
|
|
- sheet.setValue(4, 0, "4P03 - Int Inc-Muni Borads");
|
|
|
- sheet.setValue(5, 0, "4P04 - Lobbying Expense");
|
|
|
- sheet.setValue(6, 0, "4P05 - Skybox");
|
|
|
- sheet.setValue(7, 0, "4P06 - Stock Options-Perm");
|
|
|
- sheet.setValue(8, 0, "4P07 - M&E");
|
|
|
- sheet.setValue(9, 0, "Total Permanent Differences");
|
|
|
- sheet.setValue(10, 0, "Capital Loss Limitation");
|
|
|
- sheet.setValue(11, 0, "Capital Gain/Loss, Sum included in Book income");
|
|
|
- sheet.setValue(12, 0, "Capital Loss Disallowed");
|
|
|
- sheet.setValue(13, 0, "Charitable Contribution Limitation");
|
|
|
- sheet.setValue(14, 0, "Charitable Contributions included in Book income");
|
|
|
- sheet.setValue(15, 0, "Demestic production activities deduction included in Book income");
|
|
|
- sheet.setValue(16, 0, "Fedeeral Taxable Income Limitation");
|
|
|
- sheet.setValue(17, 0, "Limitation percentage");
|
|
|
- sheet.setValue(18, 0, "Charitable Contribution limitation");
|
|
|
- sheet.setValue(19, 0, "Charitable Contributions disallowed");
|
|
|
- sheet.setValue(20, 0, "Federal Taxable Income before Net Operating Loss Deduction");
|
|
|
- sheet.rowOutlines.group(1, 10);
|
|
|
- sheet.rowOutlines.group(3, 7);
|
|
|
- sheet.rowOutlines.group(12, 2);
|
|
|
+ for (var col = 0; col < setting.header.length; col++) {
|
|
|
+ var hAlign = "left", vAlign = "center";
|
|
|
+ if (setting.header[col].hAlign) {
|
|
|
+ hAlign = setting.header[col].hAlign;
|
|
|
+ } else if (setting.header[col].dataType !== "String"){
|
|
|
+ hAlign = "right";
|
|
|
+ }
|
|
|
+ vAlign = setting.header[col].vAlign?setting.header[col].vAlign:vAlign;
|
|
|
+ sheetCommonObj.setAreaAlign(sheet.getRange(-1, col, -1, 1), hAlign, vAlign);
|
|
|
+ if (setting.header[col].formatter) {
|
|
|
+ sheet.setFormatter(-1, col, setting.header[col].formatter, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ }
|
|
|
+ for (var row = 0; row < data.length; row++) {
|
|
|
+ var val = data[row][setting.header[col].dataCode];
|
|
|
+ if(val&&setting.header[col].dataType === "Number"){
|
|
|
+ if(setting.header[col].hasOwnProperty('tofix')){
|
|
|
+ val =parseFloat(val).toFixed(setting.header[col].tofix);
|
|
|
+ }else {
|
|
|
+ val =parseFloat(val).toFixed(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sheet.setValue(row, col, val, ch);
|
|
|
+ if(col==0){
|
|
|
+ feeRateObject.setSheetGroup(data[row],data,groups,row+1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //this.lockCells(sheet,setting);
|
|
|
+ console.log(groups);
|
|
|
+ _.forEach(groups,function (g) {
|
|
|
+ for(var k in g){
|
|
|
+ sheet.rowOutlines.group(parseInt(k), g[k]);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ /* sheet.rowOutlines.group(1, 6);
|
|
|
+ sheet.rowOutlines.group(8, 6);
|
|
|
sheet.rowOutlines.group(15, 6);
|
|
|
+ sheet.rowOutlines.group(22, 6);*/
|
|
|
// sheet.getRange(-1, 0, -1, 1).width(300);
|
|
|
sheet.showRowOutline(false);
|
|
|
sheet.resumeEvent();
|
|
@@ -224,6 +242,98 @@ var feeRateObject={
|
|
|
};
|
|
|
return new TreeNodeCellType()
|
|
|
},
|
|
|
+ getFeeRateEditCellType:function () {
|
|
|
+ var ns = GC.Spread.Sheets;
|
|
|
+ function FeeRateEditCellType() {
|
|
|
+ var init=false;
|
|
|
+ }
|
|
|
+ FeeRateEditCellType.prototype = new ns.CellTypes.Text();
|
|
|
+ FeeRateEditCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
|
|
|
+ if(value!=null){
|
|
|
+ ctx.fillText(value,x+3+ctx.measureText(value).width,y+h-3);
|
|
|
+ }
|
|
|
+ if(feeRateObject.editingCell){
|
|
|
+ if(feeRateObject.editingCell.row==options.row&&feeRateObject.editingCell.col==options.col){
|
|
|
+ var image = document.getElementById('f_btn'),imageMagin = 3;
|
|
|
+ var imageHeight = h-2*imageMagin;
|
|
|
+ var imageWidth = imageHeight* 4/3;
|
|
|
+ var imageX = x + w - imageWidth- imageMagin, imageY = y + h / 2 - imageHeight / 2;
|
|
|
+ ctx.save();
|
|
|
+ ctx.drawImage(image, imageX, imageY,imageWidth,imageHeight);
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(imageX+imageWidth/2,imageY+imageHeight/2,1,0,360,false);
|
|
|
+ ctx.arc(imageX+imageWidth/2-4,imageY+imageHeight/2,1,0,360,false);
|
|
|
+ ctx.arc(imageX+imageWidth/2+4,imageY+imageHeight/2,1,0,360,false);
|
|
|
+ ctx.fillStyle="black";//填充颜色,默认是黑色
|
|
|
+ ctx.fill();//画实心圆
|
|
|
+ ctx.closePath();
|
|
|
+ ctx.restore();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ FeeRateEditCellType.prototype.getHitInfo = function (x, y, cellStyle, cellRect, context) {
|
|
|
+ return {
|
|
|
+ x: x,
|
|
|
+ y: y,
|
|
|
+ row: context.row,
|
|
|
+ col: context.col,
|
|
|
+ cellStyle: cellStyle,
|
|
|
+ cellRect: cellRect,
|
|
|
+ sheetArea: context.sheetArea
|
|
|
+ };
|
|
|
+ };
|
|
|
+ FeeRateEditCellType.prototype.processMouseDown = function (hitinfo) {
|
|
|
+ if(feeRateObject.editingCell==null){
|
|
|
+ feeRateObject.editingCell={
|
|
|
+ row:hitinfo.row,
|
|
|
+ col:hitinfo.col
|
|
|
+ }
|
|
|
+ hitinfo.sheet.invalidateLayout();
|
|
|
+ hitinfo.sheet.repaint();
|
|
|
+ }else if(hitinfo.row==feeRateObject.editingCell.row){
|
|
|
+ var offset=hitinfo.cellRect.x+hitinfo.cellRect.width-6;
|
|
|
+ var imageMagin=3;
|
|
|
+ var imageHeight = hitinfo.cellRect.height-2*imageMagin;
|
|
|
+ var imageWidth = imageHeight* 4/3;
|
|
|
+ if(hitinfo.x<offset&&hitinfo.x>offset-imageWidth){
|
|
|
+ feeRateObject.showSelectModal(hitinfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ FeeRateEditCellType.prototype.processMouseLeave = function (hitinfo) {
|
|
|
+ feeRateObject.editingCell=null;
|
|
|
+ hitinfo.sheet.invalidateLayout();
|
|
|
+ hitinfo.sheet.repaint();
|
|
|
+ }
|
|
|
+ return new FeeRateEditCellType();
|
|
|
+ },
|
|
|
+ showSelectModal:function (hitinfo) {
|
|
|
+ $("#fee_rate_tree").modal({show:true});
|
|
|
+ $('#edit_from').val(hitinfo.sheet.name());
|
|
|
+ $('#edit_row').val(hitinfo.row);
|
|
|
+ },
|
|
|
+ setSheetGroup:function (rate,data,groups,row) {
|
|
|
+ var me=this;
|
|
|
+ var group={};
|
|
|
+ var count=me.getChildrenCount(rate.ID,data);
|
|
|
+ if(count>0){
|
|
|
+ group[row]=count;
|
|
|
+ groups.push(group);
|
|
|
+ }
|
|
|
+ return groups;
|
|
|
+ },
|
|
|
+ getChildrenCount:function (id,data) {
|
|
|
+ var me=this;
|
|
|
+ var sum=0;
|
|
|
+ var children=_.filter(data,{'ParentID':id});
|
|
|
+ if(children&&children.length==0){
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ for(var i=0;i<children.length;i++){
|
|
|
+ sum+=me.getChildrenCount(children[i].ID,data);
|
|
|
+ }
|
|
|
+ return children.length+sum;
|
|
|
+ },
|
|
|
createSpreadView:function () {
|
|
|
if (this.mainViews) {
|
|
|
this.mainViews.destroy();
|
|
@@ -661,5 +771,7 @@ $('#fee_rate_tree').on('hidden.bs.modal', function (e) {
|
|
|
if(feeRateObject.feeRateSpreads){
|
|
|
feeRateObject.feeRateSpreads.destroy();
|
|
|
feeRateObject.feeRateSpreads=null;
|
|
|
+ $('#edit_from').val('');
|
|
|
+ $('#edit_row').val('');
|
|
|
}
|
|
|
});
|